Matlab GİRİŞ MATLAB ORTAMI Control Lab1 Matlab GİRİŞ 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 Editor Kendi komutlarınızı yazma Editor 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
Vektörler, matrisler, diziler ve lineer cebir 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. Ö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) (start : increment : end) start: başlama indeksi, 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) Örnek: >> f(2,3) ans = 6 >> h(:,1) ans = 2 1 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
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
DİZİLER 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
DİZİLER Örnek: >> x = [ 1 2 3 ]; >> y = [ 4 5 6 ]; >> z = x .* y z = 4 10 18
Lineer Denklem Sisteminin Çözümü 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 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
Çizim Ç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
Çizim 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
Çizim Ö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 Conv Polinomları çarp Deconv böl 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 = 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) 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 = []
Ödev Ö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);
İki polinom tanımlayalım: P(S )=S^2 + 2S + 1 and Q(S)= S+1 . Ö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<t<10 aralığında y(t) fonksiyonunu çizdirmek için M-dosyası (script) oluşturunuz. Zaman artış miktarı 0.1 olsun. Aşağıdaki iki durum için tekrarlayınız: Durum 1: y0=0.15 m, ωn = √2 rad/sec, ζ = 3/(2√2 ) and θ = 0; Durum 2: y0=0.15 m, ωn = √2 rad/sec, ζ = 1/(2√2 ) and θ = 0; İpucu: Fonksiyon yazarken eleman-eleman operatörleri gerekli olabilir.