TEMEL MATEMATİK İŞLEMLER 8.1. Karmaşık (Kompleks) Sayı İşlemleri 8.1.1. Karmaşık Sayı Fonksiyonları Mutlak değer (Absolute value). abs Faz açısı (Phase angle). angle Karmaşık sayının eşleniği (Complex conjugate). conj imag Karmaşık sayının sanal (imajiner) kısım (Complex imaginary part). real Karmaşık sayının gerçel kısım (Complex real part). 8.1.2. Karmaşık Sayı Uygulama Örnekleri Örnek-1. zx = 2(1+4j) işleminin sonucunu bulunuz: >> zx=2*(1+4*i) zx = 2.0000 + 8.0000i Örnek-2. k = (-1 + 3i)3 işleminin sonucunu bulunuz. >> k = (-1+3i)^3 k= 26.0000 -18.0000i 8.1.3.1. cart2pol ve pol2cart fonksiyonları • cat2pol fonksiyonu, kartezyen koordinatlardan (x,y) polar koordinatlara (r,θ) dönüştürür. Örnek: z = 3 - 4i sayısının kutupsal eşdeğerini bulunuz. >> z=3-4i ; >> [teta,r]=cart2pol(real(z),imag(z)) teta = -0.9273 r = 5 teta açısı radyan cinsinden olup dereye çevirmek için 180/pi ile çarpılmalıdır. >> teta=teta*180/pi teta = -53.1301 Sonuç olarak z = 5 ∠ -53.13o • pol2cart fonksiyonu, kartezyen koordinatlardan (x,y), polar koordinatlara (θ,r) dönüşüm sağlar. Örnek: z = 5 ∠ -53.13o sayısının kartezyen karşılığını bulunuz. >> >> [x,y]=pol2cart(-53.13*pi/180,5) x = 3.0000 y = -4.0000 8.2.2. Polinomların Değerini Bulma Bir P(x) polinomunun x=k için alacağı değeri bulmak için polyval fonksiyonu kullanılır. Komutun genel formatı polyval(P,k) şeklindedir. Burada P, polinomun katsayılar vektörü, k da polinomun değerlendirileceği değerdir. Örneğin • P(x)= x4+3x3-15x2-2x+9 polinomunun x=2 için alacağı değeri bulmak için » P_2 = polyval([1 3 -15 -2 0],2) P_2 = -24 8.2.3. Polinomların Köklerini Bulma Bir P(x)=0 polinomunun çözüm kümesi polinomun kökleridir. Kökleri bulmak için roots fonksiyonu kullanılır. Komutun genel formatı roots(P) şeklindedir. Burada P, polinomun katsayılar vektörüdür ve kökler, sütun vektörü olarak verilir. Örneğin • P(x)= x4+3x3 -15x2-2x+9 polinomunun köklerini bulmak için » Pkokler = roots([1 3 -15 -2 9]) Pkokler = -5.5745 2.5836 -0.7951 0.7860 Örnek-1: Aşağıda verilen lineer denklem sisteminin çözüm kümesini bulunuz. x1 - 4x2 + 3x3 = -7 3x1 + x2 - 2x3 = 14 2x1 + x2 + x3 = 5 Katsayılar matrisi: Sabitler vektörü: Çözüm vektörü: A = [ 1 -4 3; 3 1 -2; 2 1 1]; b = [ -7; 14; 5]; x = inv(a)*b » » » » x clear A = [1 -4 3 ; 3 b = [-7; 14; 5]; x = inv(a)*b = 3.0000 1.0000 -2.0000 1 -2 ; 2 1 1]; 8.5.3. solve Fonksiyonu solve fonksiyonu, herhangi bir lineer veya lineer olmayan denklem ve denklem sisteminin çözümünü yapar. Genel yazım formatı solve('denklem1','denklem2','. . .') şeklindedir. Denklem ifadeleri f(x)=0 şeklinde olmak zorunda değildir. Her ne kadar sembolik denklem çözümleri sunmasıyla beraber nümerik sonuç ta vermektedir. Örnek-1: 0.1ex + sin(x) - 5 = x denkleminin kökünü bulunuz. >> eq1 = '0.1*exp(x)+sin(x)-5=x'; >> [x] = solve(eq1) x = -4.1515936788037046341400951202097 8.7. İntegral Matematikte integral, bir fonksiyon grafiğinin altındaki alanı bulmak için kullanılan nümerik bir metoddur. Matlab’de integral işleminde integral, belirli ise sonucu sayısal olarak hesaplar; belirsiz ise sembolik olarak gösterebilir. 8.7.1. Sayısal Değerli (Nümerik) İntegral Örnekleri Genel olarak b q = ∫ f(x)dx a integralini Matlab’de sayısal integral alma işlemi quad ve quad8 fonksiyonları ile gerçekleştirilir. quad, adaptif tekrarlı Simpson kuralını (eğrisel alan toplamı yaklaşımı) kullanan düşük dereceli bir yöntemdir. quad8 ise daha yüksek dereceli bir yöntem olup, quad integral sonucu bulmadığında yani yaklaşım sağlayamadığında kullanılması daha uygundur. quad fonksiyonunun genel formatı: q=quad(fun,a,b) şeklindedir. Burada fun, ya inline nesne (object) olmalıdır ya da bir fonksiyon tutamacı (handle) şeklinde tanımlanmalıdır. quad fonksiyonu, 10-6 hata ile fun ile tanımlı matematiksel bir fonksiyonunun a ile b arasındaki integraline yaklaşır. Örneğin: 2 ∫ 0 1 3 x − 2x − 5 dx işleminde integrali alınacak fonksiyon • inline bir nesne olarak düşünülürse: » F=inline('1./(x.^3-2*x-5)'); » Q=quad(F,0,2); şeklinde veya direkt olarak, » Q=quad('1./(x.^3-2*x-5)',0,2); şeklinde kullanılır. Dikkat edilirse fonksiyonda değişkenler .(dot) şeklinde kullanılmalıdır. .7.2. Sembolik İntegral Örnekleri Sembolik hesaplama da ise sayısal sonuç yerine integralin değişkene göre sonucu verilir. Not: Matlab sembolik işlemlerde Symbolic Math Toolbox’ı kullanır. Kullanılacak fonksiyonları » help symbolic komutu ile görebilirsiniz. Sembolik değişken ve işlemlere giriş yapmak için » symintro komutunu kullanabilirsiniz. » help symbolic Symbolic Math Toolbox. Version 2.1.3 (R13) 28-Jun-2002 Calculus. diff - Differentiate. (Türev) int - Integrate. (İntegral) limit - Limit. (Limit) taylor - Taylor series. (Taylor Serisi) jacobian - Jacobian matrix. (Jakobien Matris) symsum - Summation of series. (Seri Toplamı) Simplification. simplify - Simplify. expand - Expand. factor - Factor. collect - Collect. simple - Search for shortest form. numden - Numerator and denominator. Solution of Equations. solve - Symbolic solution of algebraic equations. dsolve - Symbolic solution of differential equations. finverse - Functional inverse. ... sym - Create symbolic object. syms - Short-cut for constructing symbolic objects. findsym - Determine symbolic variables. ... Normal durumlarda sayısal işlemlerde ve karakter dizgelerinde bildirime gerek yok iken sembolik işlemlerde kullanılacak sembolik nesne (symbolic object) yani değişken veya değişkenlerin önceden bildirilmesi gerekir. Örneğin a gibi sembolik değişken; » sym a ans = a veya » sym(‘a’) ans = a ile bildirilir. Birden fazla örneğin a, b, c, d gibi dört sembolik değişkenin bildirimi için; » syms a b c d komutu kullanılır. Burada sym ve syms sembolik değişken atama fonksiyonlarıdır. Değişkenler arasına virgül konulmaz ayrıca tek bir değişkeni de syms ile kullanabilirsiniz. » bdeg = a^(sin(b) + c) bdeg = a^(sin(b)+c) ! Aslında » bdeg = a^(sin(b) + c); yani ; yazılımı ile sembolik ifadenin ekrana yazdırılması engellenebilir ancak genelde yazılan sembolik ifadenin doğruluğu için ekranda görüntülenmesi tercih edilir. » findsym(bdeg) % bdeg’de tanımlı tüm sembolik değişkenleri bulur ans = a, b, c » findsym(bdeg,1) değişkeni bulur ans = c % bdeg’de tanımlı varsayılan Sembolik integral alma fonksiyonu int olup genel formatı: findsym ile belirlenen sembolik değişkene göre S’in belirsiz integralini alır. int(S), S’in v’ye göre belirsiz integralini alır. int(S,v), int(S,a,b), S’in varsayılan sembolik değişkene göre a’dan b’ye kadar belirli integralini alır. int(S,v,a,b), S’in v’ye göre a’dan b’ye kadar belirli integralini alır. şeklindedir. ! Yukarıda gördüğümüz quad fonksiyonu yerine tamamen int fonksiyonunu kullanarak hem belirli hem de belirsiz integral işlemleri yapılabilir. Matlab’in 6.5 versiyonu ile sembolik işlem özellikleri çok geliştirildiği için bundan sonraki bölümlerde sayısal değerli işlemler de sembolik mantık ile gösterilecektir. Matematiksel Gösterim x n +1 MATLAB Komutu n ∫ x dx = n + 1 int(x^n) veya int(x^n,x) π /2 int(sin(2*x),0,pi/2) ∫ sin(2 x)dx = 1 0 veya int(sin(2*x),x,0,pi/2) g = cos(a*t + b) g = cos(at + b) ∫ g (t )dt = sin(at + b) / a int(g) , t’ye göre türev int(g,t) , t’ye göre türev int(g,a) , a’ya göre türev Örnekleme: » syms x a » [int(x^a), int(a^x), int(x^a,a), int(a^x,a)] ans = [ x^(a+1)/(a+1), 1/log(a)*a^x, 1/log(x)*x^a, a^(x+1)/(x+1)] komutuna bakarsanız ilk iki işlemde x’e göre, son iki işlemde ise a’ya göre integral alınmıştır. Örnek-8.6: 5 ∫ (−2 x − 4 x + 20)dx integralini bulunuz. » syms x » int(-2*x^5-4*x+20) ans = -1/3*x^6-2*x^2+20*x yani sonuç − 1 6 2 x -2x +20x olur. Diğer bir kullanım şekli ise aşağıda verilmiştir: 3 Örnek-8.9: ∫ sin 3tx ⋅ cos x dx integralini bulunuz. » syms x t » f4=sin(3*t*x)*cos(x) f4 = sin(3*t*x)*cos(x) » sonuc=int(f4) sonuc = -1/2/(3*t+1)*cos((3*t+1)*x)-1/2/(3*t-1)*cos((3*t-1)*x) • Katlı İntegral Hesabı En genel olarak çok katlı integrallerde içiçe int fonksiyonu kullanabilirsiniz. Iu = 2π π ∫ ( ∫ (u ( x, y )dx ) dy 0 0 işlemi için, » Iu = int(int(u,x,0,pi),y,0,2*pi) komutu kullanılır. Önce içerideki integral sonra dışarıdaki integral işlemi uygulanır. 8.2. Türev Türev alma işleminde kullanılan fonksiyon adı diff olup sembolik işlem mantığı çerçevesinde genel formatı: diff(S), findsym ile belirlenen sembolik değişkene göre S’in türevini alır. diff(S,v), S’in v’ye göre türevini alır. diff(S,n), n pozitif bir tamsayı olmak üzere n. dereceden türevini alır. diff(S,'v',n) ve diff(S,n,'v'), S’in v’ye göre n. dereceden türevini alır. şeklindedir. Matematiksel Gösterim df dx MATLAB Komutu diff(f) diff(f,x) or df da diff(f,a) d2 f diff(f,b,2) db 2 ∂(r , t ) J= ∂ (u , v) J = jacobian([r;t],[ u,v]) Örnek-8.13: f(x)=5x3+ax2+bx -14 (a ve b sabit değerdir) fonksiyonunun türevini bulunuz. » syms a b c x » f=5*x^3+a*x^2+b*x-14 f = 5*x^3+a*x^2+b*x-14 » diff(f) ans = 15*x^2+2*a*x+b Türev için varsayılan sembolik değişken konusunda en garanti işlem türevin neye göre alınacağını belirtmektir. » diff(f,x) ans = 15*x^2+2*a*x+b Örnek-8.14: f(x)=arctan(2x-3)-sin(x2) fonksiyonunun türevini bulunuz ve türevinin x=π’deki değerini bulunuz. » syms x » fonk=atan(2*x-3)-sin(x^2) fonk = atan(2*x-3)-sin(x^2) » turev=diff(fonk) turev = 2/(1+(2*x-3)^2)-2*cos(x^2)*x » tdegeri=subs(turev,x,pi) tdegeri = 5.8415 Şekil-8.1. Örnek 8.17 grafiği 8.3. Limit Limit alma işleminde kullanılan fonksiyon adı limit olup sembolik işlem mantığı çerçevesinde genel formatı: limit(F,a), bağımsız değişken olarak findsym(F)’i kullanır. limit(F), limit noktası olarak a=0’ı kullanır. limit(F,x,a), x>a olarak sembolik ifadenin limitini alır. limit(F,x,a,'right') veya limit(F,x,a,'right'), tek taraflı limitin yönünü belirler. Matematiksel Gösterim MATLAB Komutu limit(f) limit(f,x,a) veya limit(f,a) limit(f,x,a,'left') limit(f,x,a,'right') Örnek-8.23: x2+xy+y=3 x2-4x+3=0 denklem sisteminin çözüm kümesini bulunuz. » x [ [ [x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0') = 1] 3] y = [ 1] [ -3/2] Bu örnekte iki ayrı çözüm kümesi bulunmuştur: x1 ve y1 ile x2 ve y2; Ç={ (1,1) , (3,-3/2) } 8.5. Diferansiyel Denklem Çözümü Adi diferansiyel denklemlerin (Ordinary Differential Equations-ODE) sembolik çözümü için kullanılan dsolve fonksiyonunun genel formatı: dsolve('denk1','denk','sart1','sart2',...','v') 8.5.1. Diferansiyel Denklem Çözüm Örnekleri Örnek-8.29: y(1)=0 şartı altında xy'+y=2e2x birinci dereceden diferansiyel denklemin çözümünü bulunuz. Genel çözüm için: » dsolve('Dy + y/x = (2/x)*exp(2*x)','x') ans = 1/x*exp(2*x)+1/x*C1 Örnek-8.39: 1 + 1 2 2 + 1 3 2 + 1 4 2 + ... + 1 n2 serisinin ilk 10 terim toplamını bulunuz. » syms x k » seri_top=symsum(1/k^2,1,10) seri_top = 1968329/1270080 Örnek-8.40: T ( s ) = 200 ( s + 10 )( s 2 + 4 s + 24 ) şeklinde Laplace formatında verilen transfer fonksiyonun t-domeni karşılığını bulunuz. » syms s » T = 200/((s+10)*(s^2 + 4*s + 24)); » pretty(T) 200 (s+10) 2 (s+4s+24) » t_domen = ilaplace(T) t_domen =