7. Diferensiyel Denklemlerin Çözümünde Matlab Uygulamaları MATLAB, Matrislere dayanan ve problemlerin çözümlerinde kullanılan Matematik metotların bilgisayar ortamında kullanılmasını sağlayan yazılım paketidir. Birçok problemin çözümünde olduğu gibi Diferensiyel denklemlerin çözümünde de etkin kullanılan Matlab komutları bulunmaktadır. Bu bölümde bazı temel Matlab komutları tanıtılacak ve diferensiyel denklemlerin ve bazı problemlerin çözümleri ile ilgili Matlab komutları uygulamalı olarak ele alınacaktır. 7.1. Temel Matematik Fonksiyonlar >> 5*3-4+6/2^ 17 ( Matlab da sayılar arası işlemler [ +, -, /, *, ^ ] bu şekilde ifade edilmektedir.) >> pi 3.1416 ( Matlab da (π) sayısı pi şeklinde tanımlanmaktadır.) clc clear : Matlab da ekranı temizlemeyi sağlayan komuttur. : Matlab da önceden tanımlamış olduğunuz değişkenleri hafızasından siler. >> 7/ Inf ( Matlab sayı / hatasını Inf olarak gösterir. ) >> / ans= NaN ( Matlab / hatasını NaN olarak gösterir. ) >> abs(-5) 5 ( abs girilen sayının mutlak değerini alma komutudur. ) >> exp(2) 7.3891 ( exp e=2.7183 sabitinin ( istediğimiz dereceden kuvvetini almamızı sağlar.) >> sqrt(16) 4 ( sqrt girilen sayının karekökünü alma komutudur. ) >> sign(-3) -1 >> sign(4) ( sign girilen sayının işaretini veren komuttur. ) 1 >> sign() 1
>> log(2).6931 ( log komutu loge(x) e tabanında girilen sayının logaritmasını alır.) >> log(exp(1)) 1 ( loge(e) = 1 [logaritma e tabanında e = 1] olarak hesaplamaktadır. ) >> log1(1) 2 ( log1(x) 1 tabanında girilen sayının logaritmasını hesaplamaktadır.) >> rem(1,3) 1 ( rem(x,y) komutu 'x sayısının y sayısına bölümünden elde edilen kalanı verir. ) Karmaşık Sayılar >> 4+5i 4. + 5.i ( Bu şekilde de tanımlama yapmam mümkündür.) >> z=complex(2,3) z = 2. + 3.i ( complex(x,y) karmaşık sayı tanımlama komutudur.) >> a=real(z) a = 2 ( tanımlanmış olan z karmaşık sayısının reel kısmını veren komuttur.) >> b=imag(z) b = 3 ( tanımlanmış olan z karmaşık sayısının sanal kısmını veren komuttur.) >> conj(z) 2. - 3.i( tanımlanmış olan z karmaşık sayısının eşleniğini alan komuttur.) Matrisler >> a = [1 2 ; 3 4] a = 1 2 ( Örnekte de görüldüğü gibi önce satır değerleri aralarında birer boşluk 3 4 bırakılarak girilir ; ifadesi diğer satıra geçişi sağlamaktadır.) >> s = [4 6 8 ; 3 4 5 ; -1 6-9] s = 4 6 8 3 4 5-1 6-9 >> b= [3 4 ; 1 2] b = 3 4 1 2 2
>> a*b 5 8 13 2 ( Önceden tanımlanmış a ve b matrislerini çarpma işlemidir. ) >> b^2 13 2 5 8 (Önceden tanımlanmış b matrisinin vektörel olarak (b^2=b*b) çarpma işlemidir.) >> b.^2 9 16 1 4 (Önceden tanımlanmış b matrisinin skaler olarak (b.^2=b.*b) çarpma işlemidir.) >> c= [3-1 ; 2 6] c = 3-1 2 6 >> tc=c' tc = 3 2-1 6 ( c önceden tanımlanmış c matrisinin transpozesini alır. ) >> det(c) 2 ( c matrisinin determinantını hesaplar.) >> inv(c).3.5 -.1.15 ( c matrisinin tersini alır.) >> eye(3) 1 1 1 ( eye(a) a x a boyutunda birim matris oluşturan komuttur.) >> ones(2) 1 1 1 1 ( ones(a) a x a boyutunda birler matrisi oluşturan komuttur.) >> zeros(4) ( zeros (a) a x a boyutunda sıfırlar matrisi oluşturan komuttur.) 3
7.2.Matlab da Bazı Özel fonksiyonlar 7.2.1.Sembolik Fonksiyonu Herhangi bir değişkene sayısal bir değer atamadan (a+2), (a^3) gibi matematiksel ifade atamak isteyebiliriz. Bunu gerçekleştirmek için syms Sembol fonksiyonunu kullanırız. Böyle bir atama için syms a yazarız ve böylece (a+2), (a^3) gibi matematik ifadeleri doğrudan girebiliriz, aksi halde hata verir. ÖRNEK: syms fonksiyonu >> syms a >> A=a+2 a+2 >> B=a-2 B = a-2 >> C=A*B C = (a+2)*(a-2) 7.2.2.Exand Fonksiyonu D=expand(C) dağılma özelliğine göre çarpmayı sağlar. >> D=expand(C) D = a^2-4 >> syms a >> syms b >> A=sin(a+b) sin(a+b) >> B=expand(A) B = sin(a)*cos(b)+cos(a)*sin(b) 4
7.2.3.Simplify Fonksiyonu >> syms a,b,c; >> A=(exp(c*log(sqrt(a+b)))) exp(1/2*c*log(a+b)) >> simplify(a) // denklemdeki sembolik ifadeleri matematiksel fonksiyonlara çevirir. (a+b)^(1/2*c) 7.2.4.Subs Fonksiyonu >> syms s >> A=s^2+6*s+9 s^2+6*s+9 >> subs(a,s,s+3) // A fonksiyonunda s gördüğü yere s+3 yazar (s+3)^2+6*s+27 >> subs(a,s,5) // A fonksiyonunda s gördüğü yere 5 yazar 64 7.2.5. Pretty Fonksiyonu >> A=(s^2+6*s+9)/(s+3) (s^2+6*s+9)/(s+3) >> pretty(a) // A fonksiyonunun yukarda görülen bilgisayar ortamındaki ifadesini ekrana matematikte bilinen şekliyle aşağıdaki gibi yazar 2 s + 6 s + 9 ------------ s + 3 5
7.3. Grafik Komutları ÖRNEK: 2 Boyutlu Grafik Çizimi >> syms x >> F=x^3-14*x^2+65*x+1 F = x^3-14*x^2+65*x+1 >> ezplot(f,-6,6) // F fonksiyonunun grafiğini (-6,6) aralığında 2 boyutlu çizer. x 3-14 x 2 +65 x+1 2-2 -4-6 -8-1 -6-4 -2 2 4 6 x ÖRNEK: 2 Boyutlu Grafik Çizimi ezplot('sin(3*t)*cos(t)', 'sin(3*t)*sin(t)', [,pi]) // ile pi Aralığında 2 boyutlu grafik çizer. x = sin(3 t) cos(t), y = sin(3 t) sin(t).4.2 y -.2 -.4 -.6 -.8 -.8 -.6 -.4 -.2.2.4.6.8 x 6
ÖRNEK: 3 Boyutlu Grafik Çizimi >> syms x >> syms y >> ezsurf('(x^2)/2+(y^2)/2') // z= (x^2)/2+(y^2)/2 fonksiyonunun 3 boyutlu grafiğini çizdirir. (x 2 )/2+(y 2 )/2 4 3 2 1 5 5 y -5-5 x 7.4. Türev,İntegral ve Denklem Çözüm Fonksiyonları 7.4.1. solve Denklem Çözüm Fonksiyonu >> [x,y]=solve('x^2+x*y+y=3','x^2-4*x+3=') // Verilen denklemini çözerek x ve y nin değerlerini bulur. x = 1 3 y = 1-3/2 ÖRNEK: >> syms x >> F=x^2-9 F = x^2-9 >> solve(f) // F fonksiyonunu çözer ve x in değerlerini buldurur. 3-3 7