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
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) 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 rand(m,n) m x n rastgele sayılardan 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 size (A) m x n A matrisini, satır vektörü [m,n] olarak boyutlarını verir length(a) A matrisinin uzunluğunu verir rand(n) n x n rastgele sayılardan oluşan matris
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 Conv Deconv Poly Polyder Polyfit Polyval Polyvalm Residue Roots Description Polinomları çarp böl Belirli köklerde polinom türev Polinom eğri uydurma Polinom değerlendirme Matris polinom değerlendirme Partial-fraction expansion (residues) 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]; Örnek2: c=polyder(a,b) Ans c = 8 30 56 38 a/b nin türevi [q,d]=polyder(a,b) Ans q = -2-8 -2 a*b nin türevi 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 k = [] p = -4-2
Ö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);
Ö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.