1. MATLAB MATLAB adı, MATrix LABoratory (Matrix Laboratuarı) kelimelerinden gelir. Matlab, komut temelli bir programdır. Command Window penceresinde» işareti Matlab'ın komut prompt'unu gösterir ve bu işaret bulunduğu satır komut satırı olarak adlandırılır. Bu işaretin hemen yanında yanıp sönen I şeklinde ki işaret komut ve metin yazma cursor'u yani imlecidir. Bu işaretin olduğu yerde klavyeden giriş yapılabilir demektir. İFADELER (EXPRESSIONS) Matlabda 3 çeşit pencere vardır. Komut, Grafik ve Program editörü pencereleridir.masaüstündeki matlab simgesinden yada başlat menüsünden matlab simgesine tıkladıktan sonra karşımıza şöyle bir ekran geliyor. Bu ekran Komut penceresidir. Komut penceresi Page 1
Program Editörü Penceresi MATLABA GİRİŞ Grafik Penceresi Page 2
Ekranda To get started, select MATLAB Help or Demos from the Help menu. Yazıyor. Hemen altında >> diye bir simge var. Kodlarımızı oraya yazıyoruz. Matlab da işleyip bize çıktısını veriyor Yada help yazarsam Matlab diğer programlama dillerinde olduğu gibi bir giriş (input) olarak çeşitli matematiksel ve metinsel ifadeler sağlar. İfadeleri 4 ana madde altında inceleyebiliriz: Sayılar (Numbers) Değişkenler (Variables) İşleçler (Operators) Fonksiyonlar (Functions) Page 3
2. MATLAB DA İFADELER NASIL GİRİLİR Matlab'de ifadeler genellikle değişken = ifade veya basitce sadece ifade ormundadır. Bir ifade = işareti ile bir değişkene atanmamış ise Matlab otomatik olarak sonucu, ans adı verilen özel bir değişkende saklar.» b=4*5 b = 20» log(2) 0.6931 Normalde ifadeler, tek bir satırda yer alırlar. Ancak bir kaç ifade aralarına virgül konarak yazılabilir ve işleme konabilir. Virgülden sonraki boşluk sayısında bır sınırlama yoktur. Komut veya değişken bildirimli ifadelerde ; noktalı virgül işaretini de kullanılabilirsiniz.» x=3.01, y=(23*7)/5, z = 3^6 x = 3.0100 y = 32.2000 z = 729 Matlab'de herşey bir dizi (array) olarak işleme konur. Bir dizi, skaler, vektör, matris veya metinsel dizge (karakter dizisi) olabilir. 1x1 dizisi skaler (scaler) veya metin dizgesi (string) gösterir. a=3 b=-20.56 c=3e-4 d=2+5*i Page 4
e='bir tamsayı giriniz:' gibi. Metin dizgeleri (text string), '...' arasında verilir. nx1 veya 1xn dizisi bir vektör (vector) gösterir. x=[0, 2, 4, 6] ifadesinde x, 1x4 boyutunda bir vektördür. [ ] köşeli parantezler içindeki sayıların arasında virgül (,) veya en az bir veya daha fazla boşluk olmalıdır. nxm veya mxn dizisi bir matris (matrix) gösterir. [ ] köşeli parantezler içindeki sayı grupları arasında noktalı virgül (;) olmalıdır. ; işareti matrisin sütunlarını ayırır. Sayı gruplarında virgül (,) veya en az bir veya daha fazla boşluk olabilir. Örnek: a 5 v 1, 2, 3, 4 1 2 1 2 3 1 2 3 0 1 1 3 2 e 0 2 3 c 2 1 1 4 4 0 1 1 3 0 1 1 5 6 1 1 2 6 >> a=5; >> v=1 2 3 4; >> v=1:5; % v={1 den 5 e kadar olan sayılardan oluşan vektör} >> e=1 2 3 ; 0 2 3 ; 0 1 1 ; >> c=[1,2,1,2,3 ; 0,1,1,3,2 ; 2,1,1,4,4 ; 3,0,1,1,5 ; 6,1,1,2,6]; Page 5
3. MATLAB DAKİ BAZI İŞLEMLER + Toplama ' Transpoze - Çıkarma det Matrisin determinantı * Matris çarpması inv Matrisin tersi * Vektör çarpması sin Sinüs ^ Matris üssü cos Kosunüs.^ Vektör üssü exp Eksponensiyel fonksiyon./ Vektör bölmesi log Doğal logaritma % Yorum yada bilgiler sqrt Karkök abs mutlak değer alma sum(a) Matrisin sütunlarını toplar Özel Matrisler >> zeros(4) % 4x4 bütün elemanları sıfır olan matris oluşturur. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> zeros(3,2) % 3 sütun ve 2 satırlık bütün elemanları sıfır olan matris oluşturur. 0 0 0 0 0 0 >> ones(4) % 4x4 bütün elemanları 1 olan matris oluşturur. 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Page 6
Örnek: >> v=1 2 3 4; >> V2=v.^2 V2 = 1 4 9 16 >> e' 1 0 0 2 2 1 3 3 1 >> det(e) -1» inv(c) -0.3000 0.5000-0.4000-0.3000 0.5000 0.7000-0.5000 0.1000-0.3000-0.0000-0.9000 3.5000-2.7000 0.1000 1.0000-0.2000-0.0000 0.4000-0.2000-0.0000 0.4000-1.0000 0.7000 0.4000-0.5000 Page 7
4. MATLAB DE KULLANILAN ÖZEL DEĞERLER VE SABİTLER Değişken Adı Açıklama ans Bir işlemin son cevabı (answer) veya bir ifadenin değeri pi pi sabiti: p=3.1415926535897... i veya j imajiner birim eps (epsilon yani e) Kayan-nokta bağıl doğruluğu (relative precision), 2e-52 realmin En küçük kayan-nokta (floating-point) sayısı, 2e-1022 realmax En büyük kayan-nokta (floating-point) sayısı, (2-e)e1024 yani 2e1024'den çok az küçük inf Sonsuz (infinity) yani realmax dan daha büyük bir sayı NaN Sayı değil (Not-a-Number) 5. TRİGONOMETRİK FONSİYONLAR Trigonometrik Hiperbolik Fonksiyon Adı Fonksiyon formatı Fonksiyon formatı sinus sin(x) sinh(x) cosinüs cos(x) cosh(x) tanjant tan(x) tanh(x) kotanjant cot(x) coth(x) sekant sec(x) sech(x) Page 8
kosekant csc(x) csch(x) Matlab'de trigonometrik fonksiyonlarda derece yerine radian kullanılır. Bu nokta çok onemlidir. Kısaca 2p=360o veya p=180o derecedir. Örneğin derece ; cinsinden sin(30)=0.5 tir. Oysa Matlab bu işlemin sonucunu» sin(30) -0.99 şeklinde verir. Genel kullanım derece cinsinden olduğundan ya radian (pi değişkenini kullanarak) cinsinden belirtmeniz ya da p/180 ile çarpanız gereklidir. Programlama bölümünde örneğin direkt girilen sayının derece olarak algılanıp değerini veren bir fonksiyonda yazılabilir. Örneğimize devam edersek;» sin(pi/6) 0.50 Ancak bu yöntemde p yani pi'ye çevirmek (örneğin 6.47 açısı gibi) her zaman bu kadar olmayacağından» sin(30*pi/180) 0.50 komutu yani açıyı parentezler içinde kalmak şartıyla pi/180 ile çarpmak daha pratiktir. Page 9
Örnek : x=45o için (sin4x)-(2cosx)3 ifadesinin değerini bulunuz. 1. yol:» x = pi/3;» sin(4*x)-(2*cos(x))^3-2.83 2.yol:» x = 45;»sin(4*x*pi/180)-(2*cos(x*pi/180))^3-2.83 Örnek: y=sin(t)*cos(t), -2 < t < 2 fonksiyonunu Matlabda yazalım. >> t=-2*pi:pi/100:2*pi; >> y=sin(t).*cos(t); Page 10
6. LOGARİTMİK VE ÜSTEL FONLSİYONLAR Fonksiyon Adı Fonksiyon formatı 10 tabanında logaritma (log 10x) log10(x) 2 tabanında logaritma (log2x) log2(x) doğal logaritma (lnx) log(x) üstel (ex) exp(x) karekök ( Öx ) sqrt(x) üsalma (xn, n herhangibir sayı) x^n Matlab'de matematikten bildiğimiz doğal logaritma gösterimi ln olarak değil doğrudan log olarak gösterilmektedir. Yine bildiğimiz gibi lnx=logex demektir. Genel yazım formatı bir x değeri için lnx, Matlab'de log(x) şeklindedir. ln1» log(1) 0 ln10 log(10) 2.3026 ln2» log(2) 0.6931 Page 11
Matlab'de e sabit sayısı yani e=2.71828 veya kısaca e=2.71 sayısı e olarak tanımlanmamıştır. Bunun yerine bir sonraki konuda göreceğimiz exp(1) fonksiyonu kullanılabilir. Biliyoruz ki lne=1 dir ve bunu Matlab de sağlayalım:» exp(1) 2.71832 Matlab'de matematikten bildiğimiz normal logaritma 10 tabanındadır ve bir x değeri için genel yazım formatı log10(x) şeklindedir. Ayrıca Matlab, 2 tabanındaki logaritma içinde hazır bir fonksiyon sağlar. Bir x değeri için genel yazım formatı log2(x) şeklindedir. şeklindedir. Doğal logaritma da olduğu gibi negatif sayıların logaritmaları reel sayı değildir ve sıfır için değeri sonsuzdur. 0 ile1 arasındaki (0 ve 1 dahil değil) değerleri negatiftir. Şimdi sırasıyla log1, log10, log100 ve log 1000, sonra log2, log5, log3/5 ve sonra da log0 ve log(-4) değerlerini bulalım. log1» log10(1) 0 log10» log10(10) 1 log5» log10(5) 0.6990 Şimdi de aşağıdaki üstel yazılımlı ifadelerin değerleri bulalım :» 3^12, (1/2)^(-4), 20^(1/5), 10^(3/5), 5.62*10^(-5)3 Page 12
Bu konu başlığı altında çok kullanılan bir diğer fonksiyonumuz karekök alma işlemini gerçekleştiren sqrt fonksiyonudur. Genel yazım formatı bir x değeri için sqrt(x) şeklindedir.» sqrt(2), sqrt(23) 1.4142 4.7958 7. GRAFİK ÇİZME Matlabda, grafik çizmek için kullanılan komut plot dur. Örnek: y cos( 2t) and z (cos( 2t)) 3 fonksiyonunu Matlabda çizmek istersek -2<t<2 için, >>t=-2*pi:pi/100:2*pi; >>y=cos(2*t); >>plot(t,y) >>z=y.^3; >>plot(t,z) y ve z fonksiyonlarını ayni grafik üzerine çizmek istersek eğer, >> plot(t,y, r,t,z, g ); komutu kullanılır. y fonksiyonunun grafiği kırmızı ve z fonksiyonunun grafiği yeşil renktir. Grafik üzerinde akseslerin isimlerini ve grafiğin ismini yazmak için, aşağıdaki komut kullanılır. Eğer x- aksesin ismi zaman, y-aksesin ismi sonuç ve grafiğin ismi de fatoş olursa, >> xlabel( zaman ); >> ylabel( sonuç ); >> title( fatos ); Page 13
Örnek: Aşağıdaki iki fonksiyonun grafiğini ayni grafik penceresinde çiziniz. y1=sin(t), y2=cos(t), t=-2,2 >> t=-2*pi:0.01:2*pi; >> y1=sin(t); y2=cos(t); >> plot(t,y1, r, t,y2, b ); 8. PROGRAM EDİTÖRÜ Program yazabilmek için öncelikle File menüsünden edit file seçmek gerekir. Programı kaydetmek için mutlaka programın ismi ile ayni olmasına dikkat edilmelidir. Örnek: Bir M-file oluşturalım ve içerisine aşağıdaki bilgileri yazalım,, toplama.m % TOPLAMA function toplama(a), toplam=0; for i=1:a, toplam=toplam+i; end disp(['bu SAYILARIN TOPLAMI =', num2str(toplam)]); % disp anlamı ekrana yansıtmadır. >> toplama(4) Page 14
9. EV ÖDEVLERİ: (Gelen haftaya bu ödevlerin çıktısı teslim edilmelidir) 1.) Aşağıdaki fonksiyonların grafiklerini ayni grafik penceresinde çiziniz ve grafiğin ismi kendi isminiz, x- akses zaman ve y-akses de sonuç şeklide yazınız. y1(t)=cos(t)+sin(3t), y2(t)=2.5sin(t/2), t { -2, 2 } x1=cos(3*t), x2=0.5*sin(t/3), t { -3, 3 } 2.) Let 1 0 9 2 1 2 3 1 0-1 3 1 2 5 0 1 2 4 A, B 0 0 1, C and D 0-1 2 1 2 1 1 1 0 5 1 1 2 1 0 1 1 2 0 0 0 1 Aşağıdakilerini bulunuz. A ve B nin determinantları. T AD A nın tersi. 3.) n kadar sayının çarpımlarının( n!) program editörünü yazınız ve programın ismini çarpma(n) diye yazınız. Page 15