Matlab’de Matematiksel İşlemler

Bu yazıda sizlere limit, türev, integral ve diferansiyel denklemlerin Matlab’de nasıl çözüldüğünden bahsedeceğim.

Matlab’de Limit

Matematikte çok önemli bir yere sahip olan limit problemlerini Matlab’de çözmek mümkündür. Bunun için limit() komutunu kullanmamız gerekir. Komutun içerisine yazmamız gereken fonksiyon sembolik nesnelerden oluşmalıdır. Eğer sembolik nesne ile ilgili herhangi bir fikriniz yoksa buradan bir önceki yazımızı okumanızı tavsiye ederim. Komutun kullanılışı,

limit(fonksiyon,değişken,değer,left-right)

şeklindedir. Burada eğer fonksiyonumuz x değişkenine bağlı ise değişken yerine x yazılır. x değişkeninin yaklaşmaya çalıştığı değer b ise  değer yerine b yazılmalıdır. Eğer ki b değerine b+(sağdan) ya da b(soldan) yaklaşıyorsak left veya right değerlerinden biri yazılmalıdır.

    \[lim_{x\to b^+}f(x)\]

ifadesinin limitini bulmak için komut satırına limit(f(x),x,b,right) ifadesi yazılmalıdır. Eğer değer yerine herhangi bir şey yazılmaz ise 0 olarak kabul edilir.

Limit x→∞ ise değer yerine inf, x→-∞ ise –inf yazılmalıdır.  Böylece limit bulunmuş olacaktır. Birkaç örnek yapalım.

Örnekler

    \[lim_{x \to \infty}\frac{7^{2x+1}-49.7^{x+3} }{49^{x-1}+77 }    =?\]

INPUT:
 >> syms x;
 >> f = (7^(2*x+1) - 49*(7^(x+3)))/(49^(x-1) + 77);
 >> sonuc = limit(f,x,inf);
 >> sonuc
 OUTPUT:
 sonuc =
  343 

    \[lim_{x \to {0}^{-}}\frac{9x}{|x|} =?   \hspace{3em} lim_{x \to 1}\frac{3x^2-3}{x-1} =? \]

 INPUT:
 >> syms x;
 f1 = (9*x)/abs(x);
 >> sonuc1 = limit(f1,x,0,'left');
 >> sonuc1
 OUTPUT:
 sonuc1 =
 -9 

INPUT:
>> syms x;
>> f2 = (3*(x^2) - 3)/ (x-1);
>> sonuc2 = limit(f2,x,1);
>> sonuc2
OUTPUT:
sonuc2 = 
6

    \[lim_{x \to a}\frac{x^3-a^3}{sin(3x-3a)} =? \hspace{3em} lim_{x \to {1}^{+}}\frac{6x^2+5x+3}{9x} =? \]

INPUT:
syms x a;
f3 = ((x^3) - (a^3))/(sin(3x -3a));
sonuc3 = limit(f3,x,a) ;
sonuc3
OUTPUT:
sonuc3 =
a^2    

INPUT:
>> syms x;
>> f4 = (6*(x^2) + 5*x + 3) / (9*x);
>> sonuc4 = limit(f4,x,1,'right');
>> sonuc4
OUTPUT:
sonuc4 =
14/9 

Matlab’de Türev

Mühendislik ve matematik başta olmak üzere birçok alanda karşımıza çıkan türev problemlerini matlab ile çözmek için diff() komutunu kullanmamız yeterlidir. Türevini hesaplama ihtiyacı duyduğumuz fonksiyonu diff() komutuna yazarken, fonksiyonun değişkenini matlab’de sembolik nesne olarak tanımlamış olmamız gerekir. Komutun kullanışı diff(fonksiyon,derece,değişken) şeklindedir. Fonksiyon ve değişken kısımlarına neler yazılması gerektiği limit() komutundan biliyoruz. Derece yerine ise fonksiyonun kaçıncı mertebeden türevinin olmaması gerektiği yazılmalıdır. Örnek olarak f(x) fonksiyonunun 2.mertebeden türevi hesaplanmak isteniyorsa komut satırına diff(f(x),2,x) yazılması yeterlidir. Matlab sonucu bize çıktı olarak gösterecektir.

Örnekler

    \[f(x)=7x^6+ 6x^5 + 10x^4 + 2x^2+ 1  \quad ise  \quad f'(x) = ?\]

INPUT:
>> syms x;
>> f = 7*(x^6) + 6*(x^5) + 10*(x^4) + 2*(x^2) + 1;
>> sonuc = diff(f,1,x);
>> sonuc
OUTPUT:
sonuc = 
42*x^5 + 30*x^4 + 40*x^3 + 4*x 

    \[f(x)=x^2tan(x)+cos^2(4x^2) \quad  ise  \quad f'(x) = ?\]

INPUT:
>>syms x;
>>f = (x^2)tan(x) + (cos(4(x^2)))^2;
>>sonuc = diff(f,1,x);
>>sonuc
OUTPUT:
>>sonuc =
>>2xtan(x) + x^2(tan(x)^2 + 1) - 16xcos(4x^2)sin(4x^2)    

    \[f(x)=e^xsin(5x) \quad  ise  \quad f^3(x) = ?\]

INPUT:
>>syms x;
>>f = exp(x)(sin(5x));
>>sonuc = diff(f,3,x);
>>sonuc
OUTPUT:
>>sonuc =
>>-110cos(5x)exp(x) - 74sin(5x)exp(x)         

    \[f(x)=\frac{1}{2+sin(2x)}\hspace{0.2 cm}ise\hspace{0.2 cm}f^2(x)=?\hspace{0.2 cm}ve\hspace{0.2 cm}x=5\hspace{0.2 cm}noktasındaki\hspace{0.2 cm}2. türevi\hspace{0.2 cm}nedir?\]

INPUT:
>>syms x;
>>f = (1)/(2 + sin(2x)); 
>>turevin_sonucu = diff(f,2,x);
>>sonuc = subs(turevin_sonucu,5);  %x = 5 noktasındaki 2.türevin sonucuna bakıyoruz.  
>>sonuc 
>>OUTPUT: 
>>sonuc =  (4sin(10))/(sin(10) + 2)^2 + (8*cos(10)^2)/(sin(10) + 2)^3       

Matlab’de İntegral

Matlab’de int() komutunu kullanarak herhangi bir integral probleminin çözümünü bulabiliriz. Bu komutun içerisine yazacağımız fonksiyonun değişkeninin yine önceki iki komut gibi sembolik nesne olarak tanımlanmış olması gerekir. int() komutu ile belirli veya belirsiz integraller çözdürülebilir. Eğer belirsiz integral çözmek istiyorsak int(fonksiyon) komutunu kullanmalıyız. Fakat belirli integral çözmek istiyorsak int(fonksiyon,başlangıç değeri,bitiş değeri) komutunu kullanmamız yeterlidir. Bazı durumlarda matlab integrali hesaplayamayabilir. Bu durumda quad() komutunu kullanarak integralin yaklaşık değerini hesaplayabiliriz.

Örnekler

    \[\int (3x^5+2x^2+1)dx\hspace{0.2 cm}integralini\hspace{0.2 cm}hesaplayınız.\]

INPUT:
>> syms x;
>> f = 3*(x^5) + 2*(x^2) + 1;
>> sonuc = int(f);
OUTPUT:
sonuc =
x^6/2 + (2*x^3)/3 + x 

    \[\int (x^2sin(x))dx\hspace{0.1 cm}integralini\hspace{0.1 cm}hesaplayınız.\]

INPUT:
>> syms x;
>> f = (x^2)*sin(x);
>> sonuc = int(f);
>> sonuc
OUTPUT:
sonuc =
2*x*sin(x) - cos(x)*(x^2 - 2) 

    \[\int_{0}^1 \frac{2}{2+3x}dx\hspace{0.1 cm}integralini\hspace{0.1 cm}hesaplayınız.\]

INPUT:
>>syms x;
>>f = (2)/(2 + 3*x);
>>sonuc = int(f,0,1);
>>sonuc
OUTPUT:
>>sonuc =
>>log(50^(1/3)/2)    

    \[\int_{0}^{\pi/2} sin^2(3x)cos(x)dx\hspace{0.1 cm}integralini\hspace{0.1 cm}hesaplayınız.\]

INPUT:
>>syms x;
>>f = ((sin(3x))^2)cos(x);
>>sonuc = int(f,0,pi/2);
>>sonuc
OUTPUT:
>>sonuc =
>>17/35    

Bu tip integral hesaplamalarının dışında iki katlı ya da üç katlı integraller hesaplanabilir.

Çok Katlı İntegraller

    \[\int_{a}^{b}\int_{b}^{a}f(x,y)dxdy\]

biçimindeki iki katlı integrali hesaplamak için int(int(f(x,y),x,c,d),y,a,b) komutunun kullanılması yeterlidir. Burada dikkat edilmesi gereken husus, integral probleminde hangi değişkene göre integral önce hesaplanması gerekiyorsa, int(f(x,y),x,c,d) komutunun değişkeni ve sınırları ona göre belirlenmelidir. Eğer integral problemi ilk y değişkenine göre hesaplanması gerekseydi, içerideki komut int(f(x,y),y,c,d) şeklinde olurdu. Benzer şekilde üç katlı

    \[\int_{a}^{b}\int_{c}^{d}\int_{e}^{f}f(x,y,z)dxdydz\]

integralini hesaplamak için int(int(int(f(x,y,z),x,e,f),y,c,d),z,a,b) komutunu kullanmamız gerekir.

Örnekler

    \[\int_{0}^{3}\int_{0}^{x/4}(x^2+y^2)dydx\hspace{0.1 cm}integralini\hspace{0.1 cm}hesaplayınız.\]

INPUT:
>>syms x y;
>>f = (x^2) + (y^2);
>>sonuc = int(int(f,y,0,x/4),x,0,3);
>>sonuc
OUTPUT:
>>sonuc =    
>>1323/256

    \[\int_{0}^{4}\int_{0}^{5}\int_{0}^{3}(x^2y^2z^2)dxdydz\hspace{0.1 cm}integralini\hspace{0.1 cm}hesaplayınız.\]

INPUT:
>>syms x y z;
>>f = (x^2)(y^2)(z^2);
>>sonuc = int(int(int(f,x,0,3),y,0,5),z,0,4);
>>sonuc
OUTPUT:
>>sonuc =    
>>8000

Bu şekilde matlab’de herhangi bir integral problemini hesaplayabiliriz. Son olarak diferansiyel denklem çözümlerinden bahsedip yazıyı sonlandıracağım.

Matlab’de Diferansiyel Denklemler

Limit, türev, integral gibi matematik, fizik ve mühendislik alanlarında önemli bir yere sahip olan diferansiyel denklemleri matlab üzerinde çözebilmek mümkündür. Bilinmeyen fonksiyonun bir bağımsız değişkene bağlı olduğu adi diferansiyel denklemleri çözmek için Dsolve() komutu kullanılabilir. Komut içerisindeki d/dt ifadesi ‘D’ ile temsil edilir. Dsolve komutunun kullanımı Dsolve(‘Diferansiyel denklem’,başlangıç koşulları) şeklindedir. Diferansiyel denklemin matlab’de temsili aşağıdaki gibidir:

    \[y' = Dy,    y'' = D2y,     y''' = D3y,    y'''' = D4y,  … ,  = Dny\]

Örnekler

    \[y'' - 6y' + 25y = 0\hspace{0.1 cm}diferansiyel\hspace{0.1 cm}denklemini\hspace{0.1 cm}çözünüz.\]

INPUT:
>>syms x y;
>>x=dsolve('D2y-6Dy+25y=0');
>>x
OUTPUT:
>>x =
>>C1cos(4t)exp(3t) + C2sin(4t)exp(3t)    

    \[y'' - y' - 2y = e^{4t}\hspace{0.1 cm}diferansiyel\hspace{0.1 cm}denklemini\hspace{0.1 cm}çözünüz.\]

INPUT:
>>syms x y t;
>>x=dsolve('D2y-Dy-2y=exp(4t)');
>>x
OUTPUT:
>>x =
>>exp(4t)/10 + C1exp(2t) + C2exp(-t)    

    \[y'' - 8y' + 2y + 1= t\hspace{0.1 cm}diferansiyel\hspace{0.1 cm}denklemini\hspace{0.1 cm}\hspace{0.1 cm}y(0) =0\hspace{0.1 cm}ve\hspace{0.1 cm}y'(0) = -1\]

    \[koşulları\hspace{0.1 cm}altında\hspace{0.1 cm}çözünüz\hspace{0.1 cm}ve\hspace{0.1 cm}grafiğini\hspace{0.1 cm}çiziniz.\]

INPUT:
>>syms x y t;
>>x=dsolve('D2y+8Dy+2y+1=t','y(0)=0','Dy(0)=-1'); 
>>x
>>ezplot(x)
OUTPUT:
>>x =
>>t/2 + exp(t(14^(1/2) - 4))((1714^(1/2))/56 + 5/4) + (14^(1/2)exp(-t(14^(1/2) + 4))(5*14^(1/2) - 17))/56 - 5/2    

MTLBI7J25966U28A3H

Matlab’de Polinom Tanımlama,Toplama,Çarpma ve Bölme İşlemleri

Bu yazıda Matlab’de polinomların nasıl tanımlandığını ve polinomlar üzerindeki işlemlerden bahsedeceğim.

Polinom Tanımlama

Polinom, belirli sayıda bağımsız değişken ve sabit sayıdan oluşan ifadelerdir. Matematik’te karşımıza sıklıkla çıkan polinomların özellikle kökünü bulma, toplama, çarpma, polinom bölmesi, grafik çizdirme gibi işlemlerini Matlab’de gerçekleşleştirebiliriz. Bunları yapabilmek için ilk önce polinomu tanımlamamız gerekir. Farz edelim ki,

P(x) =a x5 + b x4 + c x3 + d x2 + e x + f

gibi bir polinom olsun. Bu polinomu Matlab’de bağımsız değişkenlerin azalan kuvvetlerine göre katsayılarından oluşan satır vektörü ile tanımlayabiliriz. Açıklamak gerekirse, p = [a  b  c  d  e  f] şeklinde tanımlanır. Örnek olarak: P1(x) = a x5 + b x3 +c x2 + f  gibi bir polinom olsun. Fakat bu polinom Matlab’e  p1= [a  b  c  f] diye tanımlarsak, Matlab’ın anlayacağı polinom  a x3 + b x2 +c x + f  polinomu olur. Çünkü Matlab’de azalan kuvvetlerin sırasıyla katsayıları yazılarak polinom tanımlanır. Bu tarz durumlarda olmayan kuvvetlerin katsayısına satır vektöründe 0 (sıfır) yazılmalıdır. Böylece Matlab, o kuvvetin polinom içinde olmadığını anlar. P(x) polinomu doğru bir şekilde tanımlamak için:

   p1= [a   0   b    c   0   f]  yazmalıyız.

Bir polinomu Matlab’e bu şekilde tanımlanır. Şimdi tanımladığımız bir polinomun kökünü nasıl bulacağımıza bakalım. Bunun için roots( ) komutu kullanılmalıdır. Örneğin P(x) =  x2 –  x + 6  polinomuna bakalım. Öncelikle bu polinomu Matlab’a tanımlayalım. p = [1  -1  6] olarak tanımlayabiliz. roots( ) komutu ile bu polinomun kökleri aşağıdaki gibi bulunur.

INPUT:

>> p = [1  -1  6] 

OUTPUT:
    
 p =
     1    -1     6 INPUT: >> roots(p) OUTPUT: ans = 0.5000 + 2.3979i 0.5000 - 2.3979i
 

 

Toplama

P1(x) = 6 x3 + 5 x2 + 10 x + 4 ve P2(x) = 6 x3 + 5 x2 + 10 x + 4 gibi iki polinomu Matlab’de toplamak isteyelim. Bunun için herhangi bir komut kullanmamıza gerek yok. Öncelikle polinomları Matlab’de tanımlayalım. Ardından “ + ” operatörünü kullanarak iki polinomu toplayalım.

INPUT:

>>p1 = [6  5 10 4]

OUTPUT:

p1 =
      6     5    10     4 INPUT: >>p2 = [4 5 6 7] OUTPUT: p2 =     4     5     6     7 INPUT: >> toplama = p1+p2 OUTPUT: toplama =          10    10    16    11 
 

Bu iki polinom toplandığında sonuç olarak P3(x) = 10 x3 + 10 x2 + 16 x + 11 polinomunu elde ederiz. Burada dikkat etmemiz gereken husus ise topladığımız iki ya da daha fazla polinomun boyutlarının eşit olmasıdır.

Çarpma

Matlab’de polinom çarpımı yapmak için conv( ) komutunu kullanabiliriz. conv() komutu katsayılardan oluşan iki satır vektörünü çarparak elde edilen polinomun katsayılarını verir.

Örnek olarak P1(x) = 4 x2 + 2 x + 2 ve P2(x) = 3 x2 + 5 x + 4 polinomlarını Matlab’de çarpalım.

INPUT:

>> p1 = [4 0 2 2]

OUTPUT:

p1 =
     4     0     2     2 INPUT: >> p2 = [3 5 2] OUTPUT: p2 =     3     5     2 INPUT: >> carpma = conv(p1,p2) OUTPUT: carpma = 12 20 14 16 14 4 %Elde edilen polinom %12x5+20x4+14x3+16x2+14x+4
 

 

Bölme

Polinomal bölme yapmak için deconv( ) komutunu kullanabiliriz. Bunun için aşağıdaki komutu kullanılabiliriz:

[bölüm,kalan] = deconv(bölünen,bölen)

Örnek olarak P1(x) = 3 x2 + 4 x + 2 ve P2(x) = 2 x + 1 polinomları olsun. Polinom bölmesi aşağıda görüldüğü gibi yapılabilir:

INPUT:

>> p1 = [3 4 2]

OUTPUT:

p1 =
     3     4     2 INPUT: >> p2 = [2 1] OUTPUT: p2 =     2     1 INPUT: >> [bolum,kalan] = deconv(p1,p2) OUTPUT: bolum =         1.5000    1.2500 kalan =         0         0    0.7500
 

Bir polinomun köklerini hesaplamak için roots( ) komutunu kullanıyorduk. Bunun tersi olarakta kökleri verilen bir polinomun kendisinide bulabiliriz. Bunu yapabilmek için poly( ) komutunu kullanmamız gerekir. Katsayılarını bulmak istediğimiz polinomun köklerini satır vektörü olarak tanımlamalıyız. Bu satır vektörünü poly( ) fonksiyonuna girdiğimizde aradığımız polinomun katsayılarını elde etmiş oluruz. Örnek olarak -1 ve 1 köküne sahip polinomu elde etmeye çalışalım. Bu işlem aşağıdaki gibi olur:

INPUT:

>>kokler = [-1 1]

OUTPUT:

kokler =
         -1     1 INPUT: >>poly(kokler) OUTPUT: ans =      1     0    -1 %bulunan polinom x2 - 1 polinomu olur.
 

Değer Hesaplama

Bir polinomun içerisine bir değer (x=5 gibi) yazarak hesaplamayı biliyoruz. Fakat bu işlemi Matlab’de yapmak için polyval( ) komutunu kullanmamız gerekir. polyval( ) fonksiyonu ile elemanları verilen bir polinomun sonucunu hesaplayabiliriz. Örnek olarak x=2 için P(x) = x3 + 3 x2 + 6 x + 1 polinomunun sonucunu Matlab’de hesaplayalım. Bu hesaplama işlemi için aşağıdaki işlemler yapılabilir:

INPUT:

>> p = [3 6 1]

OUTPUT:

p =
    3     6     1 INPUT: >> polyval(p,2) OUTPUT: ans =      25
 

Bir sonraki yazıda sizlere Matlab’de polinomların türevlerinin hesaplanmasından ve denklem çözümünden bahsedeceğim.

MTLB9965Q9972BE5Z8