You are on page 1of 41

MATLAB

Dr. Tolga BEKLER


Canakkale Onsekiz Mart Universitesi Jeofizik Mhendisligi Blm 2006 BLM -I -

Iindekiler
Giris Baslarken Temel Matematiksel Islemler Degiskenler Karmasik Sayilar Temel Istatistiksel Islemler Polinomlar Yuvarlatma Islemleri Matriks ve Vektrler Nokta arpim/Blme Temel Matris Islemleri Ters Islemler zvektrler ve zdegerler Hazir Matris Fonksyionlari Grafik izimler Yzey izimleri Vektr Alanlari Sembolik Degiskenler Denkleme Sistemlerinin zm Dogrusal Olmayan Denklem Takimlarinin zm Integraller Trevler rnekler rnekler

Giris
MATLAB, MATrix LABoratory szcklerinden gelir ve temelde sayisal ve analitik olarak matematiksel fonksyionlarin ifadelerinin kullanildigi basta mhendislik alaninda olmak zere birok sayisal analizi kullanan bilimlerde son yillarda olduka sik kullanilan bir hazir yazilim paketidir. zellikle yksek performans gerektiren algoritma hazirlama ve gelistirme, sayisal analiz, simlasyon, mhendislik problemlerinin sayisal ve grafik zm tekniklerinde son derece etkindir.

Baslarken
Matlab yazilim paketinde kullanilacak olan her hazir fonksyion yaninda kullanicinin da kendi yazilimini olusturma imkani saglar. Matlabin gerek kisisel bilgisayarlarda (PC) gerekse diger isletim sistemlerinde (UNIX, LINUX) gibi bazi ufak farkliliklar disinda kullanimi, ya dogrudan kendi alisma ve komut ekreaninda ya da m uzantili program dosyasi olusturmak suretiyle (script) olmaktadir. Program alistrildiginda alisma ekranina ilk olarak >> komut ekrani gelecektir.
>> 4.3+4.2 ans = 8.5000 ans 2.3 ile 4.2 sayilarinin toplamini sonuc olarak verecektir. (answer)

>> format rat >> 5.1-3.3 ans = 9/5 Sonu format rat ile kesirli halde alinabilir. >> format compact >> 5*7 ans = 35 Islem sonucu arasina ekstra bosluk birakilmaz

Temel Matematiksel islemler


>> 5^8 ans = 40 >> format long ile istenilen sonucun duyarliligi gsterilir. >> sqrt(2) ans = 1.41421356237310

Temel trigonometric operatrler (cos, sin, tan, sec, csc, cot), tersleri (acos, asin, atan, asec, acsc, acot ), exponansiyel fonksyionexp, dogal logaritma log. rnek: ln(14)+sin(/4) asagidaki sekilde hesaplanir
>> log(14)+sin(pi/4) ans = 3.34616411080181

Matlabte hazir fonksyionalrin kullanim sekillerini bilmek istenirse help komutu kullanilir
>> help abs (mutlak deger icin yardim dosyasi cagirma)

ABS Absolute value. ABS(X) is the absolute value of the elements of X. When X is complex, ABS(X) is the complex modulus (magnitude) of the elements of X. See also SIGN, ANGLE, UNWRAP. Overloaded methods help sym/abs.m

Degiskenler
Tm yazilabilir karakterler degisken olarak atanabilir ve = olarak verilir.
>> x=23 x = 23

Degislen isimleri byk ve kk harf ayrimina hassastir. X ve x degiskenleri ayri olarak tanimlabilir.
>> x^2-3*x+2 ans = 30 >> log(x) ans = 1.94591014905531 >> sin(x) ans = 0.65698659871879 Yeni bir ifade icin bir nceki degisken kullanilabilir. Her islem ssonucu bellekte saklanir. >> y=8*x y = 56 >> x=x+5 x = 12

>> y y = 56 >> who komutu kullanilan degisken isimlerini verir

Your variables are: ans x y komutu degiskenlerin boyut bilgisini verir. Size Bytes Class 1x1 1x1 1x1 8 8 8 double array double array double array

>> whos Name ans x y

Grand total is 3 elements using 24 bytes Bellekteki degiskenleri silmek icin clear komutu kullanilir. Bu asamadan sonra degiskenler agrilmak istenirse; >> clear >> who >> x ??? Undefined function or variable 'x'. ile karsilasilir.

Karmasik Sayilar
Genel formati a+ib, a-ib, a+bj, a+jb olan ifadelerdir.
>>2-3i ans = 2.0000 - 3.0000i >> 2-3*i ans = 2.0000 - 3.0000i

ayni ifadenin 2-i3 olarak yazilamayacagina dikkat edilmeli. Karmasik sayilarin taniminda complex fonksyionuda kullanilir. Bu fonksyion karmasik sayinin gerel ve sanal kisimlarini verir.
> x=3;y=4; >> complex(x,y)

ans = 3.0000 + 4.0000i >> complex(2,-3) ans = 2.0000 - 3.0000i

Karmasik sayi islemleri: abs :Mutlak deger alir (Genlik bilgisi)

angle : Faz aisi conj imag real : Karmasik eslenik : Karmasik sanal kisim : Karmasik gerel kisim

>> z=2+5i; >> abs(z) ans = 5.3852 >> angle(z) ans = 1.1903 >> conj(z) ans = 2.0000 - 5.0000i >> imag(z) ans = 5 >> real(z) ans = 2

Temel Istatistiksel Islemler


zellikle saha ve gozlem verileri zerinde yapilacak analizlerin ve degerlendirilmeler iin istatistiksel yntemleri Matlabte kullanmak mmkndr. Bilinen en temel komutlar; max : Veri kmesindeki en byk degeri bulur. min : Veri kmesindeki en kk degeri bulur. length : Kme iinde ka eleman oldugunu verir. sum : Kmenin toplam sayisini verir prod : Verilerin arpimini hesaplar median : Verilerin ortanca degerini hesaplar std : Standart sapma mean : Ortalama deger yada aritmetik ortalama

geomean harmmean sort

: Geometrik ortalama : Harmonik ortalama : Kme elemanlarini azalan sirada hazirlar

>> T=[2.1;2.5;1.9;-1.9;2.4;3.0] T = 2.1000 2.5000 1.9000 -1.9000 2.4000 3.0000 >> max(T) ans = 3 >> min(T) ans = -1.9000 >> length(T) ans = 6 >> sum(T) ans = 10 >> prod(x) ans = 120 >> median(x) ans = 3.5000 >> median(T) ans = 2.2500 >> std(T) ans = 1.7874 >> mean(T) ans = 1.6667 >> geomean(T) ??? Error using ==> geomean The data must all be non-negative numbers. >> harmmean(T) ans = 3.6896

% Negatif sayi ieren kme var

Polinomlar
Matlabta polinomlar bir vektrle temsil edilirler. Polinom olusturmak iin yksekten dsk dereceliye dogru azalan sirada polinom katsayilari yazilir. x=s4+3s3-15s2-2s+9 polinomu programa asagidaki sekilde yazilir; x=[1 3 -15 -2 9] x= 1 3 -15 -2 9

Benzer sekilde y=s4+1in gsterilimi y=[1 0 0 0 0 1] seklindedir. Polinomun herhangi bir kk iin degeri, rnegin s4+1in s=2 iin degeri; z=polyval([1 0 0 0 1],2) veya dogrudan z=polyval(y,2) z= 17 Polinomun kklerinin bulunmasi, rnegin s4+3s3-15s2-2s+9 iin; roots([1 3 -15 -2 9]) ans= -5.5745 2.5836 -0.7951 0.7860 Iki polinomun arpilmasi, (x+8) (x2+4x+8) = x3+6x2+16x+16 x=[1 2] y=[1 4 8] z=conv(x,y) z= 1 6 16 16 Iki polinomu blelim [xx,R]=deconv(z,y) xx= 1 2 (blm=x+2) R= 0 0 0 0 (kalan=0) rnek: P(x)=x4+3x3-15x2-2x+9 polinomunun x=2 iin alacagi degerin bulunmasi
>> P=polyval([1 3 -15 -2 0],2) P = -24 rnek: P(x)=x4-5x >> >> >> pp x=[2 8]; p=[1 0 0 -5 0]; pp=polyval(p,x) = 6 4056 x=2 ve x= 8 iin fonksiyonun alacagi degerin bulunmasi

Polinom Kklerinin Bulunmasi Bir P(x)=0 polinomunun kklerinin bulmak iin roots komutu kullanilir.

rnek: y=3x3+4x2-6x+1 denklemini saglayan kkler


>> y=[3 4 -6 1]; >> roots(y) ans = -2.2763 0.7469 0.1961

Yuvarlatma Islemleri
fix floor ceil : Sifira dogru yuvarlatir : - 8 dogru yuvarlatir :+ 8 dogru yuvarlatir

round : en yakin tamsayiya yuvarlatir.


>> a=3.5; >> fix(a) ans = 3 >> floor(a) ans = 3 >> ceil(a) ans = 4 >> round(a) ans = 4

Matrisler ve Vektrler
Matriks olusturmak iin kseli, parantez kullanilir ve ; ile satirlar ayrilir
>> A=[2 11 -3 8; 1 0 8 -3; 7 1 2 5] A =

2 1 7

11 0 1

-3 8 2

8 -3 5

Sonu verecek olan her komut satiri sonuna ; konulursa grlmesini istemediginiz
>> B=[2 0 -3; -1 1 3];

will still define the variable B containing a 23 matrix, but MATLAB will not echo anything.
>> whos Name A B v Size 3x4 2x3 3x1 Bytes 96 48 24 Class double array double array double array

Grand total is 21 elements using 168 bytes

Bir B matrisinin elemanlarini gormek icin;


>> B B = 2 -1 0 1 -3 3

Vektorlerim matrislerin tek kolon halidir ve gsterimleri;


>> v = [ 2; 3; -4] v = 2 3 -4

Bir satir vektor bir satiri olan bir matrisdir.


>> w=[3 -2 5 11] w = 3 -2 5 11

rnegin iki sayi arasinda sirali satir vektr olusturmak iin a:b; rnegin
>> 2:5 ans = 2 3 4 5

j:i:k bir satir vektrn tanimlar ve j baslangi, I artim ve k son elemani gsterir.
>> 3:2:9 ans = 3 5 7 9

Matrisin transpozu
>> A=[5 -2 9; 11 7 8] A = 5 -2 9 11 7 8 >> A' ans = 5 11 -2 7 9 8

Esit artimli bir vektrn transpozu asagidaki gibi tanimlanir;


>> [1:3:10]' ans = 1 4 7 10 A is A(i,j) matrisinin istenilen I ve j elemaninin bulunmasi >> A=[3 -2 7 8; 4 3 2 1; 10 15 -2 9] A = 3 -2 7 8 4 3 2 1 10 15 -2 9 >> A(3,2) ans = 15

3. satirin 2. ve 4. sutun degerleri


>> A(3,[2 4]) ans = 15 9

3. kolonun tum degerleri


>> A(3,:) ans = 10 15 >> A(:,3) ans = 7 2 -2 -2 9

A matrsinin 1, 2 ve 4. kolon degerleri


>> A(:,[1 2 4]) ans = 3 -2 4 3 10 15 8 1 9

Ayni satir sayisina sahip iki matris asagidaki rnekte oldugu birlestirilebilir.
>> A=[1 2 3; 4 5 A = 1 2 4 5 >> B=[7 8; 9 10] B = 7 8 9 10 >> [A B] ans = 1 2 4 5 >> C=[7 8 9] C = 6] 3 6

3 6

7 9

8 10

7 >> [A;C] ans = 1 4 7

Eger satirlar birlestirilmek istenirse;


2 5 8 3 6 9

Bir A matrisinden herhangi bir satirin kaldirilmasi istenirse


>> A=[ 4 7 2 1 3; 8 7 12 -2 5; 11 1 14 -2 0] A = 4 7 2 1 3 8 7 12 -2 5 11 1 14 -2 0 >> A(2,:)=[] seklinde yazilir. A = 4 7 2 1 3 11 1 14 -2 0 >> A(:,[1 3])=[] 1. ve 3. stnlar kaldirildiktan sonraki durum A = 7 1 3 1 -2 0

Nokta arpim
Matlab dilinde dot (nokta islemler) islemler arpma *. Blme ./ veya .\ stalma .^ olarak kullanilir. Yani nokta isaretli islemler matrislerde eleman (elemanter) islem yapilacagini gsterir. N bier sakaler olmak zere a.^n, a matrisindeki her bir elemanin n. katresinin alinacagini ifade eder( Inan, A., 2004). Vektrlerin her elemani arpilir ve kmlatif toplam elde edilir.
>> v=[7; 23; 15; 2], w=[5; -2; 1; -8] v = 7 23 15 2 w = 5 -2 1 -8 >> dot(v,w) ans = -12

Nokta arpim simetriktir ayni sonu alinir.


>> dot(w,v) ans = -12

Bir vektrn boyu ||v||={vv}. ise


>> vlength=sqrt(dot(v,v)) vlength =

28.4077

Yada norm komutu ile de elde edilir.


>> norm(v) ans = 28.4077

Iki vector arasindaki ai ise vw=||v||||w||cos. = arccos((vw)/||v||||w||). zm


>> theta=acos(dot(v,w)/(norm(v)*norm(w))) theta = 1.6144 >> theta*180/pi ans = 92.4971

Yaklasik ai 92.5.

Temel matris islemleri


>> A=[5 -1 2; 3 4 7] A = 5 -1 2 3 4 7 >> B=[2 2 1; 5 0 3] B = 2 2 1 5 0 3 >> A+B ans = 7 1 3 8 4 10

Ayni boyutttaki matrislerin toplami gereklestirilebilir.


>> C=[3 1; 6 4] C = 3 1 6 4 >> A+C ??? Error using ==> + Matrix dimensions must agree.

Seklinde hatali sonu alinir. Bir matrisin elemanlarinin scalar bir sayi ile arpilmasi.
A=[1 2 ; 3 4] A = 1 3 2 4

>> 3*A ans = 3 9 6 12

* arpim operatr olup 2A seklinde yazilamaz. >> 2A ??? 2 | Missing operator, comma, or semi-colon. Ayni sekilde vektrlerin scalar arpimlari ve ara islemleri yapilabilir.
B=[2 ;3] B = 2 3 >> C=[4 ;3] C = 4 3 >> D=3*A-2*C D = -2 3

Iki matrisin A*B arpimi A mn ve B nk oldugunda geerlidir. Sonu A*B matrisi mk boyutundadir.
>> A=[3 1 7 2; 6 -3 4 2; 9 4 -1 -2] A = 3 1 7 2 6 -3 4 2 9 4 -1 -2 >> B=[1 2; 3 4; 5 6; 7 8] B = 1 3 5 7 >> A*B ans = 55 31 2 2 4 6 8

68 40 12

Matlabda islem satiri devam edemeyecek durumda ise kullanilir A=[2;2;2 ... ;33] A= 2 2

2 33 Matriks rank hesaplama iin Bsr matrisin tm karesel alt matrislerinden, determinanti sifirdan farkli olan en yksek boyutlusunun boyutuna A matrisinin ranki denir.
>> A=[1 2 1 4; 2 3 1 3; 3 2 1 2; 4 3 1 1] A = 1 2 1 4 2 3 1 3 3 2 1 2 4 3 1 1 >> rank(A) ans = 3

Ters Islemler
Bir A matrisinin tersi A^(-1) yada inv(A) ile gsterilir. Inv ters islem yapma operatrdr.
>> A=[2 1 1; 1 2 2; 2 1 2] A = 2 1 1 2 2 1 >> Ainv=inv(A) Ainv = 2/3 -1/3 2/3 2/3 -1 0 1 2 2

0 -1 1

Sonucun saglanmasi iin ters ve kendisi birim matrisi vermelidir.


>> A*Ainv ans = 1 0 0 >> Ainv*A ans = 1 0 0 0 1 0 0 0 1

0 1 0

0 0 1

Eger matris tekil ise tersi alinamaz. Hatali sonu alinir.


>> B=[1 2 3;4 5 6;7 8 9] B = 1 2 3 4 5 6 7 8 9 >> inv(B) Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.055969e-018. ans = 1.0e+016 *

-0.4504 0.9007 -0.4504

0.9007 -1.8014 0.9007

-0.4504 0.9007 -0.4504

B matrisinin rank degeri


>> rank(B) ans = 2

Rank degeri 3den kk oldugundan B matrisi tekildir, Matrisin determinantinin sifirdan farkli deger almasi gerek.
>> det(B) ans = 0

MAtlab tarafindan tekil olarak gorulen tersi alinabilen matrisler vardir.


>> format long >> C=[1.00000000000001 1; 1 .99999999999999] C = 1.00000000000001 1.00000000000000 1.00000000000000 0.99999999999999 >> inv(C) Warning: Matrix is singular to working precision. ans = Inf Inf Inf Inf >> rank(C) ans = 1 >> det(C) ans = 0 >> rref(C) ans = 1.00000000000000 0.99999999999999 0 0

Matlab matrisi rank=1 ve determinanti 0 oldugundan tekil kabul eder..Ancak eger = 0.00000000000001, then det(C)=(1+)(1)1=2 0, boylece tersi alinabilir. Format komuru ile 1+ ve 1 olarak birbirinden farkli 15 digitli bir deger elde edilir. Bu durumda tanim ; (1+)(1)=12 = 0.9999999999999999999999999999 Bu klasik anlamda bir ters zm isleminin tekil matrisler icin zm asamasidir. Ax=b olarak verilen bir ifadenin zmn ele alalalim, Burada A is terselenebilir olsun, basit olarak x=A1b olacaktir.
>> A=[11 7 -6 8; 3 -1 12 15; 1 1 1 7; -4 6 1 8] A = 11 7 -6 8

3 -1 12 15 1 1 1 7 -4 6 1 8 >> b=[10; -23; -13; 4] b = 10 -23 -13 4 >> format rat >> x=inv(A)*b x = 1 5 2 -3

Islemi saglamak iin


>> A*x ans = 10 -23 -13 4

zvektrler ve zdegerler
Bir kare matrisin zdegerlerini bulmak iin eig komutu kullanilir.
>> A=[ 3 1 1; 1 3 1; 1 1 3] A = 3 1 1 1 3 1 1 1 3 >> eig(A) ans = 2.0000 2.0000 5.0000 >> [Q,D]=eig(A) A arprazlanabilir ise Q = -0.8164 -0.0137 0.5774 0.3963 0.7139 0.5774 0.4201 -0.7001 0.5774 D = 2.0000 0 0 0 2.0000 0 0 0 5.0000

Q matrisinin kolonlari A matrisinin z-temellerini olusturur. v Q-1AQ=D. Saglamasi


>> inv(Q)*A*Q ans = 2.0000 0 0.0000 2.0000 -0.0000 0.0000 >> Q'*Q 0.0000 0.0000 5.0000

Q gereke zvektrlerin dik normalarini olusturur.

ans = 1.0000 0.0000 -0.0000

0.0000 1.0000 -0.0000

-0.0000 -0.0000 1.0000

Bir matrisin ksegen degerleri iin diag(A) kullanilir.


>> a=[2 4 4;2 3 1;3 -2 5] a = 2 2 3 4 3 -2 4 1 5

>> diag(a) ans = 2 3 5

Hazir matris fonksiyonlari


Rand, ones, zeros, eye: rand veya randn fonksyionlarinin kullanilmasi; bazi durumlarda yalnizca bir zelligi veya bir seyi denemek ve durumunu gzlemek iin rastgele sayilardan olusmus bir matris olusturmak iin kullanilir. Rand dzenli olarak dagilmis randn ise normal olarak dagilmis rastgele sayi retir (Inan, A., 2004). rnegin; a=-5 ile b=5 arasinda yani -5 ile +5 arasinda rastgele sayili 2x4 (iki satur 4 stnlu) bir matris retmek istenirse
>>a=-5+10*rand(2,4) a = 4.3547 4.1690 -0.8973 3.9365 -4.4211 -1.4713 3.1317 -4.9014

>> c=rand(4) 0 ile 1 arasinda 4x4 matris olusturur. zellikle iki boyutlu verilere rastgele grlt eklenmesinde temel kullanima uygundur. c = 0.1389 0.2028 0.1987 0.6038 0.2722 0.1988 0.0153 0.7468 0.4451 0.9318 0.4660 0.4186 0.8462 0.5252 0.2026 0.6721

Ones fonksyionu elemanlari 1 olan bir matris zeros fonksiyonu elemanlari 0 olan matris olusturur. >> s=ones(3)
s = 1 1 1 1 1 1 1 1 1

>> d=zeros(4) d = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

eye fonksiyonu ile birim matris olusturulur. >> d=zeros(2,4) d = 0 0 0 0 0 0 0 0

>> e=ones(2,5) e = 1 1 1 1 >> f=eye(3,3) f = 1 0 0 1 0 0

1 1

1 1

1 1

0 0 1

zel Matrisler Pascal(i) fonksyionu i. siraya kadar passcal geninin elemanlarindan olusan ixi boyutunda bir matris olusturulur.
>> pascal(4) ans =

1 1 1 1

1 2 3 4

1 3 6 10

1 4 10 20

1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 magic(j) fonksiyonu jxj uzunlugunda 1den jye kadar sayilardan olusan (j=2 hari) esit satir, stn ve ksegen toplamina sahip bir kare matris olusturur.
>> magic(3) ans = 8 3 4 1 5 9 6 7 2

8 + 1 + 6 = 15 + 3 + 5 + 7 = 15 + 4 + 9 + 2 = 15 ---------------15 15 15 [x,y]=meshgrid(x,y) fonksiyonu x ve y vektrlerini X ve Y matrislerine dnstrerek aslinda 3 boyutlu grafik izimleri iin bir veri ortami hazirlar. >> [X,Y]=meshgrid(-2:1:2,-2:1:2) X = -2 -2 -2 -2 -2 -1 -1 -1 -1 -1 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2

Y = -2 -1 0 1 2 -2 -1 0 1 2 -2 -1 0 1 2 -2 -1 0 1 2 -2 -1 0 1 2

Burada -2 ile 2 arasinda artimi 1 olan X ve Y matrisleri olusturulmustur.

Grafik izimleri
plot fonksiyonu belirli bir dzlem verisinin grafik gsterimi iin kullanilir. Bir x ve y dzleminde verilen bir verinin gsterimi plot(x,y). rnegin x ve y elemanlari (0,0), (1,1), (4,2) ve (5,1) olan dzlem
>> x=[0 1 4 5 0]; >> y=[0 1 2 -1 0]; >> plot(x,y)

Bir baska rnekte y=x3 fonksiyonu [2,2] olarak tanimlaniyorsa bunun matlab da izimini yapalim. Araligini kendimizin belirleyecegi 2 den 2 x degerleri
>> x=-2:.05:2; % 0.05 artim

x vektr 1x81 matrisini olusturur. Bu size(x) yazilarakta belirlenebilir.


>> y=x.^3; y=x^3 yazildiginda x kare matris olmadiginda hata verecektir. >> plot(x,y)

izilen grafige baslik yazilmasi


>> title('f(x)=x^3 fonksiyonu')

r(t)=(2tcost/(t+1),2tsint/(t+1)) kapali egrisini t [0,4] iin izimde t vektr aiagidaki gibi tanimlansin .
>> t=0:.1:4*pi; >> >> >> >> x=2*t.*cos(t)./(t+1); y=2*t.*sin(t)./(t+1); plot(x,y); title('(2t cos t/(t+1),2t sin t/(t+1))')

Matlab grafik izimlerini otomatik ayarlar. Uygun lekte grmek iin axis equal
>> axis equal

Ayni sekil zerinde birden fazla egriyi gstermek iin hold on. Ayni sekil zerinde birden fazla egriyi gstermek iin hold on kullanilir. rnek: x2+y2=4 ve (x1)2+(y1)2=1 gibi iki daire ayni sekilde gsterilmek istenirse. r1(t)=(2cost,2sint) ve r2(t)=(1+cost,1+sint) t [0,2] olarak tanimlanirsa.
>> t=0:pi/20:2*pi; >> plot(2*cos(t),2*sin(t))

>> >> >> >>

hold on plot(1+cos(t),1+sin(t)) axis equal title('x^2+y^2=4 and (x-1)^2+(y-1)^2=1

daireleri')

Yzeylerin izimleri
f(x,y) fonksiyonun dikdrtgensel ortamda gsterimi

R=[a,b][c,d]={(x,y) | a x b and c y d}, Ilk olarak meshgrid fonksiyonunu kullanarak ortami gridleyerek tanimlayabiliriz

Dikdrtgen [0,4][0,3] paralara blnrse ve genisligi 1 yksekligi 0.5 olan. Gird araligini tanimlayan x ve y vektrlerinin tanimlanmasi gerek.
>> x=0:4 x = 0 1 >> y=0:.5:3 y = 0 2 3 4

0.5000

1.0000

1.5000

2.0000

2.5000

3.0000

meshgrid grid noktalarini tanimlar. >> [X,Y]=meshgrid(x,y) X = 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3

4 4 4 4

0 0 0 Y = 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000

1 1 1

2 2 2 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000

3 3 3

4 4 4 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000

0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000

ylece 35 noktadan olusan 75 matris elde edilir. X matrisi x koordinatlarini y matrisi y kooridnatlarini ierir. f(x,y)=3x2y fonksiyonunu izelim. z koordinatlarini olusturan z >> Z=3*X-2*Y olarak tanimlansin
Z = 0 -1 -2 -3 -4 -5 -6 3 2 1 0 -1 -2 -3 6 5 4 3 2 1 0 9 8 7 6 5 4 3 12 11 10 9 8 7 6

Sonu olarak surf fonksyionu tanimli yzeyin izimi iin kullanilir


>> surf(X,Y,Z) >> title('f(x,y)=3x-2y yzeyi')

x ve y tanimlamalari dogrudan da yapilabilir.


>> [X,Y]=meshgrid(0:4,0:.5:3)

rnek: f(x,y)=x2y2y fonksiyonunu [2,2][1,1] tanimli aralikta gsterelim. Kenar uzunlugu 0.1 olan karelerden olusan bir grid tanimlanmasi gerek.
>> [X,Y]=meshgrid(-2:.1:2,-1:.1:1);

z yzeyinin tanimi
>> Z=(X.^2).*Y-2*Y;

Yzeyin izilmesi.
>> surf(X,Y,Z) >> title('f(x,y)=x^2y-2y Yzeyi')

Yariapi olan bir kre R3 ile merkezlenmis olsun. Ve genellestirilmis ifadesi ve tanim araligi,

r(,)=(sincos sinsin,cos)

0 ,0 2.

Bu birim kreyi izdirelim. Ilk olarak ve mesgrid fonksyionunu parametreleri olacaktir.


>> phi=0:pi/20:pi; >> theta=0:pi/10:2*pi; >> [Phi,Theta]=meshgrid(phi,theta);

= 1 iin.
>> X=sin(Phi).*cos(Theta); >> Y=sin(Phi).*sin(Theta); >> Z=cos(Phi);

Finally we plot the surface, and scale the axes so that it looks like a sphere!
>> surf(X,Y,Z) >> axis equal >> title('Birim kre {\bf R}^3') %{\bf R} yazim sekli R3 iin formattir.

Yada hazir fonksiyon halinde sphere(n) n tam sayisi ile ayni kre elde edilir.

Konturlama ( Egri Seviye Degerleri )


f(x,y)=x2y2. seviye egrilerinin gsterilmesi iin 'contour komutu kullanilmaktadir.
>> >> >> >> [X,Y]=meshgrid(-1:.1:1); Z=X.^2-Y.^2; contour(X,Y,Z) title(' f(x,y)=x^2-y^2 fonksiyonunun seviye egrileri')

Konturlarin degerlerini elde etmek iin


>> [C,h]=contour(X,Y,Z); >> clabel(C,h) >> title('f(x,y)=x^2-y^2 kontur degerleri ile.')

Grafik ve Konturlarin beraber izdirilmesi iin surfc komutu kullanilir


>> surfc(X,Y,Z) >> title('f(x,y)=x^2-y^2. fonksiyonu ve kontur cizgileri')

Vektr Alanlari
Bir vektr alan Rn ile tanimlanan bir fonksiyon olsun. F:RnRn, ve grafik olarak her x degerinin F(x) olarak yani x in Rn tanimlanir. MATLAB, quiver(X,Y,U,V) ile (U,V)vektrn (X,Y)noktalarinda . rnek:Vektr alani F(x,y)=(y,x)
>> >> >> >> [X,Y]=meshgrid(-1:.2:1); quiver(X,Y,-Y,X) axis equal axis([-1 1 -1 1])

>> quiver(X,Y,-Y,X,0) quiver(X,Y,U,V,s) genel ifadesinde s leklendirme olarak kullanilir. Yukarida sagdaki sekilde s=0 olarak alinmistir. Kullanilmassa otomatik leklendirme yapilir.

Sembolik Degiskenler ve Ifadeleri


MATLAB simgesel islemlerde Symbolic Math Toolkiti kullanir. Kullanilacak fonksiyonlar
>> help symbolic ile grlebilir. Simgesel degisken ve islemlere giris yapmak iin >>symintro yazmak yeterlidir.

Sayisal islemlerde ve karakter indislerinde bildirime gerek yok iken, simgesel islemlerde kullanilacak degiskenlerin nceden bildirilmesi gerekir. rnegin a gibi bir sembolik degisken >> sym a ans = a veya >> sym('a') ans = a
ile bildirilir.

Bir fonksionda geen degiskenler x,y ve z olsun


>> syms x y z

Anlami x=sym('x'), y=sym('y') ve z=sym('z'). Sembolik bir ifade yazalim. >> S=x^2-y^2 S = x^2-y^2

Bu ifadenin faktr.
>> factor(S) ans = (x-y)*(x+y) Snin kp ve ailimi. >> S^3 ans = (x^2-y^2)^3 >> expand(ans) ans = x^6-3*x^4*y^2+3*x^2*y^4-y^6

Bir fonksiyonu sadelestirmek icin simplify fonksyionu kullanilir.


>> S=(x^3-4*x)/(x^2+2*x) S = (x^3-4*x)/(x^2+2*x) >> simplify(S) ans = x-2

Sembolik ifadeler matris yada vektr normunda olabilir.


>> syms a b >> A=[cos(a) -sin(a); sin(a) cos(a)] A = [ cos(a), -sin(a)] [ sin(a), cos(a)] >> B=[cos(b) -sin(b); sin(b) cos(b)] B = [ cos(b), -sin(b)] [ sin(b), cos(b)] >> C=A*B C = [ cos(a)*cos(b)-sin(a)*sin(b), -cos(a)*sin(b)-sin(a)*cos(b)] [ sin(a)*cos(b)+cos(a)*sin(b), cos(a)*cos(b)-sin(a)*sin(b)] >> simplify(C) ans = [ cos(a)*cos(b)-sin(a)*sin(b), -cos(a)*sin(b)-sin(a)*cos(b)] [ sin(a)*cos(b)+cos(a)*sin(b), cos(a)*cos(b)-sin(a)*sin(b)] simplify fonksiyonu grldg gibi herhangi bir degisiklik yapmadi. Bu durumda baska bir seebek olan simple fonksyionu kullanilir. Esitligin en kisa ifadesi. >> D=simple(C) D = [ cos(a+b), -sin(a+b)] [ sin(a+b), cos(a+b)]

rnek: f(x,y)=(4x21)ex2y2 fonksiyonu iin f(1,2) sonucunu bulalim.


>> syms x y >> f=(4*x^2-1)*exp(-x^2-y^2) f = (4*x^2-1)*exp(-x^2-y^2)

>> f(1,2) ??? Index exceeds matrix dimensions.

f bir fonksiyon olmadigindan bir degisken oldugundan MATLAB f(1,2) bir satir ve 2 kolon olarak giris yapacaktir. Ifadenin sonucunu bulmak iin degisken degistirme yapilmalidir. Bunun iin subs fonksiyonu kullanilir.
>> subs(f,{x,y},{1,2}) ans = 0.0202

Sadece yye bagli bir ifade elde edilecekse,


>> subs(f,x,3) ans = 35*exp(-9-y^2)

Fonksiyonlari tanimlamak iin bir baska yol da inline komutunu kullanmaktir. rnek: g(x,y)=x23xy+2
>> g=inline('x^2-3*x*y+2') g = Inline function: g(x,y) = x^2-3*x*y+2 olarak tanimlanabilir.

g(2,3) iin fonksiyonu degerlendirmek iin.


g(2,3) ans = -12

inline fonksyonlarin dezavantaji sembolik olarak degistirilemez.


>> g^2 ??? Error using ==> ^ Function '^' not defined for variables of class 'inline'.

Denklem Sistemlerinin zm
Matlabin bir diger gelismis zelligi her trl dogrusal ve dogrusal olmayan denklem takimlarinin zm kmesini bulmasidir. Bu ama iin solve komutunu kullanir.
>> solve('sin(x)+x=5') ans = 5.6175550052726989176213921571114

Eger esitlik verilmezse,


>> solve('a*x^2+b*x+c','x') ans = [ 1/2/a*(-b+(b^2-4*a*c)^(1/2))] [ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]

rnek: x2+y2=4 ve (x1)2+(y1)2=1 olarak verilen iki fonksiyonun kesisim degerlerini bulmak iin.
>> S=solve('x^2+y^2=4','(x-1)^2+(y-1)^2=1') S = x: [2x1 sym] y: [2x1 sym] >> [S.x S.y] ans = [ 5/4-1/4*7^(1/2), 5/4+1/4*7^(1/2)] [ 5/4+1/4*7^(1/2), 5/4-1/4*7^(1/2)]

Kesisim degerleri ((57)/4,(5+7)/4) and ((5+7)/4,(57)/4).

Dogrusal Denklem Takimlarinin zm


n. dereceden dogrusal denklem takimi a11 x1 + a12 x2 + ... + a1n xn = b1 a 21 x1 + a 22 x2 + ... + a 2 n x n = b2 .......... .......... .................... ..... a n1 x1 + a n 2 x2 + ... + a nn xn = bn biiminde verilir. Bu denklem takiminin matris biiminde gsterimi

[ A] [x] = [B ]
seklinde tanimlanabilir. Burada;

a11 a12 .. a1n a 21 a 22 .. a 2 n A= .. .. .. .. a n1 a n 2 .. a nn


katsayilar matrislerini ve

B = [b1 b2 .. bn ]

X = [x1 x 2 ... x 3 ]
zm istenen degiskenler matrisini (vektrn) gsterir. Bu tr istenen denklem takimlarinin zm iin, iinde yer alan zel fonksiyonlar yoktur. Bu denklemlerin zmnde matris islemlerinden yararlanilabilir. AX=B biiminde verilen denklem takiminin zmnde A\B biiminde soldan (blen blme isaretinin solunda yer almakta) matris blme islemi ile yerine getirilir. XA=B biiminde tanimlanan matris

denklemin zmnde B/A seklinde sagdan matris blme islemi kullanilir. Sagdan ve soldan matris blme isleminde sayisal Gauss eliminasyon teknigi kullanilir. Denklem Takimlarinin Ters Matris Islemi Yolu ile zm AX=B biiminde verilen ve Bnin satir matrisi olarak tanimlandigi matris denkleminin her iki tarafini A-1 ile arparsak A-1 AX=A-1B elde edilir. Burada A-1 A, I olarak tanimlanan birim matrise denktir. Buna gre IX=A-1B veya X=A-1B elde edilir. MATLAB ortaminda bu zm; X=inv(A)*B komutu ile elde edilebilir. Diger taraftan Bnin stun matrisi olarak tanimlandigi, XA=B biiminde ifade edilen denklem takiminin zm iin, her iki taraf A-1 ile arpilir ve gerekli dzenlemeler yapilirsa X=BA-1 elde edilir.MATLAB ortaminda X=B * inv(A) bildirimi ile gerekli zm elde edilmis olur.

rnek : Asagida verilen denklem takiminin zmn elde ediniz.

=2 x1 + 4 x2 x3 + x4 2 x + 7 x + x 2 x = 16 2 3 4 1 x1 + 4 x2 x3 + 2 x4 = 1 3x1 10 x2 2 x3 + 5 x4 = 15
zm : zm ilk nce soldan ve sagdan matris blme islemlerine gre ele alinacak ve daha sonra da ters matris islemine gre zlecektir. AX=B biiminde matris denklemi verildiginde zm soldan blme islemine gre asagidaki bildirimlerle yerine getirilebilir.
a=[ 1 4 1 b=[ 2 16 1 >> x=a\b; 1; 2 7 -15 ] 1 -2; 1 4 -1 2; 3 -10 -2 5 ]

Denklem takimlari XA=B biiminde matris denklemi ile tanimlandiginda zm sagdan blme islemi ile asagidaki sekilde saglanir. Burada A ve B matrisleri bir nceki orijinal halinin traspozesi olmaktadir.
a=[ 1 2 b=[2 16 x=b/a 1 1 3; 4 -15] 7 4 -10; -1 1 -1 -2; 3 -10 -2 5]

Ters matris islemi ile zmde; MATRIS denklemi AX=B biiminde verildiginde, A ve B matrisi
a=[ 1 b=[ 2 4 1 16 1 1; 2 7 -15 ] 1 -2; 1 4 -1 2; 3 -10 -2 5 ];

biiminde tanimlandiktan sonra x=inv(a)*b; bildirimi ile zm elde edilir: Benzer sekilde Matris denklemi XA=B biiminde verildiginde A ve B matrisleri,
a=[ 1 2 1 b=[2 16 1 x=b*inv(a) 3; 4 -15] 7 4 -10; -1 1 -1 -2; 3 -10 -2 5]

bildirimi ile zm elde edilir. Yukarida verilen bildirimler yolu ile x zm iin x= 2.0000 1.0000 3.0000 -1.0000

seklinde elde edilmis olur. Burada x 1= 2, x2=1, x3=3 x4=-1 dir.

Dogrusal Olmayan Denklemlerin zm


Dogrusal olmayan denklemlerin dogrusal denklemlerde oldugu gibi tek bir standart biimi yoktur. Gerek MATLAB iinde gerekse Otimatization Toolbox iinde, gerek tek degiskenli ve gerekse ok degiskenli denklemlerin zmnde kullanilan esitli zm fonksiyonlari vardir. Dogrusal olmayan denklemlerin zm, dogrusal denklem zm kadar basit olmayip bunlarin zm iin ayrica bir fonksiyon dosyasi hazirlanmasi gerekir. Burada, MATLAB iinde yer alan fzero fonksiyon fonksiyonu ile Otimatization Toolbox iinde yer alan fsolve fonksiyon fonksiyonu ayrintili bir biimde ele alinacaktir. Ayrica diger dogrusal olmayan fonksiyon fonksiyonlarinin kisaca tanimlari gzden geirilecektir. fzero: Fonksiyon fonksiyonu; tek degiskenli bir fonksiyonun sifirini hesaplar. Genel kullanim biimleri asagida oldugu gibidir.
z=fzero(function,X0); z=fzero(function,X0,tol);

z=fzero(function,X0,tol, trace);

fun(x) biimindeki bir fonksiyonun, X0 ile tanimlanan degere yakin olan tek bir sifirini hesaplar. Burada, fonksiyonu sifir yapan, yani x eksenini kesen bir sifir degeri hesaplanir. Ikinci bildirimde yer alan tol isimli, seimli argman bagil hata toleransini belirler. nc bildirimde yer alan seimli trace argmani her bir hesap yineleme islemindeki bilgileri grntler. Fonksiyon fonksiyonu olan fzero fonksiyonunu kullanmak iin ayrica function ile baslayan bir fonksiyon dosyasi hazirlanmasi gerekir.

rnek: f(x)=x3-2x-5 fonksiyonunun bir sifirini bulunuz. zm: nce bir fx.m adi ile fonksiyon dosyasi hazirlanir.
Function y=fx(x) y=x^3-2*x-5

Burada dosya adi fx ile fonksiyon adi fx ayni olmasi gerektigine dikkat edilmelidir. Daha sonra MATLAB ortaminda
z=fzero(fx,2)

bildirimi ile
z=2.0946

sonucu elde edilir. Burada X0=2 olarak tahmini bir baslangi deger verilmistir. f (x) fonksiyonu gerekten bir polinom olduguna gre asagida verilen roots komutu ile
p=roots([1 0 -2 -5])

Ayni fonksiyonu sifir yapan gerek deger ile birlikte karmasik eslenik kkleri de; p= 2.0946 -1.0473 + 1.1359i -1.0473 - 1.1359i olarak elde edilmis olur

rnek : e2x x 2 biiminde verilen dogrusal olmayan fonksiyonun bir adet sifirini bulunuz. zm:Burada f(x) fonksiyonu; f(x)=e2x x 2 biimine sokulabildigine gre fonksiyon dosyasi;
function y=fex(x) y=exp(2*x)-x-2;

biiminde hazirlanir. Daha sonra MATLAB ortaminda;

z=fzero(fex,1) z0.4475

elde edilir. Yukaridaki rneklerden de grldg gibi fzero fonksiyonu herhangi bir fonksiyonun tahmini bir sifirinin hesaplanmasinda ve/veya dogrusal olmayan denklemlerin zmnde daha kullanislidir. Dogrusal denklemlerin ayni anda tm kklerini zmek gerektiginde roots fonksiyonunu kullanmak daha pratik olacaktir.

Dogrusal Olmayan Denklem Takimlarinin zm


Dogrusal olmayan denklem takimlarinin zmnde, Optimization Toolbox iinde yer alan fsolve fonksiyon fonksiyonu kullanilir. fsolve fonksiyonu dogrusal olmayan denklem takiminin zmn saglar. fsolve fonksiyonunun belli basli kullanim biimleri asagida oldugu gibidir.
x=fsolve(fun,x0) x=fsolve(fun,x0,options) x=fsolve(fun,x0,options,grad) x=fsolve(fun,x0,options,grad,p1,p2, ...) [x,options]=fsolve(fun,x0, ...)

fsolve dogrusal olmayan denklemlerin kklerini hesaplar. ikis argmani olan X degerleri; F(x)=0 seklinde hesaplanir. Burada F(x) ve X skalar, vektr veya matrislerden ibaret olabilir. x=fsolve(dun,x0) bildirimi, fun.m isimli M-dosyasinda tanimlanan denklemleri, X0 tahmini baslangi degerlerinden baslayarak zer ve sonucu X degiskenine atar. Burada X0 boyutu x degisken sayisi kadar olmalidir. Ikinci bildirimde yer alan seimli argman options seimli parametreler vektrn tanimlar. options iin pek ok seenek mevcuttur. Bunlar ile ilgili bilgiler help folve yolu ile saglanabilir. nc bildirimde yer alan grad, X noktasinda fonksiyonlarin kismi trevlerini (Jacobianlarini) df/dx, df=grad(x) elde etmek iin kullanilir. dfin iinci stunu fdeki fonksiyonun iinci kismi trevine karsilik gelir.

rnek: Bir metal kesme islemine ait denklem takimi C=1.2+11.62323v-1f-1 + 5.7449x10-8v3f0.16d1.14 0.0499v0.95 f0.78 d0.75=20 biiminde tanimlanmaktadir. Burada c 1.27 i,le 1.28 arasinda bir degerdir. Tamamen nonlinear olan bu denklemlerin zm iin gerekli fonksiyon dosyasi
function f=nlnr(x) &x(1)=v, x(2)=f, x(3)=d, degiskenlerine .karsilik gelmektedir. F(1)=-0.08+11.6323/(x(1)*x(2))+5.744e-8 . . .

(x(1).^3)* (x(2).^0.16) * (x(3).^1.14); f(2)=12.7 0.015*(x(1).^(-1.52))*(x(2).^1.004) . . . *( x(3). ^0.25); f(3)=20-0.0449*(x(1).^0.95)*(x(2).^0.78) *(x(3).^0.75);

hazirlanabilir. Daha sonra MATLAB ortaminda fsolve ile asagidaki bildirimler yolu ile zlr. Burada en nemli husus baslangi degerinin seimidir. Uygun bir zm elde edilene kadar baslangi degerlerinin seimi degistirilebilir. x=fsolve(nlnr,[0.5 112.5 20]); Bildirimi ile X= 0.6686 217.4627 18.2436 Sonucu elde edilir. Bu sonu f fonksiyonlari ile test edildiginde f= 1.0e-008 *(-0.0573 -0.5991 0.5776) sifira ok yakin degerler elde edildigi grlr. Buna karsilik X0 baslangi degerleri asagida oldugu gibi seilecek olursa
>>x=fsolve(nlnr,[1 2 100]);

Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND= 6.79344e-017

Maximum number of iterations has been exceeded Biiminde bir uyari alinir. Buda zmn yeterli tamlikta gereklenmedigini gsterir. Gerekten de f fonksiyon degerleri asagidaki biimde yazilarak test edildiginde >> F(1)=-0.08+11.6323/(x(1)*x(2))+5.744e-8 . . . (x(1).^3)* (x(2).^0.16) * (x(3).^1.14); >> f(2)=12.7 0.015*(x(1).^(-1.52))*(x(2).^1.004) . . . *( x(3). ^0.25); >> f(3)=20-0.0449*(x(1).^0.95)*(x(2).^0.78) *(x(3).^0.75); f= 0.1715 0.2316 0.5576 sifirdan olduka farkli degerler elde edildigi grlr. Bu durumda baslangi degerlerini degistirmek sureti ile uygun zmler arastirilmalidir.
Optimization Toolbox iinde, dogrusal olmayan denklemlerin, degisik sekilde zmnde kullanilan diger pek ok fonksiyon vardir. Bunlarin tanimlari asagida kullanilan diger pek ok fonksiyon vardir. Bunlarin tanimlari asagida oldugu gibidir. Genel kullanim biimleri MATLAB ortaminda help komutu ile elde edilebilir.

attgoal constr fmin fminu, fmins Fsolve leastssq minimax seminf lp nnls qp

: oklu-amali hedefe ulasma problemi zm : Kisitli minimizasyon zm : Skalar kisitsiz minimizasyon zm. : Kisitsiz minimizasyon zm. : Dogrusal olmayan denklem zm. : Dogrusal olmayan en kk kareler zm. : Minimum-maksimum zm. : Yari mutlak minimizasyon : Dogrusal programlama : Negatif olmayan en kk kareler zm. : Egrisel programlama.

Integraller
Simgesel integral alma fonksiyonu int genel kullanim sekli int(s) int(s,v) int(S,a,b) int(S,v,a,b) : findsym ile belirlenen simgesel degiskene gre Snin belirsiz integralini alir : Snin vye gre integralini alir. : Snin varsayilan degiskene gre adan bye kadar belirli integralini alir. : Snin tanimli adan bye kadar belirli integralini alir.

rnek: 5 (2 x 4 x + 20)dx integrallinin hesaplanmasi


>>int(-2*x^5-4*x+20) ans = -1/3*x^6-2*x^2+20*x >> pretty(int(-2*x^5-4*x+20)) 6 2 - 1/3 x - 2 x + 20 x

rnek:

(at ln(t + 1) + ut )dt


1 0

integralinin hesaplanmasi

>> syms x a u t; >> int_s=a*t*log(t+1)+u*t; >> r=int(int_s,t) r = 1/2*a*log(t+1)*t^2-1/2*a*log(t+1)-1/4*a*t^2+1/2*a*t+3/4*a+1/2*u*t^2 >> ss=int(int_s,t,0,1) ss = 1/2*u+1/4*a Eger integral sinirlari 8 , +8 ise -inf ve +inf olarak sinirlar verilir.

Trevler
Trev ifadesi diff komutu ile verilir. rnegin f f(x)=sin(ex) ifadesinin xe bagli trevi
>> syms x >> f=sin(exp(x)) f = sin(exp(x)) >> diff(f) ans = cos(exp(x))*exp(x)

nth trev diff(f,n) olarak verilir.


>> diff(f,2) ans = -sin(exp(x))*exp(x)^2+cos(exp(x))*exp(x)

Kismi trevlerin bulunmasina rnek


f(x,y)=x3y4+ysinx.
>> syms x y >> f=x^3*y^4+y*sin(x) f = x^3*y^4+y*sin(x)

Ilk olarak f/x hesaplanir.


>> diff(f,x) ans = 3*x^2*y^4+y*cos(x)

Daha sonra f/y hesaplanir.


>> diff(f,y) ans = 4*x^3*y^3+sin(x)

3 f/x3 bulmak istersek


>> diff(f,x,3) ans = 6*y^4-y*cos(x)

Bir fomksiyonun bilinmeyen parametrelerine gre trevinin alinmasi iin Jacobian matrisin olusturulmasi gerekir. Bunun iin jacobian komutu kullanilir. rnek: f(x,y)=(sin(xy),x2+y2,3x2y).
>> f=[sin(x*y); x^2+y^2; 3*x-2*y] f = [ sin(y*x)] [ x^2+y^2] [ 3*x-2*y] >> Jf=jacobian(f) Jf = [ cos(y*x)*y, cos(y*x)*x] [ 2*x, 2*y] [ 3, -2]

Dogrusal bir dnsm durumunda Jacobian olduka basittir.


>> A=[11 -3 14 7;5 7 9 2;8 12 -6 3] A = 11 -3 14 7 5 7 9 2 8 12 -6 3 >> syms x1 x2 x3 x4 >> x=[x1;x2;x3;x4] x = [ x1] [ x2] [ x3] [ x4] >> T=A*x T = [ 11*x1-3*x2+14*x3+7*x4] [ 5*x1+7*x2+9*x3+2*x4] [ 8*x1+12*x2-6*x3+3*x4] T nin Jacobian i >> JT=jacobian(T) JT = [ 11, -3, 14, 7] [ 5, 7, 9, 2] [ 8, 12, -6, 3]

The Jacobian of T is A matrisinivermektedir. Adi Diferansiyel Denklemlerin zm dsolve komutu kullanilmaktadir. rnek: y/t=-ay diferansiyel denkleminin zm
>> y=dsolve('Dy=-a*y') y= C1*exp(-a*t)

Uygulamada varsayilan degisken tdir. Ancak problem y=-ay seklinde verilseydi bu durumda degiskenin ne oldugu belirtilmemistir. y(0)=1 baslangi kosulu verildigini dsnelim.
>> y=dsolve('Dy=-a*y','y(0)=1') y = exp(-a*t) C1 katsayisinin kalktigi grlmektedir.

rnek: d2y dy + 3 + y = 0 diferansiyel denklemin zm 2 dt dt


dsolve('D2y+3*Dy+y=0') ans = C1*exp(1/2*(-3+5^(1/2))*t)+C2*exp(-1/2*(3+5^(1/2))*t) pretty(ans) 1/2 1/2 ) t) + C2 exp(- 1/2 (3 + 5 ) t)

C1 exp(1/2 (-3 + 5

Pretty komutu ile dzenli basim sekli gelir. rnek: y(0)=0, y?(0)=1 kosullari altinda y??+4y?+12y=8sin4t ikinci derecden diferansiyel denklemin zm r=dsolve('D2y+4*Dy+12*y=8*sin(4*t)','y(0)=0','Dy(0)=1','t') r= -4/17*sin(2*2^(1/2)*t)*sin(2*(2^(1/2)-2)*t)-3/17*sin(2*2^(1/2)*t)*cos(2*(2^(1/2)2)*t)*2^(1/2)-7/34*sin(2*2^(1/2)*t)*sin(2*(2^(1/2)2)*t)*2^(1/2)+3/17*cos(2*2^(1/2)*t)*sin(2*(2+2^(1/2))*t)*2^(1/2)+7/34*cos(2*2^(1/2)*t)*co s(2*(2+2^(1/2))*t)*2^(1/2)+3/17*cos(2*2^(1/2)*t)*sin(2*(2^(1/2)-2)*t)*2^(1/2)7/34*cos(2*2^(1/2)*t)*cos(2*(2^(1/2)2)*t)*2^(1/2)+1/17*sin(2*2^(1/2)*t)*cos(2*(2+2^(1/2))*t)+7/34*sin(2*2^(1/2)*t)*sin(2*(2+2 ^(1/2))*t)*2^(1/2)-4/17*cos(2*2^(1/2)*t)*cos(2*(2+2^(1/2))*t)4/17*cos(2*2^(1/2)*t)*cos(2*(2^(1/2)-2)*t)3/17*sin(2*2^(1/2)*t)*cos(2*(2+2^(1/2))*t)*2^(1/2)1/17*cos(2*2^(1/2)*t)*sin(2*(2+2^(1/2))*t)+1/17*cos(2*2^(1/2)*t)*sin(2*(2^(1/2)-2)*t)4/17*sin(2*2^(1/2)*t)*sin(2*(2+2^(1/2))*t)-1/17*sin(2*2^(1/2)*t)*cos(2*(2^(1/2)2)*t)+8/17*exp(-2*t)*cos(2*2^(1/2)*t)+41/68*exp(-2*t)*sin(2*2^(1/2)*t)*2^(1/2) >> pretty(simple(r)) 1/2 8/17 exp(-2 t) cos(2 2 t) - 2/17 sin(4 t) - 8/17 cos(4 t) 41 1/2 1/2 + -- exp(-2 t) sin(2 2 t) 2 68

M-Dosyalari
M-dosyalari olarak ele aldigimiz dosyalar aslinda matlab ortaminda kullanmis oldugumuz komutlardir ve veri analizini saglayan fonksiyonlardir.Bu fonksiyonlar her amaca yeterli olsa da sonulara daha hizli ulasabilmek iin kendimize zel fonksiyonlar yani yeni M-dosyalari olusturabiliriz.esitli yollarla bu M-dosyalarini hazirlayabiliriz.Istersek bir komutlar dizisi sayesinde sonuca ulasiriz istersek de function kelimesiyle baslayan bir fonksiyonel dosya olustururuz.nemli olan bize istedigimiz sonucu kisa zamanda verebilmesi.Simdi de rnek olarak bir M-dosyasi olusturalim:

rnegin ktlesinin ve hizinin degerini girdigimde bana o cismin kinetik enerjisini veren bir Mdosyasi olusturalim.ncelikle komutlari yazacagim sayfaya girmem gerek.M-dosyasi olusturmak iin ncelikle file mensnden new dedigimizde M-file diyecektir.onu seerek

alanimizi olusturmus oluruz.Baska bir yol ise Command Windowda edit yazarak olusturmaktir. Asagidaki gibi M-dosyamizi olusturuyoruz: % ktlesi ve hizi verilen bir cismin % kinetik enerjisinin hesabi m=input('Ltfen ktle degerini giriniz(kg)= ') v=input('Ltfen cismin hiz degerini giriniz(m/s)= ') Ek=m*v^2/2 (verilen degerlere gre kinetik enerji hesaplaniyor) Bu komutlari yazdiktan sonra bunu sakliyoruz.rnegin sayfadaki disket resmine tikladik ve dosya ada olarak kinetik yazdik ve dosyayi saklamis olduk.Simdi de islemlerimizin dogrulugunu test edelim.Command Windowa geerek kinetik yazdigimizda veya komutlari yazdigimiz sayfadan debug mensnden Run setigimizde bakalim neler oluyor: >> kinetikLtfen ktle degerini giriniz(kg)=10m = 10 Ltfen cismin hiz degerini giriniz(m/s)=50 v = 50 Ek = 12500 %************************************** % Hareketli egri iin bir rnek r(t)=(2tcost/(t+1),2tsint/(t+1))
% kivrim.m % hold on for T=0:.1:4*pi t=[T T+.1]; plot(2*t.*cos(t)./(t+1),2*t.*sin(t)./(t+1)) axis equal axis([-2 2 -2 2]) axis off pause(.01) end %************************************************* % rastgele sayi retimi ve sinus zerine bindirme f1=50 % frekans f2=100 % frekans dt=0.001; max_sure=50; % saniye byt=40; % random sayi buyultme faktoru t = 0:0.001:.255; x = 10*sin(2*pi*f1*t) %+cos(2*pi*f2*t); yy = x + byt*randn(size(t)); subplot(2,1,1) plot((1/dt)*t(1:max_sure),yy(1:max_sure)) xlabel('zaman (milisaniye)') subplot(2,1,2) Y = fft(yy,256);

Pyy = Y.* conj(Y) / 256; f = 1000*(0:128)/256; plot(f,Pyy(1:129)) xlabel('frekans (Hz)') %************************************************ %************************************************ % K,re seklinde bir cismin gravite anomalisi ve rastgele grlt eklenmesi clear all; G=6.6579E-8; s=3000000; d=300; % s=input('ktle='); % d=input('derinlik='); byt=0.008; % rastgele sayi faktoru % kure seklindeki cismin gravite anomalisinin ifadesi % anomaliye rastgele gurultu eklenir. for i=(1:40) tm=s*1E6 td=d*1E2 x(i)=(i-21)*1E4 delg(i)=((G*tm*td)*(1/((x(i)^2+td^2)^1.5)))*1E3; gur=byt*randn(size(i)); gdelg(i)=delg(i)+gur; end; plot(x,gdelg) xlabel('uzaklik km') ylabel('mgal') text(5000,0.2,'\leftarrowanomali',... 'FontSize',16) %****************************************************

KAYNAKLAR
MATLAB ILE MHENDISLIK SISTEMLERININ ANALIZI VE ZM Prof.Dr. Ibrahim YKSEL U..Makine Mhendisligi Blm 1996 Matlab ve Programlama Dr. Aslan Inan, Papatya DIFERANSIYEL DENKLEMLER VE UYGULAMALARI Prof. Dr. Mehmet AYDIN Gnl GNDZ Beno KURYEL Yard. Do. Dr. Galip OTURAN Izmir 1999

HTTP://WWW.MATHWORKS.COM HTTP://EDUCATION.MATHWORKS.COM HTTP://EFE.EGE.EDU.TR/~MATLAB/MATLAB1.DOC

You might also like