MATLAB MATrix LABoratory Hazırlayan: S. Murat BAĞDATLI
MATLAB'ın Kullanım Amacı ve Alanı MATLAB tüm mühendislik alanında, sayısal hesaplamalar, veri çözümlenmesi ve grafik işlemlerinde kolaylıkla kullanılabilen bir program dilidir. FORTRAN ve C dili gibi yüksek seviyeli programlarla yapılabilen hesaplamaların pek çoğunu MATLAB ile yapmak mümkündür. Ayrıca bunu yanında diğer programlama dillerine göre MATLAB‘ ta daha az sayıda komutla çözüm üretmek mümkündür. Gerçekte MATLAB, M-dosyaları (M-Files) olarak bilinen pek çok sayıda fonksiyon dosyalarından, alt programlardan ibarettir. Hazırlanması düşünülen bir program içinde M-dosyalarını kullanmak suretiyle komut sayısını çok kısa tutmak mümkündür.
Dosyaların Nerede Bulunduğunu Gösteren Kısım Yazılan Program Dosyaların Bulunduğu Alan Komut Penceresi: İlgili komutların girildiği pencere Eski Komutlar Listesi
Matlap Komut Penceresi >> ile başlayan Matlabın komut penceresidir. Komut penceresi kullanıcı ile MATLAB komut yorumlayıcısı arasında iletişim sağlayan bir ara yüzdür. Yorumlayıcı hazır hale geldiğinde “>>” iletisi karşımıza gelir. Bu ileti MATLAB’ a komut yada komut dizileri girilebileceğini gösterir.
Genel Komutlar Eğer MATLAB ilk defa kullanılıyor ya da belli komutların çalışmasını merak ediliyorsa demo komutu ile demostrasyon listesini görüntülenebilir. Listeden yapacağınız bir seçimle seçtiğimiz işlevi adım adım izleme imkanı bulabilirsiniz.
Özel Karakterler MATLAB‘ da ifadeler formunda veya MATLAB kontrolünü kullanabilmeniz için özel karakterlere sahiptir, bu karakterlerin bir özeti aşağıda verilmiştir.
Sayısal operatörlerden bazıları
Matris İşlemleri [ ] : Köşeli parantezler, vektörleri ve matrisleri biçimlendirmek için kullanılır. Matris tanimlamak için asagidaki A matrisi verilmis olsun : 1.2 10 15 A = 3 5.5 2 4 6.8 7 Bu matrisi MATLAB’e tanitmak için su sekilde yazilmalidir : A = [1.2 10 15 ; 3 5.5 2 ; 4 6.8 7] >> [5 6 45;12 91 2] ans = 6 45 91 2
Örnek >>[5 6 45 12 91 2] ans = 6 45 91 2 >>[5 6 45;12 91 2]; Eğer sona noktalı işaret koyarsak ekranda ans gözükmeyecektir… Ama ramda bilgi depolanacaktır.
Matrislerde işlem ( )’ Transpoz işlemi: Matrisin satırları ile sütünlarının yer değiştirdiği işlemdir. >>A=[1 2;3 4] A = 1 2 3 4 >>(A’)AT ans = 1 3 2 4
Matrislerde işlem (inv) Matrisin Tersini Alma Bir kare matrisin çarpmaya göre tersi ile kendisinin çarpımı birim matristir. >> A A = 1 2 3 4 >> A^-1 ans = -2.0000 1.0000 1.5000 -0.5000 >> A*A^-1 1.0000 0 0.0000 1.0000
Matrislerde işlem Matrislerde Elemanlar: iki nokta üst üstte koyarak matrislerde belli bir kısmı alabiliriz. >> M=[1 2 3;4 5 6;7 8 9;10 11 12] M = 1 2 3 4 5 6 7 8 9 10 11 12 >> C=M(1,:) (sadece birinci satırı aldık) C = >> C=M(:,1) (sadece birinci sütünü aldık) 1 4 7 10
Sembolik Nesne (syms) >> syms a b x z >> y=a*x+z^b y = Matlabta sembolik bir ifade kullanmak istersek önceden syms komutu ile sembolik ifadeleri tanımlamak zorundayız.
Grafik Komutları (2D)
Grafik Komutları(2D) Söz Dilimi Kullanımı (syntax) plot (X1,X2, ‘Çizgi Türü’,….) >> x = -pi:0.1:pi; y = sin(x); plot(x,y,’* b’)
Grafik Komutları(2D) HOLD ON İki farklı grafiği birbirine üstüne birleştirir. >> x = -pi:pi/10:pi; y = tan(sin(x)) - sin(tan(x)); >> m = -pi:0.1:pi; k = sin(m); >> plot(x,y,'*') hold on >> plot(m,k, '+')
Grafik Komutları grid Grafik arka yüzünün ölçekli olarak gösterilmesini saglar. title(‘...’) Çizilen grafige baslik yazmak için kullanilir. xlabel(‘...’) Çizilen grafigin x-eksenine istenilen açiklamayi yazmak için kullanilir. ylabel(‘...’) Çizilen grafigin y-eksenine istenilen açiklamayi yazmak için kullanilir. text(‘X,Y,‘text’) Grafik ekrani üzerine istenilen koordinatlar dahilinde herhangi bir açiklama yazmak için kullanilir.
Örnek Aşağıdaki örnekte ise y = x2 eğrisini 0 ve 3 aralığında çizdirelim x = 0:0.1:3; y = x.^2; plot(x,y,‘r’); title(‘y=x2 egrisi’); xlabel(‘x’); grid; ylabel(‘y’)
Solve Komutu >>[x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0') x = 1 3 y = -3/2
Solve Komutu (2nci Yol) >> syms x y >> f1='x^2 + x*y + y -3' f1 = x^2 + x*y + y -3 >> f2='x^2 - 4*x + 3' f2 = x^2 - 4*x + 3 >> [x,y] = solve(f1,f2) x = 1 3 y = -3/2
Kök bulma (Roots) s3 - 6s2 - 72s -27 = 0 Bir polinomun köklerini bulmak için roots(a) komutu yazilmalidir. Yukaridaki karakteristik denklemin köklerini bulmak istersek : >>p=[1 -6 -72 -27] >>r = roots(p) r = 12.1229 -5.7345 -0.3884
Artırımı Ayarlama 1’den 5’e kadar sayilari 0.5’lik araliklarla yazdirmak istersek iki nokta’yi (:) kullanmak yeterli olacaktir : >>t = 1 2 3 4 5 >>t = 1:0.5:3 t = 1.0000 1.50000 2.0000 2.50000 3.0000 Düzgün azalan biçimde yazdirirsak : >>t = 5:-1:2 t = 5 4 3 2
Döngüler Matlabta bir işlemi belirli bir sayıda tekrarlamak için kullanılan iki çeşit döngü mevcuttur. For -While döngüsü >>x=[1 2 3 4 5 6]; for i=1:2:6 x(i)=x(i)^i end x = 1 2 3 4 5 6 1 2 27 4 5 6 1 2 27 4 3125 6
Şartlı İfade (if) if kosul1 deyim1 elseif kosul2 deyim2 elseif kosul3 ... elseif kosul_n deyim_n else deyim_n+1 end Bu yapi içerisinde kontrol edilen kosullardan herhangi biri dogru ise onunla iliskili deyim icra edilir ve kontrol end’ i izleyen deyime geçer. Kosullarin hepsi de yanlissa, kontrol else’ i izleyen deyim_n+1’e geçer ve bu deyim de icra edildikten sonra kontrol end’i izleyen deyime geçecektir.
Örnekler Dört Kol Mekanizması AB=20 cm BC=60 cm CD=40 cm AD=70 cm q2=60 Dört Kol Mekanizması q3 B 3 C 2 4 q2 q4 A D
Konum denklemlerini çıkaralım Bunun için öncelikle devre kapalılık denklemini yazıyoruz. AB+BC=AD+DC AB.cosq2i+ AB.sinq2j+ BC.cosq3i+BC. Sinq3j=ADi+ DC.cosq4 i+DC. sinq4j i : AB.cosq2+ BC.cosq3 = AD+DC.cosq4 j : AB.sinq2+ BC. Sinq3=DC. Sinq4 4 Kol Mekanizması Programı
Kol Kızak Mekanizması 3 AB=15 cm AC=20 cm q2=90 B s34 4 2 q4 q2 C A
Konum denklemlerini çıkaralım Bunun için öncelikle devre kapalılık denklemini yazıyoruz. AB=AC+CB AB.cosq2i+ AB.sinq2j= 20i+S34.cosq4i+S34. Sinq4j i : AB.cosq2= 20+S34.cosq4 j : AB.sinq2= S34. Sinq4 Kol Kızak Mekanizması Programı
Vargel Mekanizması s14 4 D C s24 E 3 q3 B s23 2 q2 A AB=40 cm BC=40 cm AE=52,9 cm BE=20 cm AD=84,66 cm q2=70,89 E 3 q3 B s23 2 q2 A
Konum denklemlerini çıkaralım Bunun için öncelikle devre kapalılık denklemini yazıyoruz. 1 AB+BE=AE ABj+BE.cosq3i+BESinq3j = S23.cosq4i+S23. sinq4j i : BE.cosq3 +S23.cosq4 j : AB+BE.sinq3= S23. sinq4 2 AC+CD=AD ACj+S14.i = S24.cosq2i+S24. sinq2j i : S14.i=S24.cosq2 j : AC= S24. sinq2 Vargel Mekanizması Programı