Program Döküm Eki sayı 58, sayfa 27

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 27

yerleştirilirken önce polar forma çevriliyor. Polar formdaki bir sayının gereken kuvveti kolayca alındıktan sonra tekrar rectangular forma geri dönüyoruz. Bu işlemler sırasında yapılan yuvarlatmalar, recursive eşitlikteki o türevle bölümenin sonsuz değil ama çok büyük bir sayı çıkmasını sağlıyor. Böylece bizde kökten oldukça uzaklara sıçramış bulunuyoruz. Buradan tekrar bir köke yaklaşma başlıyor ve kökü daha uzun bir zaman sonra buluyoruz. İlk kökü bulduktan sonra, buna r diyelim, program orijinal polinomu x-r'e böler. Böylece polinomun derecesi bir azalır ve son kök bulununcaya kadar yukarıdaki işlemlere tekrar başlanır.

Program karmaşık sayı olan kökleri de bulabilmektedir. Orijinal polinomun katsayıları karmaşık sayı olabilir. En fazla 10. dereceden olan polinomların köklerini bulabilirsiniz. Öte yandan, işlemlerdeki çözünürlüğün sınırlı olması nedeniyle fonksiyonun tam sıfır olduğu noktayı bulamıyoruz. İşte bunun için programda bir hassasiyet derecesi tanımlanmıştır. Örneğin hassasiyet derecesi 1E-6 demek, fonksiyonun kökü kabul edilen sayı için aldığı değerin 1E-6 sayısından küçük olması kabul edilebilir demektir. Hassasiyeti ne kadar küçük tutarsanız sonuç o kadar hassas olur ama çok küçültmemeye de dikkat etmeliyiz. Çünkü eğer hassasiyeti çok küçük seçersek, örneğin 1E-12, C-64 hiçbir zaman fonksiyonda yerine koyduğu zaman bu sayıdan ufak sonuç verecek kökü bulamayabilir. Bu durumda bilgisayar sonsuz döngüye girecek ve sıfır noktasının etrafında bir o yana, bir bu yana gidip gelecek ama asla istenilen hassasiyete ulaşamayacaktır. Bu durumu engellemek için programı durdurup, daha düşük bir hassasiyet vererek yeniden çalıştırmalısınız.

Örnek: (x+2-j2)x(x+2+j2)x(x-3)x(x+1.25)=0

Programı denemek için, önce kökleri yukarıdaki gibi çarpan halinde yazalım ki programın bulduğu kökleri karşılaştırabilelim. Eğer parantezleri açarsak aşağıdaki polinomu elde ederiz:

x 4+2.25xx3-2.75xx 2-29xx-30=0

Şimdi programı çalıştıralım. Program ilk önce bizden polinomun derecesini isteyecektir. Örneğimizdeki polinomun derecesi 4. Daha sonra hassasiyet derecesini vermeliyiz. Bunu 1E-6 olarak bırakalım (açıkladığı değeri budur). Daha sonra x'in en yüksek kuvvetinden başlayarak sıraya polinomun katsayıları verilir. Katsayıları verirken önce real kısmı daha sonra da sanal kısmı veriyoruz. İlk sayıyı birbirinden virgülle ayırarak da verebilirsiniz. Son katsayı da verildikten sonra program çözüme başlayacaktır. 25 saniye sonra aşağıdaki sonuçları alırız:

-1.25+j(-9.30497235E-10) -2+j(-2) 3+j(2.01920614E-09) -2+j(2)

Dikkat edilirse, real kısmı 3 ve -1.25 olan köklerin, aslında da olmaması gereken çok küçük sanal kısımların da var. Bir de hassasiyeti 1E-3 yapıp deneyin. Bu sefer sonuçlar daha az kesin olacaktır. İşlemlerinizde buna dikkat etmelisiniz.

Klavyeyle gezinmek için ← ve → tuşları.