14 Mart 2011 Pazartesi

Matlab'da Kompleks Sayılar

Herkese Merhabalar,
  Şimdi diyeceksiniz ki ne gerek var böyle şeylere, ancak demeyin öyle! İlerleyen zamanlarda göreceğimiz teorileri anlayabilmek ve simule edebilmek için kompleks sayılar ve matrisleri kısaca hatırlayacağız. Bu yazımda kompleks sayılar ve Matlab da ilgili fonksiyonlar üzerinde duracağım. Matrisler ise bir sonraki konu...

   Hepimizin bildiği gibi matematikte i karakteri kök içinde -1 e eşittir. Ancak bu yazımda  i yerine daha çok j yi kullanacağım. Aslında bu j başka bir değerle çarpıldığında (vektörle çarpıldığında) saat yönünün tersinde 90 derece dönmesine sebep olur. Aşağıdaki şekil üzerinden anlamaya çalışalım. 



Şekilde görüldüğü gibi A vektörü x ekseninin pozitif kısmında bulunmaktadır. A vektörünü her j ile çarpışımızda saat yönünün tersinde 90 derece dönmektedir. Hatırlayacağınız gibi x eksenine reel kısım, y eksenine ise imajiner kısım diyoruz. Bu durumda eğer A=a+jb şeklinde bir vektörümüz olursa a=Re{A} ve b=Im{A} olacaktır. Kompleks sayılar üzerinde toplama ve çıkarma yaparken reel kısımlar ve imajiner kısımlar birbirleriyle toplanır veya çıkarılır, yani reel kısımlarla imajiner kısımlar arasında işlem yapılmaz. Aşağıdaki şekilde bu durum gösterilmiştir.

Kompleks sayılar çarpılırken ise dağılma özelliği esas alınır.

Bir kompleks sayının hatırlayacağınız üzere birde eşleniği bulunmaktadır.
a
+jb şeklinde bir kompleks sayının eşleniği
a-jb şeklindedir. Matlabda eşlenik almak için conj() fonksiyonunu kullanırız.
 Eşleniği alınan bir kompleks sayının reel kısmının yönü sabit kalıp, imajiner kısmı 180 derece ters döner. Kompleks sayılar için bölme işleminde ise paydada ki kompleks değerin eşleniği alınır ve hem pay hemde payda bu değer ile çarpılır. A=a+jb kompleks sayısını, B=c+jd sayısına bölme işlemi aşağıda ki gibidir.


Şimdi gelelim kompleks sayıların üstsel(eksponansiyel) ve polar formda gösterimlerine. Aşağıdaki şekilde ki gösterime hatırlayacağınız gibi Euler açılımı diyoruz. 

 Eğer bu kompleks sayıları C ile gösterdiğimiz bir sabitle çarparsak şu şekli alır;

Yukarıda ki eşitlik bir kompleks sayıyı temsil etsin ve bu sayıya a+jb diyelim. Bu durumda

 şeklinde olacaktır. Bu durumda a = Ccosθ ve b = Csinθ olacaktır. Reel ve imajiner kısımdaki sayıların karelerini alır ve toplarsak


bu kompleks sayının genliğini bulmuş oluruz. b yi a ya oranladığımızda ise  


kompleks sayımızın açısını elde ederiz. Sonuç olarak diktörtgensel formdan üstsel forma geçiş için;


üstsel formdan dikdörtgensel forma geçmek için;


eşitliklerini kullanırız. Polar formda gösterim biçimi ise;
şeklindedir. Ayrıca unutulmaması gereken bir nokta ise açıyı hesaplarken her zaman pozitif x eksenini referans olarak alırız. 
   
Şimdi bir örnekle bu öğrendiklerimizi Matlab da nasıl uygulayabiliriz onu anlamaya çalışalım. y=-1+j2 kompleks sayısını reel ve imajiner eksende ifade edersek aşağıdaki şekilde ki gibi bir sonuç elde ederiz.
Burada kök 5 değeri y vektörünün genlik değerini gösterirken 116.6 derece ise x ekseninin pozitif kısmı referans alınması durumunda açısını gösterir.  Matlab da bir komplek sayının genliğini bulmak için abs() açısını bulmak için angle() fonksiyonunu kullanırız. Burada unutulmaması gereken Matlab ın angle() fonksiyonu ile hesapladığı değer derece değil radyan cinsindendir. Dolayısıyla sonucu derece cinsinden görmek için angle(y)*180/pi şeklinde kullanmalıdır. Aşağıda Matlab örneği gösterilmiştir.

Hiç yorum yok :