MATLAB GİRİŞ CONTROL LAB1
MATLAB ORTAMI
Komut Penceresi Yardım Alma: e.g help sin, lookfor cos
Değişkenler
Vektörler, Matrisler ve Lineer Cebir (det, inv …)
Grafik çizme, plot(x,y,’r’), hist (colormap([0 0 0])),
semilog, loglog
M-FILE(SCRIPT)
Yazılı metin olarak M-dosyası üretme
o Editor
oKendi komutlarınızı yazma
oEditor deki dosyayı kaydetmek(otomatik M-dosyası olarak kaydeder)
YARDIM ALMA
• Komut penceresine aşağıdaki komutlardan birini
help – tüm yardım komutlarını listeler
help konu– belirli konu ile ilgili yardım sağlar
help komut– belirli komut ile ilgili yardım sağlar
help help – ‘help’ komutunun kullanımı ile ilgili bilgi verir
helpwin – farklı ‘help’ penceresi açar
lookfor anahtarkelime– Tüm M-dosyalarında anahtarkelime arar
DEĞİŞKENLER
• Değişken isimleri: Harf ile başlamalı
Sadece harf,rakam ve alt çizgi “_”
içermeli
Matlab büyük-küçük harfe duyarlı, i.e.
one & OnE farklı değişkenlerdir.
Matlab değişkenin adının ilk
31karakterini tanıyabilir
Değer atama ifadeleri:
Değişken= sayı;
Değişken = ifade;
Example:
>> tutorial = 1234;
>> tutorial = 1234
tutorial =
1234
NOTE: noktalı virgül komutun sonuna konduğunda,
sonuç gösterilmez
DEĞIŞKENLER (DEVAM)
• Özel değişkenler: ans : sonuç için atanan değişken
pi: = 3.1415926…………
eps: = 2.2204e-016, MATLAB da
tanımlı en küçük sayı.
Inf or inf : , sonsuz
NaN or nan: sayı-değil
Değişkenleri içeren komutlar: who: Tanımlanan değişkenleri listeler
whos: Tanımlanan değişkenlerin isimlerini ve
büyüklüklerini listeler
clear: Tüm değişkenleri siler, öntanımlı olanlar eski
haline döner
clear x: ‘x’ isimli değişkeni siler
clc: komut penceresini temizler
clf: açık olan figürü ve grafik penceresini temizler
• MATLAB da satır vektörü köşeli parantez ve değerler boşluk veya virgülle girilip oluşturulabilir.
• Sütun vektörü oluşturulmasında tek fark virgül
yerine noktalı virgül kullanılmasıdır.
VEKTÖRLER, MATRISLER, DIZILER VE LINEER CEBIR
Örnek:
>> x = [ 0 0.25*pi 0.5*pi 0.75*pi pi ]
x =
0 0.7854 1.5708 2.3562 3.1416
x satır vektörü.
>> y = [ 0; 0.25*pi; 0.5*pi; 0.75*pi; pi ]
y =
0
0.7854
1.5708
2.3562
3.1416 y sütun vektörü.
VEKTÖRLER (DEVAM)
• Vektör adresleme– Vektör elemanının adresi parantez içindeki index ile gösterilir
• Example:
>> x(3)
ans =
1.5708
x vektörünün 1^den 3’e elemanlar
Blok elemanları adreslemek için iki nokta kullanılır.
(start : increment : end)
start: başlama indeksi,
increment: Artış miktarı
end: bitiş indeksi
start:end de kullanılabilir
Örnek:
>> x(1:3)
ans =
0 0.7854 1.5708
x vektörünün ilk üç elemanı
MATRIS
• A m x n matris olsun. Matris dizisi iki boyutludur; birden çok satırı
ve sütunu vardır.
• [ ile başlar,] ile biter
Satırda elemanları ayırmak için boşluk veya
virgül
iki nokta veya enter ise farklı satıra geçmek
için kullanılır.
•Örnek:
>> f = [ 1 2 3; 4 5 6
f =
1 2 3
4 5 6
>> h = [ 2 4 6
1 3 5]
h =
2 4 6
1 3 5
MATRIS (DEVAM)
• Matris Adresleme: -- matrixname(satır, sutun)
-- iki nokta: satır ve sütun yerine kullanılabilen
işaret
Aşağıdaki matrisleri tanımlayalım:
f =
1 2 3
4 5 6
h =
2 4 6
1 3 5
Örnek:
>> f(2,3)
ans =
6
>> h(:,1)
ans =
2
1
BAZI KULLANIŞLI KOMUTLAR:
zeros(n) n x n sıfırlardan oluşan matris
zeros (m,n) m x n sıfırlardan oluşan matris
ones(n) n x n 1 lerden oluşan matris
ones(m,n) m x n 1 lerden oluşan matris
rand(n) n x n rastgele sayılardan oluşan matris
rand(m,n) m x n rastgele sayılardan oluşan matris
size (A) m x n A matrisini, satır vektörü [m,n] olarak
boyutlarını verir
length(A) A matrisinin uzunluğunu verir
Skaler-Dizi Matematiği
Dizilerin skaler bir sayıyla toplama, çıkarma, çarpma ve bölme işlemlerinin
yapılması basitçe her elemana ayrı ayrı uygulanmasıdır
Örnek:
>> f = [ 1 2; 3 4]
f =
1 2
3 4
>> g = 2*f – 1 Her eleman 2 ile
g = çarpıldı, hepsinden 1 çıkarıldı
1 3
5 7
Örnek:
>> x = [ 1 2 3 ];
>> y = [ 4 5 6 ];
>> z = x .* y
z =
4 10 18
Matris tersi alarak çözüm:
Ax = b
A-1 Ax = A-1 b
x = A-1 b
MATLAB:
>> A = [ 3 2 -1; -1 3 2; 1 -1 -
1];
>> b = [ 10; 5; -1];
>> x = inv(A)*b
x =
-2.0000
5.0000
-6.0000
Answer:
x1 = -2, x2 = 5, x3 = -6
Matris bölümü olarak çözüm:
Aşağıdaki denklemin çözümü
Ax = b
sol bölme işareti ile yapılabilir.
MATLAB:
Answer:
>> A = [ 3 2 -1; -1 3 2; 1 -1 -1];
>> b = [ 10; 5; -1];
>> x = A\b
x =
-2.0000
5.0000
-6.0000
x1 = -2, x2 = 5, x3 = -6
Çizim Komutları:
plot (x,y) – x (yatay eksen) ve y (düşey eksen) değerleriyle lineer çizim yapar
semilogx (x,y) – x (yatay eksen) ve y (düşey eksen) değerleriyle x ekseninde logaritmik y ekseninde
lineer değerlerle çizim yapar
semilogy (x,y) – x (yatay eksen) ve y (düşey eksen) değerleriyle x ekseninde lineer y ekseninde
logaritmik değerlerle çizim yapar
loglog(x,y) –x (yatay eksen) ve y (düşey eksen) değerleriyle logaritmik çizim yapar
Birden fazla eğriler:
plot (x, y, w, z) – Birden fazla eğri plot komutunda belirtilerek çizilebilir. X,y,z ve w
değişkenleri vektörlerdir. Bu komutta iki eğri çizilir: y - x, ve z-w
multiple curves can be plotted on the same graph by using
legend (‘string1’, ‘string2’,…) – Aynı figürdeki şekilleri ayırmak için kullanılır.
Birden fazla şekil:
figure (n) – Birden fazla figür üretmek için bu komut kullanılır ve ‘Figure n’ ismi verilir
close –figür n penceresini kapatır
close all – Tüm figür pencerelerini kapatır.
altşekil:
subplot (m, n, p) – m by n grid of windows, with p specifying the current plot as the pth
window
Örnek: (polinom fonksiyonu)
Aşağıdaki polinom fonksiyonunu using lineer/lineer,
log/lineer , lineer/log, & log/log olarak çiziniz:
y = 2x^2 + 7x + 9
CODE
% Generate the polynomial:
x = linspace (0, 10, 100);
y = 2*x.^2 + 7*x + 9;
% plotting the polynomial:
figure (1);
subplot (2,2,1), plot (x,y);
title ('Polynomial, linear/linear scale');
ylabel ('y'), grid;
subplot (2,2,2), semilogx (x,y);
title ('Polynomial, log/linear scale');
ylabel ('y'), grid;
subplot (2,2,3), semilogy (x,y);
title ('Polynomial, linear/log scale');
xlabel('x'), ylabel ('y'), grid;
subplot (2,2,4), loglog (x,y);
title ('Polynomial, log/log scale');
xlabel('x'), ylabel ('y'), grid;
MATLAB da Polinomlar
Polynomial Function Summary Function Description
Conv Polinomları çarp
Deconv böl
Poly Belirli köklerde polinom
Polyder türev
Polyfit Polinom eğri uydurma
Polyval Polinom değerlendirme
Polyvalm Matris polinom değerlendirme
Residue Partial-fraction expansion (residues)
Roots Polinom kökleri bul
Roots, Poly etc…………………
Matlab da polinom tanımlama
p(x)=x^3 -2x -6
matlab : p=[1 0 -2 -6];
Kökleri bulma R=roots(p)
r = 2.0946
-1.0473 + 1.1359i
-1.0473 - 1.1359i
Polinomu belirli değerde hesaplama Polyval(p,value)
polyval(p,5)
ans=110
Conv, Decon
Konvolüsyon=Polinom çarpımı Ex: a(S)=S^2 + 2S +3 b(S)= 4S^2 + 5S + 6 Çarp
a=[1 2 3]; b=[ 4 5 6];
c=con(a,b)
ans =
4 13 28 27 18
Bölmek için dekonvolüsyon kullanılır
[q,r]=Decon(c,a)
q = 4 5 6
r= 0 0 0 0 0
Polinomun Türevi
Polinomun türevini almak için Polyder() kullanılır
Örnek:
>>p= [1 0 -2 -5]
>>q = polyder(p)
Ans
q =
3 0 -2
Örnek: >>a = [1 3 5];
>>b = [2 4 6];
c=polyder(a,b) a*b nin türevi
Ans
c = 8 30 56 38
Örnek2: a/b nin türevi
[q,d]=polyder(a,b)
Ans
q = -2 -8 -2
d = 4 16 40 48 36 Son cevap : q/d
Kısmi Kesir
A ve B polinomlarını kısmi
kesir olarak yazma
Örnek:
Transfer fonksiyonu:
>>b = [-4 8];
>>a = [1 6 8];
>>[r,p,k] = residue(b,a)
Ans
r =
-12
8
p =
-4
-2
k =
[]
Örnek 1: Aşağıdakileri elde etmek için MATLAB komutları kullanınız.
a) magic(6) komutuyla üretilen matirisin dördüncü satırını ayrı vektör olarak elde ediniz.
b) x = [0:0.1:1.1] ve y = [10:21] olarak tanımlayınız.
‘x’.‘y’ çarpımını ve ‘y’ nin ‘x’ e bölümünü bulunuz. Sonuçları gösteriniz.
c) r matrisini rastgele 4 x 5 boyutunda üretiniz. Üretilen rastgele elemanlar -8 ile 9 arasında olsun.
Örnek 2: Aşağıdaki figürlerin aynısını elde etmek için MATLAB komutları yazınız.
x=pi/2:pi/10:2*pi;
y=sin(x);
z=cos(x);
Ödev
Örnek 3:
İki polinom tanımlayalım: P(S )=S^2 + 2S + 1 and Q(S)= S+1 .
MATLAB kullanarak aşağıdaki işlemleri yapınız.
a. P(S )*Q(S )
b. P(S) ve Q(S) polinomlarının köklerini bulunuz.
c. P(-1 ) ve Q(6) değerlerini bulunuz.
Exercise 4:
MATLAB komutları kullanarak aşağıdaki polinom bölümünü kısmi kesir şeklinde yazınız.
Örnek 5: MATLAB M-dosya fonksiyonu
Aşağıdaki eşitliği kullanarak
a) y(t) fonksiyonunun numerik değerlerini elde etmek için MATLAB m-dosya fonksiyonu
oluşturunuz. Fonksiyonunuz y0, ζ, ωn, t ve θ değerlerini giriş (input) olarak almalı ve y(t) çıkış
(output) değerini bulmalı.
b) 0