matlab öğren

download matlab öğren

of 41

Transcript of matlab öğren

  • 8/8/2019 matlab ren

    1/41

    MATLAB Dr. Tol ga BEKLER

    Canakkale Onsekiz Mart Universitesi

    Jeofizik Mhendisligi Blm

    2006

    BLM -I -

    IindekilerGirisBaslarkenTemel Matematiksel IslemlerDegiskenlerKarmasik SayilarTemel Istatistiksel IslemlerPolinomlarYuvarlatma IslemleriMatriks ve VektrlerNokta arpim/BlmeTemel Matris IslemleriTers Islemlerzvektrler ve zdegerlerHazir Matris FonksyionlariGrafik izimlerYzey izimleriVektr AlanlariSembolik DegiskenlerDenkleme Sistemlerinin zmDogrusal Olmayan Denklem Takimlarinin zmIntegrallerTrevlerrneklerrnekler

  • 8/8/2019 matlab ren

    2/41

    Giris

    MATLAB, MATrix LABoratory szcklerinden gelir ve temelde sayisal ve analitik olarakmatematiksel fonksyionlarin ifadelerinin kullanildigi basta mhendislik alaninda olmak zerebirok sayisal analizi kullanan bilimlerde son yillarda olduka sik kullanilan bir hazir yazilimpaketidir. zellikle yksek performans gerektiren algoritma hazirlama ve gelistirme, sayisalanaliz, simlasyon, mhendislik problemlerinin sayisal ve grafik zm tekniklerinde sonderece etkindir.

    BaslarkenMatlab yazilim paketinde kullanilacak olan her hazir fonksyion yaninda kullanicinin da kendiyazilimini olusturma imkani saglar. Matlabin gerek kisisel bilgisayarlarda (PC) gerekse digerisletim sistemlerinde (UNIX, LINUX) gibi bazi ufak farkliliklar disinda kullanimi, yadogrudan kendi alisma ve komut ekreaninda ya da m uzantili program dosyasi olusturmaksuretiyle (script) olmaktadir. Program alistrildiginda alisma ekranina ilk olarak >> komutekrani 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/5Sonu format rat ile kesirli halde alinabilir.

    >> format compact>> 5*7ans =

    35Islem sonucu arasina ekstra bosluk birakilmaz

    Temel Matematiksel islemler>> 5^8ans =

    40

    >> format long ile istenilen sonucun duyarliligi gsterilir.>> sqrt(2)ans =

    1.41421356237310

  • 8/8/2019 matlab ren

    3/41

    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. WhenX is complex, ABS(X) is the complex modulus (magnitude) ofthe elements of X.

    See also SIGN, ANGLE, UNWRAP.

    Overloaded methodshelp sym/abs.m

    DegiskenlerTm yazilabilir karakterler degisken olarak atanabilir ve = olarak verilir.

    >> x=23x =

    23

    Degislen isimleri byk ve kk harf ayrimina hassastir. X ve x degiskenleri ayri olaraktanimlabilir.>> x^2-3*x+2ans =

    30>> log(x)

    ans =1.94591014905531>> sin(x)ans =

    0.65698659871879

    Yeni bir ifade icin bir nceki degisken kullanilabilir. Her islem ssonucubellekte saklanir.>> y=8*xy =

    56

    >> x=x+5x =

    12

  • 8/8/2019 matlab ren

    4/41

    >> yy =

    56

    >> who komutu kullanilan degisken isimlerini verir

    Your variables are:

    ans x y

    >> whos komutu degiskenlerin boyut bilgisini verir.Name Size Bytes Class

    ans 1x1 8 double arrayx 1x1 8 double arrayy 1x1 8 double array

    Grand total is 3 elements using 24 bytes

    Bellekteki degiskenleri silmek icin clear komutu kullanilir. Bu asamadansonra degiskenler agrilmak istenirse;>> clear>> who>> x??? Undefined function or variable 'x'.

    ile karsilasilir.

    Karmasik SayilarGenel 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 tanimindacomplex fonksyionuda kullanilir. Bu fonksyion karmasiksayinin gerel ve sanal kisimlarini verir.

    > x=3;y=4;

    >> complex(x,y)

  • 8/8/2019 matlab ren

    5/41

    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 : Karmasik eslenik

    imag : Karmasik sanal kisim

    real : 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 Islemlerzellikle saha ve gozlem verileri zerinde yapilacak analizlerin ve degerlendirilmeler iinistatistiksel 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 verirprod : Verilerin arpimini hesaplarmedian : Verilerin ortanca degerini hesaplarstd : Standart sapmamean : Ortalama deger yada aritmetik ortalama

  • 8/8/2019 matlab ren

    6/41

    geomean : Geometrik ortalamaharmmean : Harmonik ortalamasort : Kme elemanlarini azalan sirada hazirlar>> T=[2.1;2.5;1.9;-1.9;2.4;3.0]T =

    2.10002.50001.9000

    -1.90002.40003.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 ==> geomeanThe data must all be non-negative numbers. % Negatif sayi ieren kme var>> harmmean(T)ans =

    3.6896

    Polinomlar

    Matlabta polinomlar bir vektrle temsil edilirler. Polinom olusturmak iinyksekten 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

  • 8/8/2019 matlab ren

    7/41

    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.57452.5836-0.79510.7860 Iki polinomun arpilmasi, (x+8) (x2+4x+8) = x3+6x2+16x+16x=[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)=x 4-5x x=2 ve x= 8 iin fonksiyonun alacagi degerin bulunmasi

    >> x=[2 8];>> p=[1 0 0 -5 0];>> pp=polyval(p,x)pp =

    6 4056

    Polinom Kklerinin Bulunmasi

    Bir P(x)=0 polinomunun kklerinin bulmak iinroots komutu kullanilir.

  • 8/8/2019 matlab ren

    8/41

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

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

    -2.27630.74690.1961

    Yuvarlatma Islemlerifix : Sifira dogru yuvarlatir

    floor : - 8 dogru yuvarlatir

    ceil :+ 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 =

  • 8/8/2019 matlab ren

    9/41

    2 11 -3 81 0 8 -37 1 2 5

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

    will still define the variableB containing a 23 matrix, but MATLAB will not echo anything.>> whos

    Name Size Bytes Class

    A 3x4 96 double arrayB 2x3 48 double arrayv 3x1 24 double array

    Grand total is 21 elements using 168 bytes

    Bir B matrisinin elemanlarini gormek icin;>> BB =

    2 0 -3-1 1 3

    Vektorlerim matrislerin tek kolon halidir ve gsterimleri;>> v = [ 2; 3; -4]v =

    23

    -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:5ans =

    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 911 7 8

    >> A'ans =

    5 11-2 7

    9 8

  • 8/8/2019 matlab ren

    10/41

    Esit artimli bir vektrn transpozu asagidaki gibi tanimlanir;>> [1:3:10]'ans =

    147

    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 84 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 -2 9>> A(:,3)

    ans = 72

    -2

    A matrsinin 1, 2 ve 4. kolon degerleri>> A(:,[1 2 4])ans =

    3 -2 84 3 1

    10 15 9

    Ayni satir sayisina sahip iki matris asagidaki rnekte oldugu birlestirilebilir.>> A=[1 2 3; 4 5 6]A =

    1 2 34 5 6

    >> B=[7 8; 9 10]B =

    7 89 10

    >> [A B]ans =

    1 2 3 7 84 5 6 9 10

    >> C=[7 8 9]C =

  • 8/8/2019 matlab ren

    11/41

    7 8 9Eger satirlar birlestirilmek istenirse;>> [A;C]

    ans = 1 2 34 5 67 8 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 38 7 12 -2 5

    11 1 14 -2 0>> A(2,:)=[] seklinde yazilir.A =

    4 7 2 1 311 1 14 -2 0>> A(:,[1 3])=[] 1. ve 3. stnlar kaldirildiktan sonraki durumA =

    7 1 31 -2 0

    Nokta arpimMatlab dilinde dot (nokta islemler) islemler arpma *. Blme ./ veya .\ stalma .^ olarakkullanilir. Yani nokta isaretli islemler matrislerde eleman (elemanter) islem yapilacaginigsterir. N bier sakaler olmak zere a.^n, a matrisindeki her bir elemanin n. katresininalinacagini 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 =

    72315

    2w =

    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 =

  • 8/8/2019 matlab ren

    12/41

    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/pians =

    92.4971

    Yaklasik ai 92.5.

    Temel matris islemleri>> A=[5 -1 2; 3 4 7]A =

    5 -1 23 4 7

    >> B=[2 2 1; 5 0 3]B =

    2 2 15 0 3

    >> A+Bans =

    7 1 38 4 10

    Ayni boyutttaki matrislerin toplami gereklestirilebilir.>> C=[3 1; 6 4]C =

    3 16 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 23 4

  • 8/8/2019 matlab ren

    13/41

    >> 3*A

    ans =

    3 69 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 = 23

    >> C=[4 ;3]C =

    43

    >> D=3*A-2*CD =

    -23

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

    3 1 7 26 -3 4 29 4 -1 -2

    >> B=[1 2; 3 4; 5 6; 7 8]

    B =1 23 45 67 8

    >> A*Bans =

    55 6831 40

    2 12

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

    2

    2

  • 8/8/2019 matlab ren

    14/41

    233

    Matriks rank hesaplama iinBsr matrisin tm karesel alt matrislerinden, determinanti sifirdan farkli olan en yksekboyutlusunun 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 42 3 1 33 2 1 24 3 1 1

    >> rank(A)ans =

    3

    Ters IslemlerBir A matrisinin tersiA^(-1) yada inv(A) ile gsterilir. Inv ters islem yapma operatrdr.>> A=[2 1 1; 1 2 2; 2 1 2]A =

    2 1 11 2 22 1 2

    >> Ainv=inv(A)Ainv =

    2/3 -1/3 02/3 2/3 -1-1 0 1

    Sonucun saglanmasi iin ters ve kendisi birim matrisi vermelidir.>> A*Ainvans =

    1 0 00 1 00 0 1

    >> Ainv*Aans =

    1 0 00 1 00 0 1

    Eger matris tekil ise tersi alinamaz. Hatali sonu alinir.>> B=[1 2 3;4 5 6;7 8 9]B =

    1 2 34 5 67 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 *

  • 8/8/2019 matlab ren

    15/41

    -0.4504 0.9007 -0.45040.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 sifirdanfarkli 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.000000000000001.00000000000000 0.99999999999999

    >> inv(C)Warning: Matrix is singular to working precision.ans =

    Inf InfInf Inf

    >> rank(C)ans =

    1>> det(C)ans =

    0>> rref(C)ans =

    1.00000000000000 0.999999999999990 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. Formatkomuru ile 1+ ve 1olarak birbirinden farkli 15 digitli bir deger elde edilir. Bu durumdatanim ;

    (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, basitolarak 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

  • 8/8/2019 matlab ren

    16/41

    3 -1 12 151 1 1 7

    -4 6 1 8

    >> b=[10; -23; -13; 4]b =10

    -23-13

    4>> format rat>> x=inv(A)*bx =

    152

    -3

    Islemi saglamak iin>> A*xans =

    10-23-13

    4

    zvektrler ve zdegerlerBir kare matrisin zdegerlerini bulmak iin eig komutu kullanilir.>> A=[ 3 1 1; 1 3 1; 1 1 3]A =

    3 1 11 3 11 1 3

    >> eig(A)ans =

    2.00002.00005.0000

    >> [Q,D]=eig(A) A arprazlanabilir iseQ =

    -0.8164 -0.0137 0.5774

    0.3963 0.7139 0.57740.4201 -0.7001 0.5774

    D =2.0000 0 0

    0 2.0000 00 0 5.0000

    Q matrisinin kolonlari A matrisinin z-temellerini olusturur. vQ -1 AQ=D . Saglamasi>> inv(Q)*A*Qans =

    2.0000 0 0.00000.0000 2.0000 0.0000

    -0.0000 0.0000 5.0000Q gereke zvektrlerin dik normalarini olusturur.>> Q'*Q

  • 8/8/2019 matlab ren

    17/41

    ans =1.0000 0.0000 -0.00000.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 4 42 3 13 -2 5

    >> diag(a)

    ans =

    235

    Hazir matris fonksiyonlariRand, ones, zeros, eye:

    rand veya randn fonksyionlarinin kullanilmasi; bazi durumlarda yalnizca bir zelligi veyabir seyi denemek ve durumunu gzlemek iin rastgele sayilardan olusmus bir matrisolusturmak iin kullanilir. Rand dzenli olarak dagilmis randn ise normal olarak dagilmisrastgele 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 -0.8973 -4.4211 3.1317

    4.1690 3.9365 -1.4713 -4.9014

    >> c=rand(4) 0 ile 1 arasinda 4x4 matris olusturur.zellikle iki boyutlu verilererastgele grlt eklenmesinde temel kullanima uygundur.

    c =0.1389 0.2722 0.4451 0.84620.2028 0.1988 0.9318 0.52520.1987 0.0153 0.4660 0.20260.6038 0.7468 0.4186 0.6721

  • 8/8/2019 matlab ren

    18/41

    Ones fonksyionu elemanlari 1 olan bir matris zeros fonksiyonu elemanlari 0 olan matrisolusturur.

    >> 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 00 0 0 0

    >> e=ones(2,5)e =

    1 1 1 1 11 1 1 1 1

    >> f=eye(3,3)f =

    1 0 00 1 00 0 1

    zel Matrisler

    Pascal(i) fonksyionu i. siraya kadar passcal geninin elemanlarindan olusan ixi boyutunda birmatris olusturulur.

    >> pascal(4)

    ans =

  • 8/8/2019 matlab ren

    19/41

    1 1 1 1

    1 2 3 4

    1 3 6 10

    1 4 10 20

    11 1

    1 2 11 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 1 6

    3 5 7

    4 9 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 matrislerinednstrerek aslinda 3 boyutlu grafik izimleri iin bir veri ortamihazirlar.

    >> [X,Y]=meshgrid(-2:1:2,-2:1:2)

    X =-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

  • 8/8/2019 matlab ren

    20/41

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

    0 0 0 0 01 1 1 1 12 2 2 2 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 ydzleminde verilen bir verinin gsterimiplot(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 iziminiyapalim. Araligini kendimizin belirleyecegi2 den 2 x degerleri

    >> x=-2:.05:2; % 0.05 artim

    x vektr 1x81 matrisini olusturur. Busize(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')

  • 8/8/2019 matlab ren

    21/41

    r(t )=(2t cost /(t +1),2t sint /(t +1)) kapali egrisini t [0,4] iin izimde t vektr aiagidaki gibitanimlansin .

    >> 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))

  • 8/8/2019 matlab ren

    22/41

    >> 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 araliginitanimlayan x ve y vektrlerinin tanimlanmasi gerek.>> x=0:4x =

    0 1 2 3 4>> y=0:.5:3y =

    0 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 40 1 2 3 40 1 2 3 4

    0 1 2 3 4

  • 8/8/2019 matlab ren

    23/41

    0 1 2 3 40 1 2 3 40 1 2 3 4

    Y = 0 0 0 0 00.5000 0.5000 0.5000 0.5000 0.50001.0000 1.0000 1.0000 1.0000 1.00001.5000 1.5000 1.5000 1.5000 1.50002.0000 2.0000 2.0000 2.0000 2.00002.5000 2.5000 2.5000 2.5000 2.50003.0000 3.0000 3.0000 3.0000 3.0000

    ylece 35 noktadan olusan 75 matris elde edilir. X matrisi x koordinatlarini y matrisi ykooridnatlarini ierir. f ( x, y)=3 x2 y fonksiyonunu izelim. z koordinatlarini olusturan z>> Z=3*X-2*Y olarak tanimlansin Z =

    0 3 6 9 12-1 2 5 8 11-2 1 4 7 10-3 0 3 6 9-4 -1 2 5 8-5 -2 1 4 7-6 -3 0 3 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)= x2 y2 y fonksiyonunu [2,2][1,1] tanimli aralikta gsterelim. Kenar uzunlugu0.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;

  • 8/8/2019 matlab ren

    24/41

    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 tanimaraligi,

    r(,)=(sincos sinsin,cos) 0 ,0 2.

    Bu birim kreyi izdirelim. Ilk olarakve 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 R 3 iin formattir.

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

  • 8/8/2019 matlab ren

    25/41

    Konturlama ( Egri Seviye Degerleri ) f ( x, y)= x2 y2. 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.')

  • 8/8/2019 matlab ren

    26/41

    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 AlanlariBir vektr alan Rn ile tanimlanan bir fonksiyon olsun.F:RnRn, ve grafik olarak her xdegerininF(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])

  • 8/8/2019 matlab ren

    27/41

    >> 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 otomatikleklendirme yapilir.

    Sembolik Degiskenler ve IfadeleriMATLAB 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 islemlerdekullanilacak degiskenlerin nceden bildirilmesi gerekir. rnegin a gibi bir sembolik degisken>> sym aans =aveya>> 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^2S =x^2-y^2

  • 8/8/2019 matlab ren

    28/41

    Bu ifadenin faktr.>> factor(S)ans =

    (x-y)*(x+y)

    Snin kp ve ailimi .>> S^3ans =(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*BC =[ 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 birseebek olansimple 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)=(4 x21)e x2 y2 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)

  • 8/8/2019 matlab ren

    29/41

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

    f bir fonksiyon olmadigindan bir degisken oldugundan MATLABf(1,2) bir satir ve 2 kolonolarak 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 dainline komutunu kullanmaktir.

    rnek:g( x, y)= x23 xy+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 zmMatlabin bir diger gelismis zelligi her trl dogrusal ve dogrusal olmayan denklemtakimlarinin zm kmesini bulmasidir. Bu ama iinsolve 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))]

  • 8/8/2019 matlab ren

    30/41

    rnek: x2+y2=4 ve (x1)2+(y1)2=1 olarak verilen iki fonksiyonun kesisim degerlerini bulmakiin.>> 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 zmn. dereceden dogrusal denklem takimi

    nnnnnn

    nn

    nn

    b xa xa xa

    b xa xa xa

    b xa xa xa

    =+++

    =+++=+++

    ................................................

    ......

    2211

    22222121

    11212111

    biiminde verilir. Bu denklem takiminin matris biiminde gsterimi

    [ ] A [ ] x =[ ] B

    seklinde tanimlanabilir. Burada;

    =

    nnnn

    n

    n

    aaa

    aaa

    aaa

    A

    ..... .... .

    ....

    21

    22221

    11211

    [ ]nbbb B ..21=

    katsayilar matrislerini ve

    [ ]321 ... x x x X =

    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 verilendenklem takiminin zmnde A\B biiminde soldan (blen blme isaretinin solunda yer

    almakta) matris blme islemi ile yerine getirilir. XA=B biiminde tanimlanan matris

  • 8/8/2019 matlab ren

    31/41

    denklemin zmnde B/A seklinde sagdan matris blme islemi kullanilir. Sagdan ve soldanmatris 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 heriki tarafini A-1 ile arparsak

    A-1 AX=A-1Belde edilir. Burada A-1 A, I olarak tanimlanan birim matrise denktir.Buna gre

    IX=A-1Bveya

    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=Bbiiminde ifade edilen denklem takiminin zm iin, her iki taraf A-1 ile arpilir ve gereklidzenlemeler yapilirsa

    X=BA-1elde edilir.MATLAB ortaminda

    X=B * inv(A)bildirimi ile gerekli zm elde edilmis olur.

    rnek : Asagida verilen denklem takiminin zmn elde ediniz.

    =+=++=++=++

    15521031241627224

    4321

    4321

    4321

    4321

    x x x x

    x x x x

    x x x x

    x x x x

    zm :zm ilk nce soldan ve sagdan matris blme islemlerine gre ele alinacak ve dahasonra da ters matris islemine gre zlecektir. AX=B biiminde matris denklemi verildigindezm soldan blme islemine gre asagidaki bildirimlerle yerine getirilebilir.

    a=[ 1 4 1 1; 2 7 1 -2; 1 4 -1 2; 3 -10 -2 5 ]b=[ 2 16 1 -15 ]>> x=a\b;

  • 8/8/2019 matlab ren

    32/41

    Denklem takimlari XA=B biiminde matris denklemi ile tanimlandiginda zm sagdan blmeislemi ile asagidaki sekilde saglanir. Burada A ve B matrisleri bir nceki orijinal halinintraspozesi olmaktadir.

    a=[ 1 2 1 3; 4 7 4 -10; -1 1 -1 -2; 3 -10 -2 5]b=[2 16 1 -15]x=b/a

    Ters matris islemi ile zmde; MATRIS denklemi AX=B biiminde verildiginde, A ve Bmatrisi

    a=[ 1 4 1 1; 2 7 1 -2; 1 4 -1 2; 3 -10 -2 5 ];b=[ 2 16 1 -15 ]

    biiminde tanimlandiktan sonrax=inv(a)*b;

    bildirimi ile zm elde edilir: Benzer sekilde Matris denklemi XA=B biiminde verildigindeA ve B matrisleri,

    a=[ 1 2 1 3; 4 7 4 -10; -1 1 -1 -2; 3 -10 -2 5]b=[2 16 1 -15]x=b*inv(a)

    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 x1= 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 gerekseOtimatization Toolbox iinde, gerek tek degiskenlive gerekse ok degiskenli denklemlerin zmnde kullanilan esitli zm fonksiyonlarivardir. Dogrusal olmayan denklemlerin zm, dogrusal denklem zm kadar basitolmayip 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 gzdengeirilecektir.

    fzero : Fonksiyon fonksiyonu; tek degiskenli bir fonksiyonun sifirini hesaplar. Genelkullanim biimleri asagida oldugu gibidir.

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

  • 8/8/2019 matlab ren

    33/41

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

    fun(x) biimindeki bir fonksiyonun, X0 ile tanimlanan degere yakin olan tek bir sifirinihesaplar. Burada, fonksiyonu sifir yapan, yani x eksenini kesen bir sifir degeri hesaplanir.

    Ikinci bildirimde yer alan tol isimli, seimli argman bagil hata toleransini belirler. ncbildirimde yer alan seimli trace argmani her bir hesap yineleme islemindeki bilgilerigrntler.

    Fonksiyon fonksiyonu olan fzero fonksiyonunu kullanmak iin ayrica function ile baslayanbir 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. Dahasonra MATLAB ortaminda

    z=fzero(fx,2)bildirimi ilez=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 : e2xx 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;

  • 8/8/2019 matlab ren

    34/41

    z=fzero(fex,1)z0.4475

    elde edilir.

    Yukaridaki rneklerden de grldg gibi fzero fonksiyonu herhangi bir fonksiyonuntahmini bir sifirinin hesaplanmasinda ve/veya dogrusal olmayan denklemlerin zmnde dahakullanislidir. Dogrusal denklemlerin ayni anda tm kklerini zmek gerektiginde rootsfonksiyonunu kullanmak daha pratik olacaktir.

    Dogrusal Olmayan Denklem Takimlarinin zm

    Dogrusal olmayan denklem takimlarinin zmnde,Optimization Toolbox iindeyer alan fsolve fonksiyon fonksiyonu kullanilir. fsolve fonksiyonu dogrusal olmayan denklemtakiminin 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, X0tahmini baslangi degerlerinden baslayarak zer ve sonucu X degiskenine atar. Burada X0boyutu x degisken sayisi kadar olmalidir.

    Ikinci bildirimde yer alan seimli argman options seimli parametreler vektrntanimlar. options iin pek ok seenek mevcuttur. Bunlar ile ilgili bilgiler help folve yolu ilesaglanabilir.

    nc bildirimde yer alan grad, X noktasinda fonksiyonlarin kismi trevlerini(Jacobianlarini) df/dx, df=grad(x) elde etmek iin kullanilir. dfin iinci stunu fdekifonksiyonun iinci kismi trevine karsilik gelir.

    rnek: Bir metal kesme islemine ait denklem takimi

    C=1.2+11.62323v-1f-1 + 5.7449x10-8v3f0.16d1.140.0499v0.95 f0.78 d0.75=20

    biiminde tanimlanmaktadir. Burada c 1.27 i,le 1.28 arasinda bir degerdir. Tamamen nonlinearolan 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 . . .

  • 8/8/2019 matlab ren

    35/41

    (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 ilezlr. Burada en nemli husus baslangi degerinin seimidir. Uygun bir zm elde edilenekadar 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 asagidaoldugu 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-017Maximum 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 degerlerinidegistirmek sureti ile uygun zmler arastirilmalidir.

    Optimization Toolbox iinde, dogrusal olmayan denklemlerin, degisik sekildezmnde kullanilan diger pek ok fonksiyon vardir. Bunlarin tanimlari asagida kullanilandiger pek ok fonksiyon vardir. Bunlarin tanimlari asagida oldugu gibidir. Genel kullanimbiimleri MATLAB ortaminda help komutu ile elde edilebilir.

  • 8/8/2019 matlab ren

    36/41

    attgoal : oklu-amali hedefe ulasma problemi zmconstr : Kisitli minimizasyon zmfmin : Skalar kisitsiz minimizasyon zm.fminu, fmins : Kisitsiz minimizasyon zm.Fsolve : Dogrusal olmayan denklem zm.leastssq : Dogrusal olmayan en kk kareler zm.minimax : Minimum-maksimum zm.seminf : Yari mutlak minimizasyonlp : Dogrusal programlamannls : Negatif olmayan en kk kareler zm.qp : Egrisel programlama.

    IntegrallerSimgesel integral alma fonksiyonuint genel kullanim sekli

    int(s) : findsym ile belirlenen simgesel degiskene gre Snin belirsiz integralini alirint(s,v) : Snin vye gre integralini alir.int(S,a,b) : Snin varsayilan degiskene gre adan bye kadar belirli integralini alir.int(S,v,a,b) : Snin tanimli adan bye kadar belirli integralini alir.

    rnek:

    + dx x x )2042(5

    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:

    ++1

    0))1ln(( dt ut t at 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.

  • 8/8/2019 matlab ren

    37/41

  • 8/8/2019 matlab ren

    38/41

    Dogrusal bir dnsm durumunda Jacobian olduka basittir.>> A=[11 -3 14 7;5 7 9 2;8 12 -6 3]A =

    11 -3 14 75 7 9 28 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 zmdsolve 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 durumdadegiskenin 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:

    0322

    =++ ydt dy

    dt yd diferansiyel denklemin zm

    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

    C1 exp(1/2 (-3 + 5 ) t) + C2 exp(- 1/2 (3 + 5 ) t)

  • 8/8/2019 matlab ren

    39/41

    Pretty komutu ile dzenli basim sekli gelir.

    rnek: y(0)=0, y?(0)=1 kosullari altinda y??+4y?+12y=8sin4t ikinci derecden diferansiyeldenklemin zmr=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)*cos(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/28/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) 268

    M-DosyalariM-dosyalari olarak ele aldigimiz dosyalar aslinda matlab ortaminda kullanmis oldugumuz

    komutlardir ve veri analizini saglayan fonksiyonlardir.Bu fonksiyonlar her amaca yeterli olsada sonulara daha hizli ulasabilmek iin kendimize zel fonksiyonlar yani yeni M-dosyalariolusturabiliriz.esitli yollarla bu M-dosyalarini hazirlayabiliriz.Istersek bir komutlar dizisisayesinde sonuca ulasiriz istersek de function kelimesiyle baslayan bir fonksiyonel dosyaolustururuz.nemli olan bize istedigimiz sonucu kisa zamanda verebilmesi.Simdi de rnekolarak bir M-dosyasi olusturalim:

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

  • 8/8/2019 matlab ren

    40/41

    alanimizi olusturmus oluruz.Baska bir yol ise Command Windowda edit yazarakolusturmaktir.

    Asagidaki gibi M-dosyamizi olusturuyoruz:

    % ktlesi ve hizi verilen bir cismin% kinetik enerjisinin hesabim=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 vedosya ada olarak kinetik yazdik ve dosyayi saklamis olduk.Simdi de islemlerimizindogrulugunu test edelim.Command Windowa geerek kinetik yazdigimizda veya komutlariyazdigimiz sayfadan debug mensnden Run setigimizde bakalim neler oluyor:

    >> kinetikLtfen ktle degerini giriniz(kg)=10m = 10Ltfen cismin hiz degerini giriniz(m/s)=50v = 50Ek = 12500

    %**************************************% Hareketli egri iin bir rnekr(t )=(2t cost /(t +1),2t sint /(t +1))

    % kivrim.m%hold on

    for T=0:.1:4*pit=[T T+.1];plot(2*t.*cos(t)./(t+1),2*t.*sin(t)./(t+1))axis equalaxis([-2 2 -2 2])axis offpause(.01)

    end%*************************************************

    % rastgele sayi retimi ve sinus zerine bindirmef1=50 % frekansf2=100 % frekansdt=0.001;max_sure=50; % saniyebyt=40; % random sayi buyultme faktorut = 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);

  • 8/8/2019 matlab ren

    41/41

    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 eklenmesiclear 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*1E6td=d*1E2x(i)=(i-21)*1E4delg(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 ZMProf.Dr. Ibrahim YKSEL U..Makine Mhendisligi Blm 1996

    Matlab ve ProgramlamaDr. Aslan Inan, Papatya

    DIFERANSIYEL DENKLEMLER VE UYGULAMALARIProf. Dr. Mehmet AYDINGnl GNDZBeno KURYELYard. Do. Dr. Galip OTURANIzmir 1999

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