138
  TEMEL MATLAB KULLANIMI Komut Satr nda Yazlm! Örneklerle eref Öcal Fizik Mühendisi 2007 

Temel Matlab Kullanımı

Embed Size (px)

Citation preview

TEMEL MATLAB KULLANIMIKomut Satrnda Yazlm rneklerle

eref calFizik Mhendisi 2007

NDEKLER

GR. MATLAB Nedir, MATLAB ile almak, fadeler, MATLAB Temel Yazm Notasyonu, MATLAB de Kullanlan Belli Bal Komut aretleri, Komut Satrnda Klavye Ksayollar (36) BLM I. Aritmetik lemler, Radyan Derece Dnm, Logaritma, Karmak Saylar, Yuvarlatma lemleri, Kalan Bulma, Temel statiksel lemler, Asal arpanlara Ayrma, Kesirli Gsterim, OBEB-OKEK, Faktriyel (718) BLM II. ntegral Hesaplar, Trev, Limit (1927) BLM III. Vektrler, Matrisler, Polinomlar, Ara Deer Hesaplar (2861) BLM IV. Grafik lemleri (ki Boyutlu Grafikler, Boyutlu Grafikler) (6296) BLM V. Denklemler-Denklem Sistemlerinin zm (Cebirsel Denklemler, Diferansiyel Denklemler) (97115) BLM VI. MATLAB de Programlama (Bir MATLAB Programnn Anatomisi, Veri Giri-klar Ve Hata Bildirimleri in Kullanlan nemli Fonksiyonlar, Program Yazmnda Ska Kullanlan Koul Deyimleri, Programlamada Zamanlama, MATLAB Derleyicisi) (116135) KAYNAKLAR (136 138)

2

GRMATLAB Nedir? MATLAB ad, MATrix LABoratory (Matrix Laboratuar) kelimelerinden gelir. MATLAB, ilk olarak Fortran Linpack ve Eispack projeleriyle gelitirilmi ve bu programlara daha etkin ve kolay eriim salamak amacyla 1970lerin sonlarnda yazlmtr. MATLAB, matematik ve zellikle de matris esasl matematik ortamnda kullanlmak zere hazrlanm etkileimli bir paket programlama dilidir. MATLAB n ilk srmleri FORTRAN dilinde, son srmleri ise C dilinde yazlmtr. FORTRAN ve C dili gibi yksek seviyeden programlama dilleri ile yaplabilen hesaplamalarn pekounu MATLAB ile yapmak mmkndr. Buna karlk MATLAB n fonksiyon ktphanesi sayesinde, FORTRAN ve dier programlama dillerine gre MATLAB de daha az sayda komutla zm retmek mmkndr. Gerekte MATLAB, M-dosyalar (M-files) olarak bilinen pekok sayda fonksiyon dosyalarndan (alt-programlardan) ibarettir. M-dosyalar ASCII formatnda olup okunabilirlii olan MATLAB programlama dili kodlarndan olumutur. Dolaysyla M-dosyalar ktphanesine, kullanc tarafndan mdahale edilebilir. Ancak bu kodlara zorunlu kalmadka mdahale edilmemesi, kodlarn deitirilmemesi gerekir. MATLAB temel bilimler ve mhendislik alanlarnda saysal hesaplama, veri zmleri ve grafik ilemlerinde kullanlabilecek genel amal bir program olmakla beraber, zel amal modler paketlere de sahiptir. CONTROL TOOLBOX, SIGNAL TOOLBOX gibi paket programlar CACSD (Bilgisayar destekli denetim sistemi tasarm) paketler olup, bunlar denetim sistemlerinin tasarmnda ok etkili aralardr. Ayrca WINDOWS ortamnda alan SIMULINK, etkileimli benzetim programlarnn hazrlanmas ve altrlmasnda byk kolaylklar salamaktadr. MATLAB ile almak * MATLAB, komut temelli bir programdr. Komut penceresinde (Command Window) >> eklindeki prompt iaretinin bulunduu satr, komut satr olarak adlandrlr. Bu iaretin hemen yannda yanp snen I eklindeki iaret, komut ve metin yazma cursoru, yani imlecidir. Bu iaretin olduu yerde klavyeden giri yaplabilir ve enter tuuna baslarak ilemler yrtlr. * MATLAB byk ve kk harf karakterlerini ayrt eden bir dildir. Buna gre, bir deiken TIME ad ile atanabilirken, dier bir deiken time ad ile ve dier baka bir deiken de Time ad ile atanabilir. Bu durumda bir karaktere birden fazla deer atamak mmkndr. * MATLAB de help < komut ad > ile istenilen yardma ulalabilir. * Bir alma srasnda komut penceresi silinmek istenirse clc komutu kullanlr. clear komutu ise bellekte yer alan kullanc tarafndan tanmlanm tm deikenleri ve fonksiyonlar siler. * save < dosya ad > komutuyla deiken kalc olarak saklanr; load < dosya ad > komutuyla deiken yrtlr; whos komutuyla deikenler listelenir; clear < dosya ad > komutuyla saklanan deiken silinir. * Bilgisayarn sonsuz bir dngye girdii veya sonu gelmez grnen veri grntleme ve yazdrma ilemleri gibi durumlarda komut icrasnn kesilmesi gerekebilir. MATLAB ortamnda bir komutun icrasn sona erdirmek iin Ctrl+C tularna ayn anda basmak gerekir. Bu durumda ^C iletisi karmza kar ve komut icras kullanc tarafndan sona erdirilmi olur. 3

fadeler (expressons) MATLAB dier programlama dillerinde olduu gibi bir giri (input) olarak eitli matematiksel ve metinsel ifadeler salar. fadeleri 4 ana grup altnda inceleyebiliriz: * Saylar (Numbers) * Deikenler (Variables) * leler (Operators) * Fonksiyonlar (Functions) MATLAB Temel Yazm Notasyonu (syntax) MATLAB de herey bir dizi (array) olarak ileme konur. Bir dizi, skaler, vektr, matris veya metinsel dizge (karakter dizisi) olabilir. * 1x1 dizisi skaler (scaler) veya metin dizgesi (string) gsterir. a=3 b=-20.56 c=3e-4 e=' Bir tamsay giriniz: ' gibi. Metin dizgeleri (text string), tek trnaklar '' arasnda verilir. d=2+5*i

* nx1 veya 1xn dizisi bir vektr (vector) gsterir. x=[0, 2, 4, 6] ifadesinde x, 1x4 boyutunda bir vektrdr. Keli parantezler [ ]iindeki saylarn arasnda virgl (,) veya en az bir ya da daha fazla boluk olmaldr. * nxm veya mxn dizisi bir matris (matrix) gsterir. Keli parantezler [ ] iindeki say gruplar arasnda noktal virgl (;) olmaldr. Noktal virgl (;) iareti matrisin stunlarn ayrr. Say gruplarn ayrmakta virgl (,) veya en az bir ya da daha fazla boluk kullanlabilir. MATLAB TA Kullanlan Belli Bal Komut aretleri . Ondalk Nokta: 325/100, 3.25 veya .325e1 hepsi ayn sayy ifade eder. . Dizi (array) ilemleri: .* .^ ./A veya .'. ilemlerinde eleman-eleman ilem yaplr. rnein C=A./B matris ileminde C matris elemanlar C(i,j) = A(i,j)/B(i,j) eklinde bulunur. . Yapsal Alan (field) eriimi: A.alan ve A(i).alan, A bir yapsal veri ise 'alan' adl alann iindekilere eriim gsterimidir. Eer A yapsal veri deil ise virglle ayrlm bir liste retir. rnek olarak, C= {1 2 3 4}; A = [C{:}]; B = cat(2,C{:}); .. Ebeveyn dizine gei gsterimi: Dizinler arasnda ilk ana dizine gei yapmak iin cd .. eklinde kullanlr. Sreklilik (Continuation): Satr sonundaki nokta ... satrn bir alt satrdan devam etmesini salar. Bir satra smayan ifade veya verileri ekranda birebir izlemek iin kullanlr. , Virgl (comma) veya Ayrc (separator): Virgl, dizilerde elemanlar satr vektr yapar; matrisleri altindislerine ve fonksiyonlarda da argmanlar ayrmak iin kullanlr. Ayrca ok ifadeli satrlarda ifadeleri ve/veya komutlar birbirinden ayrmak iin de kullanlabilir.

4

; Noktal virgl (semicolon): Matris satrlarnn sonlarn gstermek iin keli parantez iinde kullanlr. Ayrca bir ifade ve deyimin kn yazdrmamak, yani ekranda grntlenmesini nlemek iin de kullanlr. : stste iki nokta veya Colon (Stun) operatr: Ardl say gsterimlerinde ve matris indekslemesinde kullanlr. rnein 1:2:100 ifadesi 1'den 100'e kadar 2 artml say dizisi gsterir. ( ) Parantez ve altindeksleme: Matematikten bildiimiz gibi bir ilem topluluu gsterir. [ ] Keli parantez (bracket): ster bir vektr ister bir matris olsun dizi oluturmada kullanlr. { } Ssl parantez ve altindeksleme: zellikle yap ve hcre veri tiplerinde kullanm vardr. % Yzde (percent) Aklama (comment): Yzde sembol, komut ve program ileyiini etkilemeyen aklamalara balamak iin kullanlr. Yardm (Help) sistemi iin ok gereklidir. ! nlem iareti: ! iaretini izleyen herhangi bir yaz, DOS iletim sisteminde yazlan bir komut gibi i grr. rnein >> ! dir komutu varsaylan klasr iindekileri DOS iletim istemi formatnda listeler. >>!dir& komutu ise listeleme ilemini ayr bir DOS penceresinde yapar. ' Transpoze (transpose): X', X matrisinin karmak elenik devriidir (kompleks konjuge transpose). X.' ise elenik olmayan (non-conjugate) transpozesidir. Transpoze ilemi vektrlerde satr vektrn stun vektrne veya stun vekrn satr vektrne dndrr. ' ' Tek trnak (quote): Tek trnaklar arasndaki herhangi bir metin (text), ASCII koduna sahip karakterli bileenleri olan bir vektrdr. Metin iinde kesme iaretini kullanmak istendiinde ise, ift trnak tercih edilmelidir. rnein, ' Ali"nin Masas.' gibi. = Atama (assignment): Bildirimleri atamak iin kullanlr. rnein B = A, A'nn elemanlarn B'de saklar. < ...den kk bant ilemcisi. ...den byk bant ilemcisi. >= ...den byk veya eittir bant ilemcisi. = = Mantksal eittir bant (relational) ilemcisi. & Mantksal AND (ve) ilemcisi. | Mantksal OR (veya) ilemcisi. ~ Mantksal tamamlayc (complemet) NOT (deil) ilemcisi. Boluk (blank) : Metin ilemlerinde veya ifadelerin arasnda boluk vermek iin kullanlr.

5

Komut Satrnda Klavye Ksayollar ctrl- ctrl- home end esc del Ctrl-P Bir nceki satr arr (Recall previous line) Ctrl-N Bir sonraki satr arr (Recall next line) Ctrl-B mle bir karakter sola hareket eder (Move back one character) Ctrl-F mle bir karakter saa hareket eder (Move forward one character) Ctrl-R Bir kelime saa hareket eder (Move right one word) Ctrl-L Bir kelime sola hareket eder (Move left one word) Ctrl-A Satrn basna gider (Move to beginning of line) Ctrl-E Satrn sonuna gider (Move to end of line) Ctrl-U Geerli satr iptal eder yani tamamen siler (Clear line) Ctrl-D Bir karakter sola doru siler (Delete character at cursor)

backspace Ctrl-H Imlecten satrn bana kadar olan ksm siler (Delete character before cursor) Ctrl-K Imlecten satrn sonuna kadar olan ksm siler (Delete to end of line) imdi, dorudan komut satrnda yazacamz rneklerle MATLAB kullanmna balayalm

6

BLM I>> % ARTMETK LEMLER >> % RNEK 1 >> x=1; y=2; a=x+y, b=x-y, c=x*y, d=x/y, f=x^y a= 3 b= -1 c= 2 d= 0.5000 f= 1 >> % RNEK 2 >> % lem srasna dikkat edilmelidir. >> a=2^1/2, b=2^(1/2), c=2^3^4, d=2^(3^4) a= 1 b= 1.4142 c= 4096 d= 2.4179e+024 >> % Bilimsel notasyonda e harfi 10 un kuvvetini temsil eder. 2.4179e+024 = 2.4179 x 1024 demektir.

7

>> % RADYAN - DERECE DNM >> % RNEK 3 >> a=sin(30), % Radyan cinsinden a deeri. a= -0.9880 >> b=sin(30*pi/180), % Derece cinsinden a deeri. b= 0.5000 >> % Deeri 0.5 olan sins fonksiyonun asn bulalm. >> x=asin(0.5) % Radyan cinsinden. x= 0.5236 >> x=asin(0.5)*180/pi % A cinsinden. x= 30.0000 >> % A deerlerini derece cinsinden kullanmak iin trigonometrik fonksiyonlarn sonuna d ekleyebiliriz. >> % sind, asind, cosd, acosd, tand, atand, cotd, acotd gibi. >> a=sind(30), x=asind(0.5) a= 0.5000 x= 30.0000 >> % LOGARTMA >> % 10 tabannda logaritma: log10(x) >> % 2 tabannda logaritma: log2(x) >> % e tabannda doal logaritma (lnx): log(x) >> % MATLAB de taban ilemleri 10, 2 ve e tabannda tanmlanmtr. Dier tabanlar iin 10 tabanna dntrlerek blme ilemi yaplr. >> % RNEK 4 >> % ln1, ln10, ln2, ln5, ln3/5 deerlerini bulalm. >> a=log(1), b=log(10), c=log(2), d=log(5), e=log(3/5) 8

a= 0 b= 2.3026 c= 0.6931 d= 1.6094 e= -0.5108 >> % RNEK 5 >> % log1, log10, log2, log5, log3/5 deerlerini bulalm. >> a=log10(1), b=log10(10), c=log10(2), d=log10(5), e=log10(3/5) a= 0 b= 1 c= 0.3010 d= 0.6990 e= -0.2218 >> % RNEK 6 >> % logaritma 2 tabannda 0', 1'i, 2'yi, 10'u ve 3/5'i bulalm.

9

>> a=log2(0), b=log2(1), c=log2(2), d=log2(10), e=log2(3/5) Warning: Log of zero. a= -Inf b= 0 c= 1 d= 3.3219 e= -0.7370 >> % RNEK 7 >> % logaritma 3 tabannda 12'yi bulalm. 3 taban tanml olmad iin 10 taban ile ilem yapacaz. >> % log312 = log1012 / log103 dr. >> a=log10(12)/log10(3) a= 2.2619 >> % >> % >> % >> % x ss n e (e= 2.71828) ss x karekk x x in mutlak deeri x^n, exp(x), sqrt(x), abs(x) eklindedir.

>> % RNEK 8 >> exp(-1), exp(0), exp(1), exp(3/5) ans = 0.3679 ans = 1 ans = 2.7183 ans = 1.8221 10

>> % RNEK 9 >> sqrt(-1), sqrt(0), sqrt(1), sqrt (3/5) ans = 0 + 1.0000i ans = 0 ans = 1 ans = 0.7746 >> % RNEK 10 >> abs(-5), abs(sqrt(3)-1) ans = 5 ans = 0.7321 >> % RNEK 11 >> % e= 2.71828 says MATLAB de tanml deildir. e ile ilem yapabilmek iin, >> % e= exp(1) deiken atamas yaplabilir. >> >> e=exp(1), e^10, e^pi, pi^e e= 2.7183 ans = 2.2026e+004 ans = 23.1407 ans = 22.4592

11

>> % KARMAIK SAYILAR >> % RNEK 12 >> % y= 2 + 3i iin >> y=2+3i y= 2.0000 + 3.0000i >> abs(y), % karmak saynn modl (mutlak deeri veya genlii), yani sqrt(a^2+b^2) ans = 3.6056 >> angle(y), % Karmak saynn radyan cinsinden faz as. ans = 0.9828 >> angle(y)*180/pi, % Karmak saynn derece cinsinden faz as. ans = 56.3099 >> conj(y), % Karmak saynn elenii. ans = 2.0000 - 3.0000i >> real(y), % Karmak saynn reel ksm. ans = 2 >> imag(y), % Karmak saynn sanal ksm. ans = 3 >> % RNEK 13 >> % >> % >> % >> % >> % Karmak saylarn kutupsal gsterimini bulabilmek iin verilen saynn mutlak deerini ve faz asn (derece cinsinden) bulmamz gerekir. y=a+bi = r(cos + isin) dr. Burada mutlak deer r=IyI=sqrt(a2+b2), faz as =arctan(b/a) dr. y=1+i saysn kutupsal edeerini bulalm. 12

>> y=1+i y= 1.0000 + 1.0000i >> abs(y), % Mutlak deeri. ans = 1.4142 >> angle(y)*180/pi, % Derece cinsinden faz as. ans = 45 >> % Sonu, y= 1+i= 1.4142(cos45 + isin45) olur. >> % YUVARLATMA LEMLER >> % Yuvarlatma ilemleri: fix, floor, ceil, round fonksiyonlar ile yaplr. >> % RNEK 14 >> fix(-6.1) % fix: sfra doru en yakn tamsayya yuvarlatma yapar. ans = -6 >> floor(-6.1) % floor: eksi sonsuza doru en yakn tam sayya yuvarlatma yapar. ans = -7 >> ceil(-6.1) % ceil: art sonsuza doru en yakn tam sayya yuvarlatma yapar. ans = -6 >> round(-6.1) % round: en yakn tam sayya yuvarlatma yapar. ans = -6

13

>> % KALAN BULMA >> % RNEK 15 >> % Kalan bulma ilemleri iin mod(x,y) fonksiyonu kullanlr. >> % 79 un 15 e blmnden kalan bulalm. >> >> mod(79,15) ans = 4 >> % TEMEL STATKSEL LEMLER >> % Temel istatiksel ilemler: max, min, length, sum, prod, median, std, mean, geomean, harmmean, sort >> % RNEK 16 >> % Bir deneyin sonularn d deikenine vektr olarak girip inceleyelim. >> d=[0.5 1 0.34 2.5 1.14 3.0 3.04 5 6.5 4.31 5.5] d= Columns 1 through 5 0.5000 1.0000 0.3400 2.5000 1.1400 Columns 6 through 10 3.0000 3.0400 5.0000 6.5000 4.3100 Column 11 5.5000 >> max(d) % En byk deeri bulur. ans = 6.5000 >> min(d) % En kk deeri bulur. ans = 0.3400 >> length(d) % Veri saysn bulur. ans = 11

14

>> sum(d) % Verileri toplar. ans = 32.8300 >> prod(d) % Verileri arpar. ans = 3.4042e+003 >> std(d) % Formlne gre standart sapmay bulur. ans = 2.1272 >> mean(d) % Aritmetik ortalamay alr. ans = 2.9845 >> geomean(d) % Geometrik ortalamay alr. ans = 2.0946 >> harmmean(d) % Harmonik ortalamay alr. ans = 1.2719 >> sort(d) % Verileri kkten bye doru sralar. ans = Columns 1 through 9 0.3400 0.5000 1.0000 1.1400 2.5000 3.0000 3.0400 4.3100 5.0000 Columns 10 through 11 5.5000 6.5000 >> % ASAL ARPANLARA AYIRMA >> % RNEK 17 >> % 187 nin asal arpanlarn bulalm. Bunun iin factor fonksiyonunu kullanabiliriz.

15

>> factor(187) % 187 nin asal arpanlarn bulur. ans = 11 17 >> % KESRL GSTERM >> % RNEK 18 >>% 12/96 deerini hem ondalkl hem de kesirli olarak ifade edelim. >> >> 12/96 ans = 0.1250 >> format rat >> a a= 1/8 >> % OBEB-OKEK >> % RNEK 19 >> % Ortak blenlerin en by obeb iin gcd fonksiyonu, ortak katlarn en k okek iin lcm fonksiyonu >> % kullanlr. rnein 30 ve 24 n obeb ini ve okek ini bulalm. >> obeb30_24=gcd(30,24), okek30_24=lcm(30,24) obeb30_24 = 6 okek30_24 = 120 >> % FAKTRYEL >> % RNEK 20 >> % Faktriyel hesaplar iin prod fonksiyonu kullanlabilir. >> % n!=prod(1:n) eklindedir. % Sonular kesirli gsterir. Varsaylana tekrar dnmek iin >>format komutu yazlmaldr.

16

>> % 15!/(9!-5!) ifadesinin sonucunu bulalm. >> prod(1:15)/(prod(1:9)-prod(1:5)) ans = 3.6048e+006

>> % NOT: MATLAB de temel (elemanter) matematiksel fonksiyonlarn listesi iin >> % >>help elfun komutu kullanlr. >> help elfun Elementary math functions. Trigonometric. sin - Sine. sind - Sine of argument in degrees. sinh - Hyperbolic sine. asin - Inverse sine. asind - Inverse sine, result in degrees. asinh - Inverse hyperbolic sine. cos - Cosine. cosd - Cosine of argument in degrees. cosh - Hyperbolic cosine. acos - Inverse cosine. acosd - Inverse cosine, result in degrees. acosh - Inverse hyperbolic cosine. tan - Tangent. tand - Tangent of argument in degrees. tanh - Hyperbolic tangent. atan - Inverse tangent. atand - Inverse tangent, result in degrees. atan2 - Four quadrant inverse tangent. atanh - Inverse hyperbolic tangent. sec - Secant. secd - Secant of argument in degrees. sech - Hyperbolic secant. asec - Inverse secant. asecd - Inverse secant, result in degrees. asech - Inverse hyperbolic secant. csc - Cosecant. cscd - Cosecant of argument in degrees. csch - Hyperbolic cosecant. acsc - Inverse cosecant. acscd - Inverse cosecant, result in degrees. acsch - Inverse hyperbolic cosecant. 17

cot - Cotangent. cotd - Cotangent of argument in degrees. coth - Hyperbolic cotangent. acot - Inverse cotangent. acotd - Inverse cotangent, result in degrees. acoth - Inverse hyperbolic cotangent. hypot - Square root of sum of squares. Exponential. exp - Exponential. expm1 - Compute exp(x)-1 accurately. log - Natural logarithm. log1p - Compute log(1+x) accurately. log10 - Common (base 10) logarithm. log2 - Base 2 logarithm and dissect floating point number. pow2 - Base 2 power and scale floating point number. realpow - Power that will error out on complex result. reallog - Natural logarithm of real number. realsqrt - Square root of number greater than or equal to zero. sqrt - Square root. nthroot - Real n-th root of real numbers. nextpow2 - Next higher power of 2. Complex. abs - Absolute value. angle - Phase angle. complex - Construct complex data from real and imaginary parts. conj - Complex conjugate. imag - Complex imaginary part. real - Complex real part. unwrap - Unwrap phase angle. isreal - True for real array. cplxpair - Sort numbers into complex conjugate pairs.

Rounding and remainder. fix - Round towards zero. floor - Round towards minus infinity. ceil - Round towards plus infinity. round - Round towards nearest integer. mod - Modulus (signed remainder after division). rem - Remainder after division. sign - Signum.

18

BLM II>>% NTEGRAL HESAPLARI >>% ntegral, bir fonksiyon grafiinin altndaki alan bulmak iin kullanlan saysal bir yntemdir. >>% MATLAB de integral ilemleri, sonu belirli ise, saysal (nmerik) olarak quad fonksiyonu ile sonu >>% belirsiz ise, simgesel olarak int fonksiyonu ile hesaplanabilir. >>% RNEK 1

>>% q=

f (x)dx integrali iin nmerik sonucu quad fonksiyonu ile bulabiliriz.a

b

>>% quad fonksiyonunun genel format q= quad(f(x),a,b) eklindedir. >>% quad fonksiyonu 10-6 hata ile f(x) fonksiyonunun a ile b arasndaki integraline yaklar. >>% q= x 2 dx belirli integralinin sonucunu saysal olarak quad fonksiyonu ile bulalm.1

2

>> quad('x.^2',1,2) ans = 2.3333 >>% RNEK 2ln5

% Fonksiyonda deikenler . (nokta) eklinde kullanlr.

>>%

e1

2x

dx integralini hesaplayalm.

>> quad('exp(2*x)',1,log(5)) ans = 8.8055 >>% RNEK 3p /2

>>%

sin x cos xdx integralini hesaplayalm.0

>> quad('sin(x).*cos(x)',0,pi/2) ans = 0.5000

19

>>% RNEK 4 >>%

( x + 1)1

2

1

2

dx integralini hesaplayalm.

>> quad('1./(x+1).^2',1,2) ans = 0.1667 >>% RNEK 5 >>%

2 x( x 2 + 3) ( x 2 + 3)2 + 1 dx integralini hesaplayalm. 0

1

>> quad('(2*x.*(x.^2+3))/((x.^2+3).^2+1)',0,1) ??? Index exceeds matrix dimensions. Error in ==> quad at 79 if ~isfinite(y(7)) >>% Grld gibi hata verdi. nk quad adaptif tekrarl Simpson kuraln >>% (erisel alan toplam yaklam) kullanan dk dereceli bir yntemdir. >>% Burada daha yksek dereceli bir yntem olan quadv yi kullanmamz gerekir. >> quadv('(2*x.*(x.^2+3))/((x.^2+3).^2+1)',0,1) ans = 0.2653 >>% RNEK 6 >>% ki katl integral hesabnda ise, dblquad fonksiyonu kullanlr.y max

>>% dblquad fonksiyonunun genel format q=

y min

x max

x min

f ( x, y )dxdy ise,

>>% q=dblquad(f ,xmin, xmax, ymin, ymax) eklindedir.

20

p

>>%

0

2p

p

( y sin x + x cos y ) dxdy integralini hesaplayalm.

>> dblquad('y*sin(x)+x*cos(y)',pi,2*pi,0,pi) ans = -9.8696 >>% NOT: katl integral hesabnda ise, benzer olarak triplequad fonksiyonu kullanlabilir. >>% RNEK 7 >>% Simgesel integral hesaplamalarnda saysal (nmerik) sonu yerine deikene gre sonu elde edilir. >>% MATLAB simgesel ilemlerde Symbolic Math Toolbox kullanr. >>% Kullanlacak fonksiyonlar >>help symbolic ile grlebilir. >>syms deiken1 deiken2

>>% Simgesel ilemlerde kullanlacak deikenlerin >>% eklinde nceden bildirilmesi gerekmektedir.

>>% Aksi takdirde fonksiyonlar ve deikenler tek trnaklarn ' ' arasnda girilmelidir >>% MATLAB de simgesel integral alma fonksiyonu int dir.

>>% int fonksiyonunun genel format q= >>% q=int(f,x,a,b)

f (x)dx ise, q=int(f,x,a,b) eklindedir.a

b

f(x) fonksiyonunun x e gre adan b ye belirli integralini alr.

>>% NOT: Yukarda verilen quad fonksiyonu yerine int fonksiyonu kullanlarak hem belirli >>% hem de belirsiz integral ilemleri yapmak mmkndr. >>%

( -2 x

5

- 4 x + 20) dx integralini hesaplayalm.>>% ya da ayn sonu aadaki gsterimle de bulunabilir; >> int('-2*x^5-4*x+20','x') ans = -1/3*x^6-2*x^2+20*x

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

21

>>% RNEK 8

>>%

sin3tx.cos xdx integralini hesaplayalm.

>> syms x t >> int(sin(3*t*x)*cos(x),x) ans = -1/2/(3*t+1)*cos((3*t+1)*x)-1/2/(3*t-1)*cos((3*t-1)*x) >> pretty(ans) % pretty(ans) fonksiyonu, sonucu daha anlalr gsterir.

cos((3 t + 1) x) - 1/2 ---------------------3t+1 >>% RNEK 9

cos((3 t - 1) x) - 1/2 --------------------3t-1

>>%

x2e3tx dx

integralini hesaplayalm.

>> syms x t >> int(x^2*exp(3*t*x),x) ans = 1/27/t^3*(9*t^2*x^2*exp(3*t*x)-6*t*x*exp(3*t*x)+2*exp(3*t*x)) >> simple(ans) ans = 1/27*exp(3*t*x)*(9*t^2*x^2-6*t*x+2)/t^3 >> pretty(ans) % simple(ans) fonksiyonu, sonucu sadeletirir.

exp(3 t x) (9 t 2 x 2 - 6 t x + 2) 1/27 ------------------------------------------t3

22

>>% RNEK 10 - ax e dx2

>>%

-

integralini hesaplayalm. >>% ya da ayn sonu aadaki gsterimle de bulunabilir; >> int('exp(-a*x^2)','x',-inf,inf) ans = PIECEWISE([1/a^(1/2)*pi^(1/2), csgn(a) = 1],[Inf, otherwise])

>> syms x a >> int(exp(-a*x^2),x,-inf,inf) ans = 1/a^(1/2)*pi^(1/2)

>>% RNEK 11 >>% ok katl integrallerde i ie int fonksiyonu kullanlabilir. >>% nce ierideki sonra dardaki integral ilemi uygulanr.y max

>>% q =p

y min

x max

x min

f ( x, y )dxdy ise, q=int(int(f,x,xmin, xmax),y,ymin, ymax) eklindedir.

>>%

0

2p

p

( y sin x + x cos y )dxdy integralini hesaplayalm.

>> syms x y >> int(int(y*sin(x)+x*cos(y),x,pi,2*pi),y,0,pi) ans = -pi^2 >>% RNEK 12

2 x( x 2 + 3) >>% 2 dx integralini quad v ve int fonksiyonlar ile hesaplayalm. 2 0 ( x + 3) + 1>>% Sonular karlatralm. int fonksiyonunun kullanm daha kullanl gzkmektedir.

1

23

>> quadv('(2*x.*(x.^2+3))/((x.^2+3).^2+1)',0,1) ans = 0.2653 >> syms x >> int((2*x*(x^2+3))/((x^2+3)^2+1),x,0,1) ans = 1/2*log(17)-1/2*log(2)-1/2*log(5) >> sonuc=1/2*log(17)-1/2*log(2)-1/2*log(5) sonuc = 0.2653 >>% TREV >>% Bir f(x) fonksiyonunun trevi, x bamsz deikenine gre f(x) fonksiyonunun deiim oran >>% olarak tanmlanr. Pek ok fiziksel sre (hz, ivme gibi) bir deikenin deiim orannn lsdr. >>% MATLAB de trev ilemleri simgesel mantk erevesinde alan diff fonksiyonu ile yaplr. >>% diff(f,x) f nin x e gre trevini, daha genel olarak diff(f,x,n) f nin x e gre n. dereceden >>% trevini alr. >>% RNEK 13 >>% f(x)= 5x3+ax2+bx-14 (a,b sbt) fonksiyonunun trevini alalm. >> syms x a b >> diff(5*x^3+a*x^2+b*x-14,x) ans = 15*x^2+2*a*x+b >>% RNEK 14 >>% f(t)=et cos(3t) fonksiyonunun 3. dereceden trevini alp, t=-2 deki deerini bulalm. >> syms t >> fturev3=diff(exp(t)*cos(3*t),t,3) fturev3 = -26*exp(t)*cos(3*t)+18*exp(t)*sin(3*t) >>% ya da ayn sonu aadaki gsterimle de bulunabilir; >> diff('5*x^3+a*x^2+b*x-14','x') ans = 15*x^2+2*a*x+b % Saysal sonu iin

24

>> tdegeri=subs(fturev3,t,-2) tdegeri = -2.6979 >>% RNEK 15

% Trev deerini subs fonksiyonu hasaplar: trevde t yerine -2 yazarak.

>>% f(x)=1/1+5cosx fonksiyonunun 3. dereceden trevini bulup, grafiini izdirelim. >> syms x >> fturev=diff(1/(1+5*cos(x)),x,3) fturev = 750/(1+5*cos(x))^4*sin(x)^3+150/(1+5*cos(x))^3*sin(x)*cos(x)-5/(1+5*cos(x))^2*sin(x) >> ezplot(fturev) % ezplot iki deikenli bir fonksiyonun grafiini izer. (Bkz: Blm IV, rnek 6)

>>% LMT >>% MATLAB de limit alma ilemleri simgesel mantk erevesinde limit fonksiyonu ile yaplr. >>%

lim f ( x)xa x a -

iin sonu limit(f,x,a)

>> %

lim f ( x)

iin sonu limit(f,x,a,'left')

>> %

xa +

lim f ( x)

iin sonu limit(f,x,a,'right') eklinde hesaplanabilir. 25

>>% RNEK 16 >>% a= lim

1 1 1 , b= lim , c= lim limitlerini hesaplayalm. x 0 x x 0 - x x 0 + x

>>% Belirsiz limit durumunda sonu, NaN (Not a Number)a dnderilecektir. >> a=limit(1/x,x,0), b=limit(1/x,x,0,'left'), c=limit(1/x,x,0,'right') >> syms x a= NaN b= -Inf c= Inf >>% RNEK 17 >>%

lim( x 2e - x )x

ifadesini hesaplayalm. >>% ya da ayn sonu aadaki gsterimle de bulunabilir; >> limit('x^2*exp(-x)',x,inf) ans = 0

>> syms x >> limit(x^2*exp(-x),x,inf) ans = 0 >>% RNEK 18 >>%

limx2

x-2 ifadesini hesaplayalm. 4x + 1 - 3

>> syms x >> limit((x-2)/(sqrt(4*x+1)-3),x,2) ans = 3/2

26

>>% RNEK 19

>>%

sin 3 3x lim x p + cos 2 3 x

ifadesini hesaplayalm.

>> limit(sin(3*x)^3/cos(3*x)^2,x,pi,'right') >> syms x ans = 0 >>% RNEK 20

>>%

x3 - a 3 lim x a sin(3 x - 3a )

ifadesini hesaplayalm.

>> syms x a >> limit((x^3-a^3)/sin(3*x-3*a),x,a) ans = a^2

27

BLM III>>% VEKTRLER >>% VEKTR GSTERMLER >>% Vektr, ksaca tek boyutlu dizidir. 1xn uzunluktaki diziye satr vektr, mx1 uzunluktaki diziye ise stun >>% vektr denir. MATLAB de vektrler temel yoldan oluturulabilir: a. Dorudan keli parantez [] >>% kullanarak; b. Eit aralkl elemanlar kullanarak, stun notasyonu : kullanarak ya da linspace veya >>% logspace komutlaryla; c. rand, randn, ones, zeros fonksiyonlaryla. >>% RNEK 1 >>% x=[ 1 2 3 4 5 ] vektr 1x5 uzunluunda, 5 elemanl bir satr vektrdr. x vektrnn gsterim >>% ekilleri aadaki gibidir:

>> x=[ 1 2 3 4 5 ] x= 1 2 3 4 5

% Keli parentez iinde, elemanlar aras boluk brakarak.

>> x=[ 1, 2, 3, 4, 5 ] % Keli parentez iinde, elemanlar aras virgl kullanarak. x= 1 2 3 4 5 % Stun notasyonu ilkdeer : n : son deer %

>> x=1:5

% kullanarak. (n art miktar yazlmadnda varsaylan deer 1 dir.) % % x=1:5 =[1:5]= (1:5) gsterimleri edeerdir. Ancak transpoze alnaca zaman % % parantezle veya keli parantezle gsterim kullanlmaldr. x= 1 2 3 4 5 % linspace(ilk deer, son deer, n) fonksiyonu kullanarak. % % Burada n ilk deer ile son deer arasndaki nokta saysdr. % % Eer n deeri belirtilmezse, iki nokta aras dorusal olarak 100 eit paraya blnr. x= 1 2 3 4 5 28

>> x=linspace(1,5,5)

>> % NOT: logspace(ilk deer, son deer, n) fonksiyonu ise, iki nokta arasnda logaritmik aralkl bir vektr >> % retir. Eer n deeri belirtilmezse, 10ilk deer ile 10son deer aras logaritmik olarak eit aralkl 50 satr >> % vektr oluturulur. Grld gibi logspace, logaritmik lekte linspace fonksiyonunun roln >> % oynamaktadr. linspace ve logspace fonksiyonlar grafik izimlerinde kolaylk salar.

>>% Eer x vektr 5x1 uzunluunda 5 elemanl bir stun vektr olsayd, x in gsterim ekilleri aadaki >>% gibi olurdu: >> x= [ 1 2 3 4 5] x= 1 2 3 4 5 >> x=[1;2;3;4;5] x= 1 2 3 4 5 % Keli parentez iinde elemanlar noktal virglle ; ayrarak. % Keli parentez iinde alt alta yazmla.

29

>> x=1:5 x= 1 >> x' ans = 1 2 3 4 5 2 3 4 5

% nce satr vektrn oluturup,

% sonra satr vektrnn transpozesini alarak (yani stun vektrne dntrerek).

>>% Deneme amal baz durumlar iin rasgele sayl vektrler retmek gerekebilir. Bunun iin rand veya >>% randn fonksiyonlar kullanlr. >>% rand fonksiyonunun genel szbiimi, f= a+(b-a)*rand(m,n) eklinde olup, burada retilen mxn >>% boyutundaki f vektr, a ile b saylar arasnda dzenli dalm rasgele saylardan oluur. Sadece rand >>% fonksiyonu kullanldnda 0 ile 1 arasnda rasgele saylar retilir. >>% randn fonksiyonunun genel szbiimi ise, f= mu + sigma*randn(m,n) eklinde olup, burada retilen >>% mxn boyutundaki f vektr, mu ortalama deerine ve sigma standart sapma deerine sahip bir >>% dalmdan (Gauss dalmndan) normal rasgele saylardan oluur. >>% Sadece randn fonksiyonu kullanldnda ortalamas 0 ile standart sapmas 1 olan Gauss dalmndan >>% rasgele saylar retilir. >>% Bu fonksiyonlar her arllarnda farkl saylar retilecektir.

30

>>% RNEK 2 >>% a=1 ile b=5 saylar arasnda rasgele 7 tane say retelim.(satr vektr olsun) >> f=1+4*rand(1,7) f= Columns 1 through 5 4.6676 2.6411 4.5746 1.2316 2.4115 Columns 6 through 7 4.2527 1.0394 >>% Benzer olarak, a=-1 ile b=1 saylar arasnda rasgele 2 tane say retelim.(stun vektr olsun) >> f=-1+2*rand(2,1) f= -0.5947 0.3443 >> rand ans = 0.8381 >>% RNEK 3 >>% mu=2 ve sigma=5 iin 4 elemanl bir satr vektr retelim. >> f=2+5*randn(1,4) f= -0.1628 -6.3279 2.6267 3.4384 % Sadece rand fonksiyonu 01 arasnda rasgele saylar retir.

>> randn

% Sadece randn fonksiyonu kullanldnda ortalamas 0 ile standart sapmas 1 olan % % Gauss dalmndan rasgele saylar retilir.

ans = -1.1465

31

>>% RNEK 4 >>% ones ile elemanlar 1 den oluan, zeros ile elemanlar 0 dan oluan vektrler retilir. >> v_dort=ones(1,4) v_dort = 1 1 1 1

>> f_dotr=zeros(1,4) f_dort = 0 0 0 0

>>% TEMEL VEKTR LEMLER >>% RNEK 5 >>% -1 ile 1 arasnda 0.125 artml bir vektr (dizi) retip, bu vektr inceleyelim. >> v=-1:.125:1 v= Columns 1 through 6 -1.0000 -0.8750 -0.7500 -0.6250 -0.5000 -0.3750 Columns 7 through 12 -0.2500 -0.1250 0 0.1250 0.2500 0.3750

Columns 13 through 17 0.5000 0.6250 0.7500 0.8750 1.0000

>> size(v) ans = 1 17 >> v(5) ans = -0.5000

% size(v), v vektrnn boyutunu verir. v vektr 1x17 uzunluundadr.

% v(5), v vektrnn 5. eleman.

32

>> v(end-2) ans = 0.7500

% v vektrnn sondan (son deer dahil) 3. terimi (yani batan 15. terimi).

>> v(1:5) ans =

% v vektrnn ilk 5 terimi.

-1.0000 -0.8750 -0.7500 -0.6250 -0.5000

>> v(end-4:end) ans =

% v vektrnn son 5 terimi.

0.5000 0.6250 0.7500 0.8750 1.0000

>> v(9:end) ans =

% v vektrnn 9. teriminden son terimine kadar olan deerleri.

Columns 1 through 6 0 0.1250 0.2500 0.3750 0.5000 0.6250 Columns 7 through 9 0.7500 0.8750 1.0000

>> (3*v/2)' ans = -1.5000 -1.3125 -1.1250 -0.9375 -0.7500 -0.5625 -0.3750

% v vektrnn her bir elemannn 3 katnn yarsnn stun vektr eklinde gsterimi.

33

-0.1875 0 0.1875 0.3750 0.5625 0.7500 0.9375 1.1250 1.3125 1.5000 >>% RNEK 6 >>% iki vektr tanmlayp ilemler yapalm. >> a=[1 -2 4 5]; >> b=[3 -1 2 3]; >> t=(2*a)+(3*b) t= 11 -7 14 19 % Skaler saylarla vektrlerin arpm ve oluan yeni vektrlerin toplam.

>> c1=a.*b c= 3 2 8 15

% ki vektrn karlkl elemanlarnn arpm (elemanter arpm-sonu vektrdr).

>> c2=a*b' c2 = 28

% Satr vektryle stun vektrnn arpm (i arpm=skaler arpm-sonu skalerdir).

34

>> c3=a' *b c3 = 3 -1 -6 2

% Stun vektryle satr vektrnn arpm (d arpm-sonu kare matristir).

3 -6 12

2 -4 8

12 -4

15 -5 10 15

>> b1=a./b b1 =

% a vektrnn her bir eleman b vektrnn her bir elemanna blnmtr (saa blme).

0.3333 2.0000 2.0000 1.6667

>> b2=a.\b b2 =

% b vektrnn her bir eleman a vektrnn her bir elemanna blnmtr (sola blme).

3.0000 0.5000 0.5000 0.6000

>> u=a.^b u=

% a vektrnn her bir elemannn b vektr karlndaki ss alnarak oluan vektr.

1.0000 -0.5000 16.0000 125.0000 >> % NOT: MATLAB de nokta iaretli ilemler, yani dot ilemleri eleman eleman (elemanter) ilem yaplacan gsterir. >>% RNEK 7 >>% 1 den 100 e kadar tek saylarn kareleri toplamn ve arpmn bulalm >> t=1:2:100; >> toplam=sum(t.^2), carpim=prod(t.^2) toplam = 166650 carpim = 7.4278e+156

35

>>% RNEK 8 >>% 1 den 5 e kadar olan saylar iin sol stunda say, sa stunlarda srasyla saylarn tersi ve karekklerini >>% gsterelim. >> sayi=1:5; tersi=1./sayi; karekoku=sqrt(sayi); >> goster=[sayi; tersi; karekoku]' goster = 1.0000 1.0000 1.0000 2.0000 0.5000 1.4142 3.0000 0.3333 1.7321 4.0000 0.2500 2.0000 5.0000 0.2000 2.2361 >>% RNEK 9 >>% 0 ile 300 arasnda 8 ile tam blnen ka say vardr, bulalm. >> s=0:8:300; >> size(s) ans = 1 38 >>% 38 tane say vardr >>% MATRSLER >>% MATRS GSTERMLER >>% Matrisler mxn uzunlukta 2 boyutlu dizilerdir. MATLAB de matrisler 3 temel yoldan oluturulabilir: >>% 1. Dorudan keli parentez kullanarak; 2. eye, ones, zeros, rand, randn gibi utility fonksiyonlar >>% kullanarak; 3. zel matrisler; paskal, hilbert ve buna benzer fonksiyonlar kullanarak.

36

>>% RNEK 10 >>% a=[ 1 2 3; 2 4 6; 1 3 7 ] % Keli parentez iinde, elemanlar arasnda boluk(virgl de kullanlabilir) % brakp, satrlar noktal virglle ayrarak. a= 1 2 1 2 4 3 3 6 7

>> a=[ 1 2 3 2 4 6 1 3 7] a= 1 2 1 2 4 3 3 6 7

>>% RNEK 11 >>% eye(n,n) fonksiyonu 1. Kegeni 1 lerden dier elemanlar 0 lardan oluan birim matris oluturur. >> eye(3,3) ans = 1 0 0 0 1 0 0 0 1

>>% ones fonksiyonu btn elemanlar 1 lerden, zeros fonksiyonu da btn elemanlar 0 lardan oluan >>% matrisler retir.

37

>> ones(3,3) ans = 1 1 1 1 1 1 1 1 1

>> zeros(3,3) ans = 0 0 0 0 0 0 0 0 0

>>% RNEK 12 >>% rand fonksiyonunun genel szbiimi, f= a+(b-a)*rand(m,n) eklinde olup, burada retilen mxn >>% boyutundaki f matrisi, a ile b saylar arasnda dzenli dalm rasgele saylardan oluur. Sadece rand >>% fonksiyonu kullanldnda 0 ile 1 arasnda rasgele sayl matrisler retilir. >>% randn fonksiyonu ile rasgele matris retmek pek yaygn deildir. >>% a=-5 ile b=5 saylar arasnda, rasgele sayl 2x4 boyutunda matrisler retmek iin; >>% f= -5 + 10*rand(2,4) f= 4.5013 1.0684 3.9130 -0.4353 -2.6886 -0.1402 2.6210 -4.8150

>>% 0 ile 1 arasnda rasgele sayl 3x2 boyutunda matrisler retmek iin; >>% rand(3,2) ans = 0.8214 0.7919 0.4447 0.9218 0.6154 0.7382

38

>>% RNEK 13 >>% pascal(k) fonksiyonu k. sraya kadar pascal geninin elemanlarndan oluan kxk boyunda bir matris >>% oluturur. >> pascal(4) ans = 1 1 1 1 1 2 3 1 3 1 4

6 10

4 10 20

>>% magic(k) fonksiyonu kxk boyunda 1 den k ya kadar saylardan oluan (k=2 hari) eit satr, stun ve >>% kegen toplamna sahip bir kare matris oluturur.

>> magic(3) ans = 8 3 4 1 5 9 6 7 2

>>% hilb(k) fonksiyonu kxk boyunda her bir eleman 1/(i+j-1) ile belirlenen ve hilbert matrisi olarak >>% adlandrlan bir kare matris oluturur.

>> hilb(3) ans = 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000

39

>>% [X,Y]=mesgrid(x,y) fonksiyonu x ve y vektrlerini, X ve Y matrislerine dntrerek, zellikle 3 boyutlu >>% grafik izimleri iin bir veri ortam hazrlar. >>% -2 ile 2 arasnda 1 artml X ve Y matrislerini oluturalm. >> [X,Y]=meshgrid(-2:2,-2:2) X= -2 -1 -2 -1 -2 -1 -2 -1 -2 -1 Y= -2 -2 -2 -2 -2 -1 -1 -1 -1 -1 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2

>>% TEMEL MATRS LEMLER >>% RNEK 14 >> A=[-2 3; 4 1], k=3 A= -2 4 k= 3 3 1 % A matrisi ve k skaler saysn ele alalm.

>> A+k ans = 1 7 6 4

% A+k=k+A dr. A matrisinin her bir eleman k says ile toplanr.

40

>> A-k ans = -5 0

% A-k=-(k-A) dr. A matrisinin her bir elemanndan k says karlr.

1 -2

>> A*k ans = -6 12 9 3

% A*k=k*A dr. A matrisinin her bir eleman ile k says arplr.

>> A^k ans = -44 45 60 1

% A matrisi yan yana k kere arplr: A*A*A

>> k^A ans = 11.0106 14.5080 19.3440 25.5186

% k says A matrisinin her bir elemann s olarak logaritmik ileme alr.

>> A/k ans = -0.6667 1.0000 1.3333 0.3333

% A matrisinin her bir eleman k saysna blnr.

>> A\k ??? Error using ==> mldivide

% Boy uyumazl vardr.

Matrix dimensions must agree.

41

>> k/A

% Boy uyumazl vardr.

??? Error using ==> mrdivide Matrix dimensions must agree.

>> k\A ans =

% A matrisinin her bir eleman k saysna blnr.

-0.6667 1.0000 1.3333 0.3333

>> A.*k ans = -6 12 9 3

% A.*k=k.*A =A*k =k*A dr. A matrisinin her bir eleman ile k says arplr.

>> A.^k ans = -8 27 64 1

% A.^k A^k dr. A matrisinin her bir elemannn k. ss alnr.

>> k.^A ans =

% k.^A k^A dr. Her k says A matrisinin her bir elemann s olarak logaritmik ileme alr.

0.1111 27.0000 81.0000 3.0000

>> A./k ans =

% A./k=A/k dr. A matrisinin her bir eleman k saysna blnr.

-0.6667 1.0000 1.3333 0.3333

42

>> A.\k ans =

% A.\k A\k dr. Her k says A matrisinin her bir elemanna blnr.

-1.5000 1.0000 0.7500 3.0000

>> k./A ans =

% k./A k/A dr. Her k says A matrisinin her bir elemanna blnr.

-1.5000 1.0000 0.7500 3.0000

>> k.\A

% k.\A=k\A dr. A matrisinin her bir eleman k saysna blnr.

ans = -0.6667 1.0000 1.3333 0.3333 >>% RNEK 15 >>% Matris-matris ilemlerinde yaplacak ileme gre matrislerin boylar uyumaldr. rnein matris arpma >>% kuralna gre 1. matrisin stun says 2. matrisin satr saysna eit olmaldr. Aksi takdirde MATLAB hata >>% mesaj verir. Vektrlerin de ayn zamanda birer matris olduunu unutmamak gerekir. >> v=[1 2 3], M=[4 5 6; 7 8 9; 0 1 2] v= 1 M= 4 7 0 5 8 1 6 9 2 2 3 % Bir vektrle bir matrisin arpm. Sonu bir vektrdr.

>> v*M ans = 18 24 30 43

>> a=[1:3; 4:6; 7:9], b=[ones(1,3); zeros(1,3); rand(1,3)] % a ve b matrislerini alarak ilemler yapalm. a= 1 4 7 b= 1.0000 1.0000 1.0000 0 0 0 2 5 8 3 6 9

0.3529 0.8132 0.0099

>> a+b ans = 2.0000 3.0000 4.0000 4.0000 5.0000 6.0000 7.1389 8.2028 9.1987

% a+b=b+a dr. Matrislerin karlkl elemanlar kendi arasnda toplanr.

>> a-b ans = 0 1.0000 2.0000 4.0000 5.0000 6.0000 6.8611 7.7972 8.8013

% a-b=-(b-a) dr. Matrislerin karlkl elemanlar kendi arasnda karlr.

>> a*b ans = 1.4167 1.6083 1.5962 4.8333 5.2166 5.1923 8.2500 8.8249 8.7885

% Matris arpma kuralna gre ilem yaplr.

44

>> b*a ans =

% Matris arpma kuralna gre ilem yaplr. Grld gibi, a*b b*a dr.

12.0000 15.0000 18.0000 0 2.3410 0 2.8814 0 3.4218

>> a/b

% Saa blmede 1. matris 2. matrisin tersi ile arplr.

Warning: Matrix is singular to working precision. ans = NaN NaN NaN -Inf 33.4276 -Inf 33.4276 -Inf 33.4276

>> b/a

% Sola blmede 2. matris 1. matrisin tersi ile arplr.

Warning: Matrix is singular to working precision. ans = NaN NaN NaN NaN NaN NaN NaN -Inf Inf

>> a^b

% MATLAB de matris ss matris ilemleri tanml deildir.

??? Error using ==> mpower At least one operand must be scalar.

45

>> a.*b ans = 1.0000 2.0000 3.0000 0 0 0

% a.*b=b.*a dr. Elemanter arpm normal arpmdan farkldr.

0.9722 1.6221 1.7885

>> a./b Warning: Divide by zero. ans = 1.0000 Inf 2.0000 Inf

% Elemanter saa blme normal saa blmeden farkldr.

3.0000 Inf

50.3993 39.4545 45.2895

>> a.\b ans = 1.0000 0.5000 0.3333 0 0 0

% Elemanter sola blme normal sola blmeden farkldr.

0.0198 0.0253 0.0221

>> a.^b ans =

% Elemanter s almada a matrisinin her bir eleman, b matrisi karlndaki eleman s olarak alr.

1.0000 2.0000 3.0000 1.0000 1.0000 1.0000 1.3103 1.5245 1.5475

46

>>% RNEK 16 >> a=magic(3) a= 8 3 4 1 5 9 6 7 2 % a matrisini alalm.

>> size(a) % a matrisinin boyutunu verir. a matrisi 3 satr ve 3 stundan oluan 3x3=9 elemanl bir matristir. ans = 3 3

>> a' % a matrisinin transpozesi (devrii) dir. Burada matrisin ayn indisli satr ve stunlar yer deitirmitir. ans = 8 1 6 3 5 7 4 9 2

>> det(a) ans = -360

% a matrisinin determinantdr. Determinant alabilmek iin matris kare olmaldr.

>> inv(a)

% a matrisinin arpma ilemine gre tersi (inversi) dir. % Sadece det 0 olan karesel matrislerin inversi vardr.

ans = 0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028

47

>> rank(a)

% a matrisinin rankdr. Yani, a matrisinin tm karesel alt matrislerinden, % determinant sfrdan farkl olan en yksek boyutlusunun buyutudur.

ans = 3

a= 8 3 1 5 9 6 7 2

>> diag(a) ans = 8 5 2

% Ana kegen elemanlarn verir.

4

>> diag(a,1) ans = 1 7

% Ana kegenin st ksmndaki elemanlar verir.

>> diag(a,-1) ans = 3 9

% Ana kegenin alt ksmndaki elemanlar verir.

>> [v,d]=eig(a) v=

% a matrisinin, v zvektrlerini ve d zdeerlerini verir.

-0.5774 -0.8131 -0.3416 -0.5774 0.4714 -0.4714 -0.5774 0.3416 0.8131

48

d= 15.0000 0 0 >>% RNEK 17 >> m=magic(5) m= 17 24 23 4 5 1 8 15 % m matrisini alp inceleyelim. 0 4.8990 0 0

0 -4.8990

7 14 16

6 13 20 22

10 12 19 21 3 11 18 25 2 9

>> m(2) ans = 23

% m matrisinin 2. eleman.

>> m(1:9) ans = 17 23

% m matrisinin 1. elemandan 9. elemana kadar olan elemanlar.

4 10 11 24

5

6 12

>> m(1:2:9) ans = 17 4 11 5 12

% m matrisinin 2 artmla 1. elemandan 9. elemana kadar olan elemanlar.

>> m(2, :) ans = 23 5 7 14 16

% m matrisinin 2. satr.

49

>> m(2:4, :) ans = 23 4 5 7 14 16

% m matrisinin 2. 3. 4. satrlarndan oluan alt matrisi. m= 17 24 23 4 5 6 1 7 13 8 15

6 13 20 22 3

14 16 20 22 3 9

10 12 19 21

10 12 19 21 >> m(:, 2) ans = 24 5 6 12 18 % m matrisinin 2. stunu. 11 18 25 2

>> m(:, 2:4) ans = 24 5 1 7 8 14 20

% m matrisinin 2. 3. 4. stunlarndan oluan alt matrisi.

6 13

12 19 21 18 25 2

>> m(1,3) ans = 1

% m matrisinin 1. satr 3. stun eleman.

50

>> m([1,2], :) ans = 17 24 23 5 1 8 15

% m matrisinin 1. ve 2. satrlar.

m= 17 24 23 4 5 6 1 8 15

7 14 16 13 20 22

7 14 16

10 12 19 21 3 11 18 25 >> m(:,[1:3]) ans = 17 24 23 4 5 6 1 7 13 % m matrisinin 1. 2. 3. stunlar. 2 9

10 12 19 11 18 25

>> m([1, 2], [3, 4, 5]) ans = 1 8 15

% m matrisinin 1. 2. satrlar ve 3. 4. 5. stunlarndan oluan alt matrisi.

7 14 16

>> [i, j]=find(m> sonuc=[i, j] sonuc = 3 1 5 4 1 3 4 5

% m matrisinin 5 den kk elemanlarnn konumlarn bulur.

51

>> m(1)=5 m= 5 24 23 4 5 6 1 8 15

% m matrisinin 1. elemann 5 yapar.

m= 17 24 23 4 5 6 1 8 15

7 14 16 13 20 22

7 14 16 13 20 22 3 9

10 12 19 21 3 11 18 25 2 9

10 12 19 21 11 18 25 2

>> m(1:3)=5 m= 5 24 5 5 5 6 1 7 8

% m matrisinin 1. 2. 3. elemanlarn 5 yapar.

15

14 16

13 20 22

10 12 19 21 3 11 18 25 2 9

>> m(1:3,:)=5 m= 5 5 5 5 5 5 5 5 5 5 5 5

% m matrisinin 1. 2. 3. satrlarn 5 yapar.

5 5 5

10 12 19 21 3 11 18 25 2 9

52

>> m(:, 1)= [ ] m= 24 5 6 1 8 15

% m matrisinin 1. stunu siler.

m= 17 24 23 4 5 6 1 8 15

7 14 16 13 20 22

7 14 16 13 20 22 3 9

10 12 19 21 3 11 18 25 2 9

12 19 21 18 25 2

>> m(:, [2, 4])= [ ] m= 17 23 1 15 7 16

% m matrisinin 2. ve 4. stunu siler.

4 13 22 10 19 11 25 3 9

>> c=[1:5] c= 1 2 3 4 5 % c vektrn 6. satr olarak m matrisine ekler.

>> ek_satir=[ m; c ] ek_satir = 17 24 23 4 5 6 1 8 15

7 14 16 13 20 22 3 9 5

10 12 19 21 11 18 25 1 2 3 2 4

53

>> ek_sutun=[ m, c' ] ek_sutun = 17 24 23 4 5 1 7 8 15 14 16 20 22 3 9

% c vektrn 6. stun olarak m matrisine ekler.

m= 17 24 1 8 15

1 2 3 4 5

23 4

5 6

7 14 16 13 20 22

6 13

10 12 19 21 3 11 18 25 2 9

10 12 19 21 11 18 25 2

>> sum(m) ans = 65 65 65 65 65

% m matrisinin her bir stununun toplamn bulur.

>> sum(m') ans = 65 65 65 65 65

% m matrisinin her bir satrnn toplamn bulur.

>> sum(diag(m)) ans = 65

% m matrisinin ana kegen elemanlarnn toplamn bulur.

54

>>% RNEK 18

a11 x1 + a12 x2 + ... + a1n xn = b1 a11 x1 + a12 x2 + ... + a1n xn = b1

am1 x1 + am 2 x2 + ... + amn xn = bm

a11 a12 ... a1n x1 b1 a 21 a22 ... a2 n x1 = b2 ... . . ... . . am1 am 2 ... amn xn bm A X = B

>>% n bilinmeyenli ve m tane denklemden oluan lineer denklem sitemi ve onun matris biimi verilmitir. >>% Grld bibi, AX=B dir. Burada A katsaylar matrisi, X bilinmeyenler stun vektr, >>% B ise, sabitler stun vektrdr. >>% X=A\B matris denklemi AX=B zmn gsterir. >>% X=B/A matris denklemi XA=B zmn gsterir. >>% Burada denklem sisteminin kkleri, X=A\B=inv(A)*B den bulunabilir.

>>% >>% >>%

2y+4z=2 x+2y+2z=3 3x+4y+6z=-1

>>% Yukarda verilen lineer denklem sisteminin zm kmesini bulalm. >> A=[0 2 4; 1 2 2; 3 4 6]; % Katsaylar matrisi. >> B=[2;3;-1]; >> X=inv(A)*B X= -3.0000 5.0000 -2.0000 % Sabitler stun vektr. % Bilinmeyenleri ieren stun vektr.

>>% zm x=-3, y=5, z=-2 dir. Yani, zm kmesi, ={(-3, 5, -2)} eklindedir.

55

>>% zm baka bir yoldan, solve fonksiyonu ile de bulabiliriz. >> [x,y,z]=solve('2*y+4*z=2','x+2*y+2*z=3','3*x+4*y+6*z=-1') x= -3 y= 5 z= -2

>>% POLNOMLAR >>% MATLAB de polinomlar vektrlerle gsterilir ve vektrn elemanlar, polinomda x in en byk ssnden >>% balayarak azalan sradaki katsaylardr. Polinom katsaylar, keli parantezler arasnda, aralarnda >>% boluk braklarak satr vektr formatnda ifade edilir. >>% RNEK 19 >>% P(x)=x3-2x+1 ve Q(x)=3x3 +5 polinomlarn alalm. >> P=[1 0 -2 1], Q=[3 0 0 5] P= 1 0 -2 1 % Polinomlarn azalan sse gre vektrel gsterimi. Katsay vektrleri.

Q= 3 0 0 5

>> 2*P+5*Q

% Skaler ile polinom arpm ve polinomlarn toplam. Sonu, 17x3 - 4x + 27 dir.% % Burada polinom dereceleri eittir. Dereceler farkl olsayd toplama ilemi iin,% % dk dereceli polinoma sfr katsaylar ilave edilerek, dereceler eitlenirdi.

ans = 17 0 -4 27

56

>> conv(P,Q)

% Polinomlarn arpmak iin conv(P,Q) fonksiyonu kullanlr. % % kiden fazla polinomun arpm iin conv fonksiyonunu tekrar tekrar kullanmak gerekir. % % Sonu, 3x6 - 6x4 + 8x3 - 10x + 5 dir.

ans = 3 0 -6 8 0 -10 5

>> [B,K]=deconv(P,Q)

% Polinomlarn blmek iin [B,K]=deconv(P,Q) fonksiyonu kullanlr. % Burada B blm, K ise kalan gsterir. % Blm= 0.3333x, kalan=-2x - 0.6667 dir.

B= 0.3333 K= 0 0 -2.0000 -0.6667

>> roots(P) ans = -1.6180 1.0000 0.6180

% roots(P) fonksiyonu P polinomunun kklerini bulur.

>> solve('x^3-2*x+1=0') ans = 1 1/2*5^(1/2)-1/2 -1/2-1/2*5^(1/2)

% Polinomlarn kklerini bulmak iin solve fonksiyonu da kullanlabilir.

57

>>poly([1 -1]) ans = 1 0 -1

% poly([1 -1]) kkleri 1 ve -1 olan polinomu bulur. Sonu, x2 - 1 dir.

>>% P(x)=x3-2x+1 polinomunun trevini iki ayr yoldan bulalm. >> P=[1 0 -2 1], P= 1 0 -2 1 % Katsaylar vektr.

>> polyder(P) ans = 3 0 -2

% polyder(P) fonksiyonu P polinomunun trevini alr. Sonu, 3x2 2 dir.

>> diff('x^3-2*x+5','x') ans = 3*x^2-2

% diff fonksiyonu da P polinomunun x e gre trevini alr.

>>% NOT: Polinom fonksiyonlarna >>help polyfun >> help polyfun Interpolation and polynomials. Data interpolation. pchip interp1

komutu ile ulalabilir.

- Piecewise cubic Hermite interpolating polynomial. - 1-D interpolation (table lookup).

interp1q - Quick 1-D linear interpolation. interpft - 1-D interpolation using FFT method. interp2 interp3 interpn - 2-D interpolation (table lookup). - 3-D interpolation (table lookup). - N-D interpolation (table lookup).

griddata - Data gridding and surface fitting.

58

griddata3 - Data gridding and hyper-surface fitting for 3-dimensional data. griddatan - Data gridding and hyper-surface fitting (dimension >= 2). Spline interpolation. spline ppval - Cubic spline interpolation. - Evaluate piecewise polynomial.

Geometric analysis. delaunay - Delaunay triangulation. delaunay3 - 3-D Delaunay tessellation. delaunayn - N-D Delaunay tessellation. dsearch - Search Delaunay triangulation for nearest point.

dsearchn - Search N-D Delaunay tessellation for nearest point. tsearch - Closest triangle search.

tsearchn - N-D closest triangle search. convhull - Convex hull. convhulln - N-D convex hull. voronoi - Voronoi diagram.

voronoin - N-D Voronoi diagram. inpolygon - True for points inside polygonal region. rectint - Rectangle intersection area.

polyarea - Area of polygon. Polynomials. roots poly polyval - Find polynomial roots. - Convert roots to polynomial. - Evaluate polynomial.

polyvalm - Evaluate polynomial with matrix argument. residue polyfit polyder - Partial-fraction expansion (residues). - Fit polynomial to data. - Differentiate polynomial.

59

polyint conv deconv

- Integrate polynomial analytically. - Multiply polynomials. - Divide polynomials.

>>% ARADEER HESAPLARI >>% interp fonksiyonu polinom tekniini kullanarak, interft fonksiyonu ise, Fourier dnmn >>% kullanarak ara deer hesab yapar. >>% interp1 bir boyutlu, interp2 iki boyutlu, interp3 boyutlu interpn n boyutlu aradeer fonksiyonlardr. >>% interft ise, bir boyutlu aradeer hesab yapar. Ara deer hesaplarnda veriler, artan ya da azalan >>% deerlerine gre sralanmaldr. >>% RNEK 20 >>% x ve y deerlerini ieren verilerden hareketle, veri tablosunda olmayan, xi=5.45678 ara deerine karlk >>% gelen yi deerini bulalm. >> x=[1 :. 8 : 10]; y=[10 :.8 :19]; >> y=interp1(x, y, 5.45678) y= 14.4568 % yi=intp1(x,y,xi) formatnda bir boyutlu ara deer fonksiyonu.

>>% imdi iki boyutlu ara deer hesab iin aadaki tabloyu inceleyelim. Tabloda bir motorun belli >>% devirlerde ve belli zamanlarda silindir kafas scaklk deerleri gsterilmitir. Buna gre 3.25 saniyedeki >>% 3500 devir/dakika ya karlk gelen scaklk deerini hesaplayalm.

Motor hz(dev/dak)

2000

3000

4000 Scaklk (oC)

5000

6000

Zaman (s) 0 1 2 3 4 5 0 20 60 68 77 110 0 110 180 240 320 405

0 176 220 349 450 503

0 190 285 380 510 623

0 240 327 428 620 785

60

>> x=[2000 3000 4000 5000 6000]; >> y=[ 0 >> z=[ 0 1 0 2 0 3 0 4 0 5 ];

% Motor hzlar. % Zaman deerleri. % Scaklk deerleri.

20 110 176 190 240 60 180 220 285 327 68 240 349 380 428 77 110 310 450 510 620 405 503 623 785]; % yi=interp2(x,y,z,xi,zi) formatnda iki boyutlu ara deer fonksiyonu.

>> y=interp2(x,y,z,3500,3.25) y= 315.8750

61

BLM IV>>% GRAFK LEMLER >>% MATLAB da hemen her trl grafii izdirmek mmkndr. En temel grafik izdirme fonksiyonu olan >>% plot fonksiyonunun genel hali: plot(x,y, ' izgi tr ' ) eklindedir. >>% RNEK 1 >>% y = e 4cos x fonksiyonunun grafiini, /15 artmla 0 x 4p aralnda izdirelim. >> x=0: pi/15: 4*pi; >> y=exp(4*cos(x)); >> plot(x,y)

>>% Ayn grafii her bir veri noktas mavi + olacak ekilde izdirelim. >> plot( x, y, 'b+' ) % 'b+' blue + izgi trn ifade eder.

62

>>% imdi title ile grafik baln, xlabel ve ylabel ile eksen isimlerini ve grid on ile de klavuz >>% izgilerini grafie ekleyelim.

>> title('y=exp(4cosx) in grafii'); % grafik bal >> xlabel('x'); ylabel('y'); >> grid on % eksen isimleri % klavuz izgileri

63

>>% NOT: izgi tr kodlar aadaki tabloda verilmitir.

>>% Grafie bilgi eklemek iin kullanlan komutlar ise unlardr: title ('text') xlabel('text') ylabel('text') grid on grid off text(x,y,'text') gtext('text') grafiin st tarafna balk ekler. x-eksenine isim verir. y-eksenine isim verir. klavuz izgileri ekler. klavuz izgilerini kaldrr. (x, y) kesiim noktasn adlandrr. girdiiniz yaz mouse ile tkladnz yerde belirir.

>>% Bu komutlar, plot komutundan sonra istenilen srayla kullanlabilir. >>% >>% >>% >>% Grafie bilgi ekleme ilemlerini ve izgi trlerini grafii izdirdikten sonra grafik ekranndan, yani figr penceresinden yapmak da mmkndr. Ayrca btn dier grafik ielemlerini de ( bak asn deitirme, renk haritas ekleme, eri uydurma, data analizi vs. gibi) figr penceresinden kolayca yaptrabiliriz.

>>% oklu grafikler izdirmemiz gerektiinde ise, en basit olarak plot fonksiyonunu veya hold on, hold off >>% fonksiyonlarn kullanlabiliriz. rnein, y1=sinx, y2=cosx erilerini ayn grafik zerinde iki farkl >>% yoldan izdirelim: >>% 1.Yol: Tek bir plot fonksiyonunda srasyla deikenleri yazarak. >> x=-2*pi: pi/100: 2*pi; >> y1=sin(x); >> y2=cos(x); >> plot( x, y1, 'r', x, y2, 'g' ) % ki fonksiyon erisini de ayn grafikte izer. >>% 2.Yol: hold on ve hold off fonksiyonlarn kullanarak. hold on fonksiyonu bir nceki grafii dondurur ve >>% ayn dzlemde dier grafiklerin izilmesine izin verir. hold off fonksiyonu ile de dondurulan grafikler >>% tekrar serbest braklr. >> x=-2*pi: pi/100: 2*pi; >> y1=sin(x); 64

>> plot( x, y1, 'r' ) % 1. grafii izer. >> hold on >> y2=cos(x); >> plot( x, y2, 'g' ) % 2. grafii izer. >>hold off % Grafikleri tekrar serbest brakr. % Grafii dondurur.

>>% >>% >>% >>% >>%

Ayrca, ayn dzlem zerinde ve ayn eksen takmn kullanarak (veya kullanmayarak), tek bir grafik penceresinde birden fazla grafii grup halinde gsterebiliriz. Bunun iin subplot fonksiyonu kullanlr. subplot komutu bir grafik ekrann blmeye yarar. Kullanm subplot(m,n,p) eklinde olup, ekran m tane satr n tane stundan oluan p tane grafik ekran haline getirir. Mesela subplot(2,2,1) komutu ekran drde bler ve bunlardan birincisini aktif hale getirir. yle bir tablo yararl olabilir:

>>% imdi bunu bir rnek zerinde inceleyelim. >> x=linspace(-2*pi,2*pi); >> subplot(2,2,1) >> plot(x,sin(x)) >> subplot(2,2,2) >> plot(x,cos(x)) >> subplot(2,2,3) % 2. satr 1. grafik 65 % 1. satr 2. grafik % 1. satr 1. grafik

>> plot(x,tan(x)) >> subplot(2,2,4) >> plot(x,cot(x)) % 2. satr 2. grafik

>>% Aada harmonik dalga grafikleri de benzer ekilde subplot komutuyla gsterilmitir. >> subplot(3, 1, 1); % 1. satr 1. grafik >> t=0: 0.01: 1; >> y=sin(2*pi*2*t); >> plot(t,y) >> title('Birinci Harmonik'); >> subplot(3, 1, 2); % 2. satr 2. grafik >> t=0: 0.01: 1; >> z=sin(2*pi*10*t); >> plot(t,z) >> title('kinci Harmonik'); >> subplot(3, 1, 3); % 3. satr 3. grafik >> w=y+z; 66

>> plot(t,w) >> title('Harmonik Dalgalarn Toplam')

67

>>% K BOYUTLU GRAFKLER >>% ki boyutlu (2D) grafik fonksiyonlar: plot, loglog, semilogx, semilogy, plotyy, ezplot, fplot dr. >>% RNEK 2 >>% plot(x,y) x ve y eksenlerini lineer olarak leklendirir ve verilerin grafiini izer. (Tek deikenli >>% fonksiyonlarn grafiklerini izer.) >>% Burada xler bamsz deiken yler ise, baml deikeni gstermektedir. x ve y nokta saylar birbirine >>% eit olmaldr. >> x=[1 2 3 4 5]; >> y=[25 0 20 5 15]; >> plot(x,y) >> title('Hz-Zaman Grafii'); >> xlabel('zaman(da)'); ylabel('hz(km/sa)'); >>grid on

>>% RNEK 3 >>% >>% >>% >>% >>% Grld gibi plot fonksiyonu, x ve y eksenlerindeki deerlerin artm miktarlarnn eit aralkl olduu dorusal grafikleri izmekte kullanlr. Eit eksen artm deerli olmayan logaritmik grafikleri izmek iin ise loglog(x,y), semilogy(x,y), semilogx(x,y) fonksiyonlar kullanlmaktadr. Burada logaritmik grafikler, eksenler gznne alnarak ya tam logaritmik (loglog), ya da yar logaritmik (semilog) olmak zere ikiye ayrlmtr.

>>% Logaritmik grafikler genel olarak ok byk veya ok deerli verileri anlalabilir bir lee uyarlar ya da >>% dorusal olmayan verilere uygun bir izim zemini salarlar.

68

>>% loglog(x,y): x ve y eksenlerinde 10 tabanl logaritmik eksen kullanlr ve plot( log10(x), log10(y) ) >>% ile ayn sonucu verir. Her iki eksen de logaritmik leklidir. >>% semilogy(x,y): y ekseninde 10 tabanl logaritmik eksen kullanlr ve plot( x, log10(y) ) ile ayn >>% sonucu verir. x ekseni lineer, y ekseni ise logaritmik leklidir. >>% semilogx(x,y): x ekseninde 10 tabanl logaritmik eksen kullanlr ve plot( log10(x), y ) ile ayn >>% sonucu verir. x ekseni logaritmik, y ekseni ise lineer leklidir.

>>% Bir maddenin tanecik ayrm erisini hem lineer hem de logaritmik lekte izdirelim. >> n=[3 5 9 17 33 65]'; >> sn=[2.57e-1 6.46e-2 1.51e-2 3.96e-3 9.78e-4 2.45e-4]'; >> plot(n,sn,'r*') % Grafik gsterimi zayf

69

>>loglog(n,sn,'r*')

% Grafik gsterimi daha belirgin

>>% RNEK 4 >>% >>% >>% >>% Bir kondansatrn dearj sresince kaydedilen, kondansatrn ular arasndaki gerilim deerleri aadaki tabloda verilmitir. Tablo incelendiinde gerilim deerlerindeki azalma miktarnn, zaman deerlerindeki artma miktarndan ok ok fazla olduu grlr. Bu nedenle grafikte, gerilim eksenini (y-ekseni) logaritmik olarak gstermek, yani semilogy(x,y) fonksiyonunu kullanmak daha yerinde olur.

Zaman (dk) 6 10 17 25 32

Gerilim (volt) 498 162 23 9.6 1.5

>> zaman=[ 6 10 17 25 32 ]; >> gerilim=[ 498 162 23 9.6 1.5 ];

70

>>plot(zaman, gerilim)

% x ve y eksenleri lineerdir.

>>semilogy(zaman, gerilim)

% y-ekseni logaritmik, x-ekseni lineerdir.

71

>>% RNEK 5 >>% Baz durumlarda verileri y-ekseninin hem sol hem de sa tarafnda leklemek gerekebilir. Byle iki tane >>% y-ekseni olan grafikleri izdirmek iin plotyy fonksiyonu kullanlr. Fonksiyonun genel yazm biimi >>% yledir: plotyy(x1, y1, x2, y2, 'fun1','fun2') Bu fonksiyon sol y-eksenine fun1(x1,y1) grafiini, >>% sa y- eksenine de fun2(x2,y2) grafini izecektir. >>% rnek 4 deki grafikleri plotyy fonksiyonunuyla iki y-ekseni olan tek bir grafikte izdirelim. >> zaman=[ 6 10 17 25 32 ]; >> gerilim=[ 498 162 23 9.6 1.5 ]; >> plotyy(zaman, gerilim, zaman, gerilim,'plot','semilogy')

>>% imdi iki ayr fonksiyon iin plotyy yi kullanalm. >>x=1: .1 :10; >>y1=exp(-x).*sin(x); >>y2=exp(x).*cos(x); >>plotyy(x, y1, x, y2)

72

>>% RNEK 6 >>% ki boyutlu iki deikenli fonksiyonlarn grafiklerini, kabataslak bir fikir alabilmek iin, ezplot ya da >>% onunla hemen hemen ayn ileve sahip fplot fonksiyonlaryla izdirmek mmkndr. Genel yazm >>% biimleri: ezplot( fun, [xmin, xmax], [ymin, ymax] ) eklindedir.

>>% y=sinx/1+x2 fonksiyonunun grafiini izdirelim. >> ezplot('sin(x)/1+x^2') %x-ekseninin varsaylan snrlar [ -2*pi, 2*pi ] araldr.

73

>>% RNEK 6 >>% x2+ y2 = 4 denklemi ile tanmlanan eriyi ezplot fonksiyonu ile izdirelim. >> ezplot( 'x^2+y^2=4', [-3, 3], [-3,3] )

>>% RNEK 7 >>% f: { 2cos(t), 2sin(t) : 0 t 20 } noktalar kmesiyle t ye bal parametrik olarak tanmlanm grafii, >>% ezplot fonksiyonu ile izdirelim. >> ezplot( '2*cos(t)' , '2*sin(t)' )

74

>>% RNEK 8 >>% (x,y) = ( r()cos(x),r()sin(y) ), r()=sin(x)/x (cochleoid) ile tanmlanan polar grafii ezplot fonksiyonu ile >>% izdirelim. >> ezplot( '(sin(t)/t)*cos(t)' , '(sin(t)/t)*sin(t)', [-6*pi, 6*pi] )

75

>>% RNEK 9 >>% fplot fonksiyonu ezplot fonksiyonu ile hemen hemen ayn ilevi grr. fplot ile parametrik ve polar >>% koordinatlarda grafikler izilemez ancak fplot fonksiyonu ayn grafik zerinde birden fazla grafiin >>% izilmesine ve erilere izim sembolleri ve renk eklenmesine olanak tanr. >>% y=x, y=x2, y=x3, y=x4 grafiklerini fplot fonksiyonu ile izdirelim. >> fplot ( '[x, x^2, x^3, x^4]', [-1, 1] ) % Fonksiyonlar vektr elemanlar olarak girilmitir.

>>% RNEK 10 >>% Verileri kutupsal koordinatlarda (polar grafikler iin) polar(, ) fonksiyonuyla izdirebiliriz. polar(, ) >>% fonksiyonu, radyan olarak (rho) deerlerine kar, (theta) asnn kutupsal koordinatlarn kullanarak >>% izim yapar. >>% 2g(1+cos ) denklemi, asnn bir fonksiyonu olarak bir cardioid mikrofonun kazancn gsterir. >>% Burada g mikrofon kazan sabiti, ise radyan cinsinden, mikrofon ekseni ile ses kayna arasndaki >>% adr. g=0.5 iin, ses kaynann ynne bal olarak mikrofon kazancnn polar grafiini izdirelim. >> t=0: pi/20: 2*pi; >> r=2*0.5*(1+cos(t)); >> polar(t, r)

76

>>% RNEK 11 >>% y=I sin2t.cos2t I grafiini kartezyen ve polar kaoordinatlarda izdirelim. >> t=linspace(0,2*pi,200); >> r=abs(sin(2*t).*cos(2*t)); >> subplot(2,1,1) >> plot(t,r) >> subplot(2,1,2) >> polar(t,r)

77

>>% NOT: ki boyutlu grafikler ile ilgili bilgilere >>help graph2d komutuyla ulalabilir.

>> help graph2d Two dimensional graphs.

Elementary X-Y graphs. plot - Linear plot.

loglog - Log-log scale plot. semilogx - Semi-log scale plot. semilogy - Semi-log scale plot. polar - Polar coordinate plot.

plotyy - Graphs with y tick labels on the left and right. Axis control. axis zoom - Control axis scaling and appearance. - Zoom in and out on a 2-D plot. 78

grid box rbbox hold axes

- Grid lines. - Axis box. - Rubberband box. - Hold current graph. - Create axes in arbitrary positions.

subplot - Create axes in tiled positions.

Graph annotation. plotedit - Tools for editing and annotating plots. title - Graph title.

xlabel - X-axis label. ylabel - Y-axis label. texlabel - Produces the TeX format from a character string. text gtext - Text annotation. - Place text with mouse.

Hardcopy and printing. print - Print graph or Simulink system; or save graph to M-file.

printopt - Printer defaults. orient - Set paper orientation.

See also graph3d, specgraph.

79

>>% BOYUTLU GRAFKLER >>% boyutlu (3D) grafikler temel olarak iki boyutlu (2D) grafiklere nc boyut olan z-ekseninin >>% eklenmesiyle elde edilir. Temel olarak boyutlu izgi, a ve yzey grafiklerini inceleyelim. >>% RNEK 12 >>% plot3(x,y,z) boyutlu uzayda x, y, z elemanlaryla oluan noktalardan geen bir izgi grafii oluturur. >>% Burada x, y, z nin ayn boyutlu vektrler olmas gerekir. Aadaki boyutlu izgi grafikte olduu gibi. >> x=[10 20 30 40 ]; >> y=[10 20 30 40 ]; >> z=[0 230 75 600]; >> plot3(x,y,z); >>title(' Boyutlu Bir Doru Grafii'); >>xlabel('x-ekseni'); ylabel('y-ekseni'); zlabel('z-ekseni'); >> grid on

80

>>% RNEK 13 >>% Benzer olarak boyutlu ilgin bir izgi grafik olan heliks i plot3 fonksiyonu ile izdirelim. >> t=0: pi/50: 10*pi; >> plot3(sin(t),cos(t),t,'r'); >> title('Heliks Grafii'); >> xlabel('x-ekseni'); ylabel('y-ekseni'); zlabel('z-ekseni'); >> text(0,0,0,'Orijin'); >> grid on

81

>>% RNEK 14 >>% boyutta iki deikenli izgi grafikler iin, tpk iki boyutta olduu gibi ezplot fonksiyonu kullanlr. >>% xyz dzleminde { x(t)=cost, y(t)=sint, z(t)=sin(5t) } ile tanmlanan izgisel parametrik eriyi t >>% aralnda ezplot3 fonksiyonu ile izdirelim. >> ezplot3 ( 'cos(t)', 'sin(t)', 'sin(5*t)', [-pi pi] )

>>% RNEK 15 >>% z=x2+y2 gibi boyutlu fonksiyonlarn yzeyini gsterecek, boyutlu a grafik izmek iin, meshgrid ve >>% mesh fonksiyonlar kullanlr. nce meshgrid fonksiyonu ile xy-dzleminde noktalarn bir zgaras >>% oluturulur ve sonra mesh fonksiyonu ile yzey izdirilir. >>% z=x2+y2 boyutlu parabolnn a grafiini, meshgrid ve mesh fonksiyonlarn kullanarak izdirelim. >>% Ayn grafik daha pratik olarak, ezmesh >>% fonksiyonuyla yle de izdirilebilir: >> ezmesh( 'x.^2+y.^2', [-10: 1: 10], [-10: 5: 10] )

>> x_nok=[-10: 1: 10]; >> y_nok=[-10: 5: 10];

>> [x,y]=meshgrid(x_nok, y_nok);

% Izgara iin oluturulan matris.

>> z=x.^2+y.^2 ; % Matris elemanlar olduu iin elemanter s alma yapld. >> mesh(x,y,z); >>title('z=x^2+y^2 Parabolnn A Grafii'); >> xlabel('x-ekseni'); ylabel('y-ekseni'); zlabel('z-ekseni') 82

>>% Ortaya kan boyutlu a, x-ekseni ynnde 4 birim, y-ekseni ynnde 1 birim uzunluktaki >>% dikdrtgenlerden oluan bir paraboldr.

>>% NOT: meshgrid fonksiyonu ile oluturulan zgarann matris yaps, aadaki rnekte incelenebilir. >> x=[ 1 2 3 ]; >> y=[-1 -2 -3 ]; >> [X,Y]=meshgrid(x,y) X= 1 1 1 Y= -1 -1 -1 -2 -2 -2 -3 -3 -3 2 2 2 3 3 3

83

>>% RNEK 16 >>% z=5cosx.siny fonksiyonunun grafiini, - ile + aralnda, /50 artml olarak boyutlu dzlemde >>% mesh ve meshgrid fonksiyonlaryla izdirelim.

>> [x,y]=meshgrid( -pi: pi/50: pi, -pi: pi/50: pi ); >> z=5*cos(x).*sin(y); >> mesh(z) % mesh(x,y,z) ile ayndr.

>>% Ayn grafik daha pratik olarak, ezmesh >>% fonksiyonuyla yle de izdirilebilir: >> ezmesh('5*cos(x).*sin(y)',[-pi: pi/50: pi],[-pi: pi/50: pi])

>> title('z=5cosx.siny Fonksiyonunun A Grafii'); >> xlabel('x-ekseni'); ylabel('y-ekseni'); zlabel('z-ekseni');

>>% RNEK 17 >>% A grafiklerinin ii renkle doldurulduunda yzey grafikleri elde edilir. Dolaysyla boyutlu a >>% grafiklerini boyutlu yzey grafii olarak izdirmek mmkndr. Bunun iin surf(x,y,z) fonksiyonu >>% kullanlr. >>% Daha nce a grafii olarak izdirdiimiz, z=x2+y2 boyutlu parabolnn yzey grafiini, surf(x,y,z) >>% fonksiyonu ile izdirelim.

84

>> x_nok=[-10: 1: 10]; >> y_nok=[-10: 5: 10];

>>% Ayn grafik daha pratik olarak, ezsurf >>% fonksiyonuyla yle de izdirilebilir: >> ezsurf( 'x.^2+y.^2 ', [-10: 1: 10], [-10: 5: 10] )

>> [x,y]=meshgrid(x_nok, y_nok);

% Izgara iin oluturulan matris.

>> z=x.^2+y.^2 ; % Matris elemanlar olduu iin elemanter s alma yapld. >> surf(x,y,z); >>title('z=x^2+y^2 Parabolnn Yzey Grafii'); >> xlabel('x-ekseni'); ylabel('y-ekseni'); zlabel('z-ekseni')

>>% RNEK 18 >>% f(x,y)=xye(x2+y2)

fonksiyonunun -2 x 2 ve 0 y 2 aralklarnda boyutlu yzey grafiini surf

>>% fonksiyonu ile izdirelim.

85

>> x=(-2:.2:2); >> y=(-2:.2:2); >> Z=X.*Y.*exp(-(X.^2+Y.^2)); >> surf(X,Y,Z);

>>% Ayn grafik daha pratik olarak, ezmesh >>% fonksiyonuyla yle de izdirilebilir: >> ezmesh( 'X.*Y.*exp(-(X.^2+Y.^2))', [-2:.2:2], [-2:.2:2] )

>> xlabel('x-ekseni'); ylabel('y-ekseni'); zlabel('z-ekseni')

>>% RNEK 19 >>% x2 + y2 + z2 = 9 kresinin st yarsnn grafiini ezsurf fonksiyonu ile izdirelim. >>% Denklem dzenlenirse, z=sqrt(9- x2 - y2) olur.

86

>> ezsurf('sqrt(9- x^2 - y^2)', [-4 4], [-4 4] )

>>% NOT: Yukardaki rneklerde de grld gibi izdirilen grafiklere figr ekranndan renk haritas >>% eklemek ve figr ekrannda grafiin bak asn deitirmek mmkndr. >>% NOT: Hem iki boyutta hem de boyutta, grafikleri dorudan izdirmek iin plot, mesh, surf gibi grafik >>% izdirme fonksiyonlarnn bana ez ekinin getirildii ezplot, ezplot3, ezmesh, ezsurf fonksiyonlar >>% kullanlabilir. >>% RNEK 20 >>% >>% >>% >>% Bazen z=f(x,y) eklindeki iki deikenli fonksiyonlarda, dzey erilerini de izdirmek gerekebilir. Bunun iin a grafiklerde ezmeshc, yzey grafiklerde ezsurfc fonksiyonlar kullanlr. Sadece dzey erilerini gstermek istediimizde ise, ezcontour (a gsterimi iin) ya da ezcontourf (yzey gsterimi iin) fonksiyonlar yeterli olacaktr.

87

>>% z=y2 x2 fonksiyonunu, dzey erileriyle birlikte ezmesc fonksiyonuyla izdirelim. Sonra hemen altnda >>% ezcontour fonksiyonuyla sadece dzey erilerini gsterelim.

>> subplot(2,1,1) >> ezmeshc( 'y^2-x^2', [-3 3], [-3 3] ) >> subplot(2,1,2) >> ezcontour( 'y^2-x^2', [-3 3], [-3 3] )

88

>>% >>% >>% >>% >>%

NOT: Grafik izimlerinde xlabel, ylabel ve title adlandrmalarnda ya da grafik zerinde legend, text

veya gtext kullanmlarnda, hatta eksen centiklerinin adlandrlmasnda a, b, w, l gibi Yunan karakterlerini ya da km2, , , gibi sembolleri eklemek gerekebilir. Bunlarn MATLAB kod sistemindeki kullanmlar aadaki tabloda verilmitir. MATLAB de bu ilemler yaz dizgeleri (text strings) olarak adlandrlr.

Yunan Karakterleri ve SembollerKrakter \alpha \beta \gamma \delta \epsilon \zeta \eta \theta \vartheta \iota \kappa \lambda \mu \nu \xi \pi \rho Sembol Krakter \upsilon \phi \chi \psi \omega \Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi \Omega \forall Sembol Krakter \sim \leq \infty \clubsuit \diamondsuit \heartsuit \spadesuit \leftrightarrow \leftarrow \uparrow \rightarrow \downarrow \circ \pm \geq \propto \partial Symbol ~

89

\sigma \varsigma \tau \equiv \Im \otimes \cap \supset \int \rfloor \lfloor \perp \wedge \rceil \vee \langle

\exists \ni \cong \approx \Re \oplus \cup \subseteq \in \lceil \cdot \neg \times \surd \varpi \rangle x

\bullet \div \neq \aleph \wp \oslash \supseteq \subset \o \nabla \ldots \prime \0 \mid \copyright

...

|

90

>>% Tablo da verilen tm karakterler, ayrca aadaki zel deitiriciler (stream modifier) ile kullanlabilir:v \bf{} - Koyu yaztipi (bold font ). v \it{} - talik yaztipi (italics font). v \sl{} - yaztipi (oblique font, nadiren kullanlr). v \rm - Normal yaztipine dn. v \fntname{fontname} Kullanlacak yaztipi (font) ailesinin adn blirler. v \fontsize{fontsize} FontUnits olarak yani punto olarak yaztipi boyutunu belirler. v _{...}- Parantez iindeki karakterler ya da yaz altindis olarak gsterilir. v ^{...}- Parantez iindeki karakterler ya da yaz stindis olarak gsterilir.

>>% Genel kullanmda tabloda verilen yunan karakterlerini ve sembollerini ekilde ifade edebiliriz: >>% Eitlik >>% st indis >>% Alt indis : : : b=3 iin \beta=3 (equal) b3 iin \beta^3 (subscript) b3 iin \beta_3 (superscript)

>>% Ayrca bu gsterim mant m3 veya K12 gibi normal yaz ilemleri iin de geerlidir. >>% Alt indis veya st indislerde birden fazla karakter kullanlacak ise bu durumda { } eklindeki ssl >>% parantez kullanlmaldr. rnein; >>% x ekseninde "-co1 ldamasna gre yarlanma deerleri " grnmesini >>% istersek, >> xlabel ('-\gamma{_0^1} ldamasna gre yarlanma deerleri ') komutu kullanlr.

>>% y ekseninde "Hz katsays: Ko=10-12 " grnmesini istersek, >> ylabel ('Hz katsays: K_o=10^{-12}') >>% komutu kullanlr.

91

>>% NOT: boyutlu grafiklerle ilgili bilgilere >>help graph3d komutuyla ulalabilir. >> help graph3d Three dimensional graphs.

Elementary 3-D plots. plot3 mesh surf fill3 - Plot lines and points in 3-D space. - 3-D mesh surface. - 3-D colored surface. - Filled 3-D polygons.

Color control. colormap - Color look-up table. caxis - Pseudocolor axis scaling.

shading - Color shading mode. hidden - Mesh hidden line removal mode.

brighten - Brighten or darken color map. colordef - Set color defaults. graymon - Set graphics defaults for gray-scale monitors.

Lighting. surfl - 3-D shaded surface with lighting.

lighting - Lighting mode. material - Material reflectance mode. specular - Specular reflectance. diffuse - Diffuse reflectance. surfnorm - Surface normals.

92

Color maps. hsv hot gray bone copper pink white flag lines - Hue-saturation-value color map. - Black-red-yellow-white color map. - Linear gray-scale color map. - Gray-scale with tinge of blue color map. - Linear copper-tone color map. - Pastel shades of pink color map. - All white color map. - Alternating red, white, blue, and black color map. - Color map with the line colors.

colorcube - Enhanced color-cube color map. vga jet prism cool autumn spring winter summer - Windows colormap for 16 colors. - Variant of HSV. - Prism color map. - Shades of cyan and magenta color map. - Shades of red and yellow color map. - Shades of magenta and yellow color map. - Shades of blue and green color map. - Shades of green and yellow color map.

Transparency. alpha - Transparency (alpha) mode.

alphamap - Transparency (alpha) look-up table. alim - Transparency (alpha) scaling

Axis control. axis zoom - Control axis scaling and appearance. - Zoom in and out on a 2-D plot.

93

grid box hold axes

- Grid lines. - Axis box. - Hold current graph. - Create axes in arbitrary positions.

subplot - Create axes in tiled positions. daspect - Data aspect ratio. pbaspect - Plot box aspect ratio. xlim ylim zlim - X limits. - Y limits. - Z limits.

Viewpoint control. view - 3-D graph viewpoint specification.

viewmtx - View transformation matrix. rotate3d - Interactively rotate view of 3-D plot.

Camera control. campos - Camera position.

camtarget - Camera target. camva camup - Camera view angle. - Camera up vector.

camproj - Camera projection.

High level camera control. camorbit - Orbit camera. campan - Pan camera.

camdolly - Dolly camera. camzoom - Zoom camera.

94

camroll - Roll camera. camlookat - Move camera and target to view specified objects. cameratoolbar - Interactively manipulate camera.

High level light control. camlight - Creates or sets position of a light. lightangle - Spherical position of a light. Graph annotation. title xlabel ylabel zlabel text gtext - Graph title. - X-axis label. - Y-axis label. - Z-axis label. - Text annotation. - Mouse placement of text.

plotedit - Experimental graph editing and annotation tools.

Hardcopy and printing. print - Print graph or Simulink system; or save graph to M-file.

printopt - Printer defaults. orient vrml - Set paper orientation. - Save graphics to VRML 2.0 file.

See also graph2d, specgraph.

95

>>% NOT: MATLAB deki grafik eitleri aada zet olarak gsterilmitir.

96

BLM V>>% DENKLEMLER-DENKLEM SSTEMLERNN ZM >>% CEBRSEL DENKLEMLER >>% Cebirsel denklemlerin sembolik zmn solve fonksiyonu verir; solve fonksiyonunun genel hali: >>% syms x y z >>% [x,y,z,]=solve(denk1,denk2,denk3,,x,y,z,) eklindedir. >>% RNEK 1 >>% x2-x-6=0 denkleminin zmn bulalm. >> syms x >> solve(x^2-x-6,x) ans = 3 -2 >>% zm kmesi, ={3,2} olarak bulunur. >>% Benzer olarak, x12-3x10+x7-120x2+67=0 denkleminin kklerini bulalm. >> syms x >> solve(x^12-3*x^10+x^7-120*x^2+67,x) ans = .74720356628315882129201933741592 1.8739449545046381201418339113910 1.3799412975372923656562133279358+.79883587021658777179945832073383*i .50217039300299764820601368779329+1.4261986019933698713398249020469*i -.51246479578529006009603072834460+1.4418562120833487079385352327090*i -1.3468332163973951506034599502807+.80004143504146966877333266198056*i -.74577493701228339964228021354946 -1.9210009404907231481170457094651

-1.3468332163973951506034599502807-.80004143504146966877333266198056*i 97

-.51246479578529006009603072834460-1.4418562120833487079385352327090*i .50217039300299764820601368779329-1.4261986019933698713398249020469*i 1.3799412975372923656562133279358-.79883587021658777179945832073383*i >> double(ans) % double(ans) fonksiyonu, elde edilen sonucu drt haneli hale getirir. ans = 0.7472 1.8739 1.3799 + 0.7988i 0.5022 + 1.4262i -0.5125 + 1.4419i -1.3468 + 0.8000i -0.7458 -1.9210 -1.3468 - 0.8000i -0.5125 - 1.4419i 0.5022 - 1.4262i 1.3799 - 0.7988i >>% RNEK 2 >>% >>% >>% x+2y=1 x-y=2 denklem sisteminin zm kmesini bulalm.

>> syms x y >> [x,y]=solve(x+2*y-1,x-y-2,x,y) % Denklemler sfra eitlenerek ilem yapld. x= 5/3 y= -1/3

98

>>% RNEK 3 >>% >>% >>% x2+xy+y=3 x2-4x+3=0 denklem sisteminin zm kmesini bulalm.

>> syms x y >> [x,y]=solve(x^2+x*y+y-3,x^2-4*x+3,x,y) x= 1 3

>>% ya da ayn sonu aadaki gsterimle de bulunabilir >> [x,y]=solve('x^2+x*y+y=3','x^2-4*x+3=0','x','y') x= 1 3

y= 1 -3/2

y= 1 -3/2

>>% Yani zm kmesi, ={(1,1),(3,-3/2)} eklindedir. >>% RNEK 4 >>% >>% >>% sin(x+y)-ex y=0 x-y=2 denklem sisteminin zm kmesini bulalm.

>> syms x y >> [x,y]=solve(sin(x+y)-exp(x)*y,x-y-2,x,y) x= 2.0992000712861186211615062078174 y= .992000712861186211615062078174e-1

99

>>% RNEK 5 >>% >>% >>% tx+zy-1=0 2tx-3zy+2=0 denklem sistemde x ve y parametre olmak zere zm kmesini t ve z ye gre bulalm.

>> syms x y t z >> [t,z]=solve(t*x+z*y-1,2*t*x-3*z*y+2,t,z) t= 1/5/x z= 4/5/y >>% Yani, ={1/5x , 4/5y} olacaktr. Gsterimden emin olmak iin pretty fonksiyonu ile kontrol edilebilir. >>% RNEK 6 >>% fzero: Fonksiyon fonksiyonu; tek deikenli bir fonksiyonun sfrn hesaplar. >>% cosx fonksiyonunun 0 ile arasndaki kkn bulalm, yani cosx=0 denklemini zelim. >> fzero( 'cos(x)', [0 pi] ) ans = 1.5708 >>% Benzer olarak 2eX - 5=0 denkleminin zmn, balama deerini 1 alarak bulalm. >> fzero( '2*exp(x)-5' , 1 ) ans = 0.9163 >>% NOT: MATLAB de ileri dzey nmerik analiz ve matematiksel ilemler iin fonksiyon fonksiyonlar >>% kullanlr. Ayrntl bilgi iin >> help funfun komutu kullanlabilir. >>% DFERANSYEL DENKLEMLER >>% Dorusal diferansiyel denklemlerin analitik zm mmkndr. Bu amala, >>% adi diferansiyel denklemlerin simgesel zm iin dsolve fonksiyonu kullanlr. >>% dsolve fonksiyonunun genel format: dsolve('denk1','denk2',,'art1','art2',,'v',) eklindedir. >>% D harfi v bamsz deikenine gre trevi (yani d/dt yi) gsterir. >>% rnein, D3y, y(x) ya da y(t) nin 3. trevini ifade eder. Varsaylan bamsz deiken t dir. 100

>>% RNEK 7 >>%

dy = 1 + y 2 diferansiyel denkleminin zmn bulalm. dt

>>dsolve('Dy=1+y^2','t') ans = tan(t+C1) >>% RNEK 8 >>%

d2y = - a 2 y , y(0)=1, y(/a)=0 diferansiyel denkleminin zmn bulalm. 2 dt

>> dsolve('D2y=-a^2*y','y(0)=1','Dy(pi/a)=0', 't') ans = cos(a*t) >>% RNEK 9 >>%

d2y dy + 3 + y = 0 diferansiyel denkleminin zmn bulalm. 2 dt dt

>> dsolve('D2y+3*Dy+y=0', 't') ans = C1*exp(1/2*(5^(1/2)-3)*t)+C2*exp(-1/2*(5^(1/2)+3)*t) >>% RNEK 10 >>% y(1)=0 art altnda xy+y=2e2X birinci dereceden diferansiyel denklemin zmn bulalm. >> dsolve('x*Dy+y=2*exp(2*x)','y(1)=0','x') ans = (exp(2*x)-exp(2))/x >> pretty(ans)

exp(2 x) - exp(2) -------------------------x

101

>>% RNEK 11 >>% y(0)=-1/2 ve y(0)=4 koullar altnda y-4y=4x2 >>% ikinci dereceden diferansiyel denklemin zmn bulalm. >> dsolve('D2y-4*y=4*x^2','y(0)=-1/2','Dy(0)=4','x') ans = exp(2*x)-exp(-2*x)-1/2-x^2 >>% RNEK 12 >>% y(0)=0, y(0)=0 koullar altnda y+6y+13y=10sin5t >>% ikinci dereceden diferansiyel denklemin zmn bulalm. >> dsolve('D2y+6*Dy+13*y=10*sin(5*t)','y(0)=0','Dy(0)=0','t') ans = 125/174*exp(-3*t)*sin(2*t)+25/87*exp(-3*t)*cos(2*t)-10/87*sin(5*t)-25/87*cos(5*t) >> pretty(ans) 125 25 10 25

--- exp(-3 t) sin(2 t) + --- exp(-3 t) cos(2 t) - --- sin(5 t) - --- cos(5 t) 174 87 87 87

>>% RNEK 13 >>% y(0)=0 koulu altnda (y)2 + y2 =1 diferansiyel denklemin zmn bulalm.

>> dsolve('(Dy)^2+y^2=1','Dy(0)=0','t') ans = -1 1 cos(t) -cos(t)

>>% RNEK 14 >>% y(0)=0 ve x(0)=1 koullar altnda

d y d x = 3 y + 4x , = -4 y + 3 x dt dt102

>>% diferansiyel denklem sisteminin zmn bulalm. >> [x,y]=dsolve('Dy=3*y+4*x','Dx=-4*y+3*x','y(0)=0','x(0)=1','t') x= exp(3*t)*cos(4*t) y= exp(3*t)*sin(4*t) >>% Analitik zmleri bulunmayan diferansiyel denklemlerin ise saysal zmleri mmkndr. >>% Benzer biimde, analitik zmleri bulunan yksek dereceden ok sayda diferansiyel denklem >>% takmnn da saysal zmleri daha pratik olmaktadr. MATLAB de ode (ordinary differential equations) >>% zm fonksiyonlar, analitik zm iersin ya da iermesin btn diferansiyel denklemlerin >>% zmnde kullanlabilir. ode fonksiyonlar saysal integrasyon yolu ile zm salar (benzetim). >>% Bu fonksiyonlar balang koullar ile bir balang zamanndan balayp, zaman aral boyunca adm >>% adm ilerleyerek her bir zaman admnda bir zm hesaplar. Eer bir zaman admnda elde edilen >>% zm, fonksiyonun hata tolerans ltn karlarsa bu baarl bir adm saylr; karlamazsa fonksiyon >>% adm boyunu ksaltarak tekrar deneme yapar. >>% MATLAB de deiik yntemler kullanan ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb >>% gibi ok sayda ode zc vardr. imdi Dormand-Prince iftini kullanan ve belirgin Runge-Kutta (4,5) >>% yntemine dayanan ode45 fonksiyonu ile diferansiyel denklem zclerinin genel formatn >>% inceleyelim: >>% [T,Y]=ode45(odefun,Tspan,Y0) dr.

>>% Burada [T,Y], y=f(t,y) ye karlk gelen bir stun vektr retir. >>% odefun, m-dosyas eklinde tanmlanm difreransiyel denklemlerin sa tarafn ifade eder. >>% Tspan, [T0 Tson] biiminde tanmlanan integral etme zaman deerleri anlamna gelir. >>% y0, balang zaman, T0 da balang koullar deerini ieren stun vektrn ifade eder. >>% RNEK 15

d2y dy + m ( y 2 - 1) + y = 0 >>% Literatrde ska karmza kan, 2 dt dt>>% Van Der Pol denkleminin saysal zmn, ode45 fonksiyonunu kullanarak bulalm.

103

>>% nce denklemi yeniden dzenleyerek 1. dereceden diferansiyel denklem halinde ifade etmemiz >>% gerekir.

d2y dy + m ( y 2 - 1) + y = 0 ise, 2 dt dt

y=F(t,y,y) = m y(1-y2) y dir.

& >>% Burada y1 = y ve y2 = y biiminde yeni deikenler tanmlanrsa, denklemimizin son hali,

& y1 = y2 & y2 = m (1- y12) y2 - y1olur.

>>% imdi, rnein m = 2 iin y1 ve y2 nin geerli deerlerine dnderecek bir m-dosyasn yazp vdpmu.m >>% olarak kaydedelim. (Bkz: Blm VI)function dy = vdpmu(t,y); mu=2; dy=[y(2); mu*(1-y(1)^2)*y(2)-y(1)];

>>% vdpmu.m olarak kaydedilen bu dosya artk komut satrndan arlabilecektir. >>% Burada seeceimiz y(1)=1, y(2)=0 balang koullar altnda ve [0 30] zaman aralnda zm, >>tspan=[0 30]; >>y0=[1;0]; >> [t,y]=ode45('vdpmu',tspan,y0) t= 0 0.0001 0.0001 0.0002 0.0002 29.6381 29.7286 29.8190 29.9095 30.0000 104

y= 1.0000 0

1.0000 -0.0001 1.0000 -0.0001 1.0000 -0.0002 1.0000 -0.0002

1.7776 -0.3800 1.7426 -0.3926 1.7065 -0.4060 1.6691 -0.4205 1.6304 -0.4363 >>% t stun vektr t zmn zaman noktas deerlerini ifade eder. Bu zaman deerleri integral almada >>% kullanlan zaman admlar (gerektiinde bu da ayarlanabilir) olmayp, grafik iin belirlenen uygun >>% admlardr. y matrisinde ise, 1. stun y(:,1) biiminde t zaman noktalarnda zmn kendisi; 2. stun >>% y(:,2) biiminde t zaman noktalarnda zmn 1. trevidir. >> plot(t,y(:,1),'o')

105

>> NOT: Yukardaki rnekte de grld gibi yksek dereceden bir diferansiyel denklemin saysal zm 3 >> admda gereklemektedir: 1- Verilen denklem 1. dereceden diferansiyel denklem takm olacak ekilde >> dzenlenir. 2- Hazrlanan 1. dereceden sistem bir m-dosyasnda kodlanr. 3-Uygun ode fonksiyonu ile >> zme gidilir; sonular yorumlanr. >>% RNEK 16 >>% y(1)=1, y(2)=0 balang koullar altnda, [0 3000] zaman aralnda m = 1000 iin van der Pol >>% denklemini zelim. ode45 burada yetersiz kalacaktr, yerine ode15s kullanlmaldr. >>% 1-) 1. dereceden diferansiyel denklem takmna dntrelim. >>%

d2y dy + m ( y 2 - 1) + y = 0 ise, 2 dt dt

y=F(t,y,y) = m y(1-y2) y dir.

& >>% Burada y1 = y ve y2 = y biiminde yeni deikenler tanmlanrsa, denklemimizin son hali,

& y1 = y2 & y2 = m (1- y12) y2 - y1>>% 2-) 1. dereceden diferansiyel denklem sistemini bir m-dosyasnda saklayalm.function dy = vdpmu(t,y); mu=1000; dy=[y(2); mu*(1-y(1)^2)*y(2)-y(1)];

olur.

>>% 3-) ode15s fonksiyonu ile zm bulup, grafiini izdirelim. >> [t,y]=ode15s('vdpmu',[0 3000],[1;0]) t= 1.0e+003 * 0 0.0000 0.0000 0.0000 2.7982

106

2.8220 2.8458 2.8696 3.0000 y= 1.0e+003 * 0.0010 0

0.0010 -0.0000 0.0010 -0.0000 0.0010 -0.0000

0.0020 -0.0000 0.0020 -0.0000 0.0019 -0.0000 0.0019 -0.0000 0.0018 -0.0000 >> plot(t,y(:,1),'o')

107

>>% RNEK 17 >>% y - 3y - yy = 0 biiminde verilen bir diferansiyel denklemde, balang koullar y(0)=0, y(0)=1, >>% y(0)=-1 olarak tanmlanmtr. Denklemin zmn bulalm. >>% y1=y, y2=y, y3=y deiken deiimi yaplrsa, >>% >>% >>% >>% 1.dereceden denklem sisteminin m- dosyas,function dy=diffonk(t,y); dy=[y(2);y(3);3*y(3)+y(2)*y(1)];

y1= y2 y2= y3 y3 = 3y3 + y2y1 olur.

>>% [0 1] aralnda zm, >> [t,y]=ode45('diffonk',[0 1],[0; 1; -1]) t= 0 0.0001 0.0001 0.0002 0.0002 0.9313 0.9485 0.9657 0.9828 1.0000

108

y= 0 1.0000 -1.0000 0.0001 0.9999 -1.0002 0.0001 0.9999 -1.0003 0.0002 0.9998 -1.0005 0.0002 0.9998 -1.0006

-0.4417 -4.0297 -15.9915 -0.5132 -4.3110 -16.8015 -0.5897 -4.6066 -17.6459 -0.6714 -4.9170 -18.5255 -0.7586 -5.2427 -19.4404 >> plot(t,y(:,1),t,y(:,2),'*',t,y(:,3),'o') % y(:,1) zm, y(:,2) zmn 1.trevi, y(:,3) zmn 2.trevidir.

109

>>% RNEK 18 >>% y = 2cos2 (y) diferansiyel denklemini ode23 fonksiyonunu kullanarak zelim.function dy= diffonk(x,y); dy= 2*x*(cos(y))^2;

>> [x,y]=ode23('diffonk',0,2,pi/4) Warning: Obsolete syntax. Use ode23(fun,tspan,y0,...) instead. > In funfun\private\odearguments at 41 In ode23 at 172 x= 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000 y= 0.7854 0.8050 0.8593 0.9367 1.0232 1.1071 1.1818

110

1.2451 1.2970 1.3393 1.3735 >> plot(x,y(:,1))

>>% RNEK 19 >>% >>% >>% >>% y1= y2y3, Y2= - y1y3, Y3= -0.51y1y2, y1(0)=0 y1(0)=1 y1(0)=1

diferansiyel denklemini zelim.

111

function dy=rig(t,y) dy=[y(2)*y(3);-y(1)*y(3);-0.51*y(1)*y(2)];

>> [t,y]=ode45('rig',[0 12],[0; 1; 1]) t=

0 0.0001 0.0001 0.0002 0.0002 11.4847 11.6136 11.7424 11.8712 12.0000

y= 0 1.0000 1.0000 0.0001 1.0000 1.0000 0.0001 1.0000 1.0000 0.0002 1.0000 1.0000 0.0002 1.0000 1.0000

-0.2936 -0.9540 0.9763 -0.4098 -0.9102 0.9548 -0.5169 -0.8539 0.9279 -0.6135 -0.7874 0.8974 -0.6987 -0.7128 0.8650

112

>> plot(t,y(:,1),'-',t,y(:,2),'-.',t,y(:,3),'.')

>>% RNEK 20 >>% (rnek 12 de analitik olarak zdmz) >>% y+6y+13y=10sin5t y(0)=0, y(0)=0 balang koullar altnda

ikinci dereceden diferansiyel denklemin saysal zmn bulalm.

>>% y1=y, y2=y deiken deiimi yapldnda, >>% >>% >>% 1.dereceden denklem sisteminin m- dosyas, y1= y2 y2= -6y2 - 13y1 + 10sin5t olur.

function dy=diffonk(t,y); dy=[y(2);-6*y(2)-13*y(1)+10*sin(5*t)];

113

>> [t,y]=ode45('diffonk',[0 1],[0 ; 0]) t= 0 0.0192 0.0383 0.0575 0.0767 0.9534 0.9650 0.9767 0.9883 1.0000 y= 0 0

0.0001 0.0088 0.0004 0.0339 0.0014 0.0732 0.0033 0.1244

0.1325 -1.6244 0.1135 -1.6448 0.0942 -1.6603 0.0748 -1.6708 0.0553 -1.6763

114

>> plot(t,y(:,1))

115

BLM VIMATLAB de PROGRAMLAMA Daha nceki blmlerde komutlarmz