Commodore sayı 58, sayfa 21

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 21

RUN STOP tuşuna basın. Tahmin edeceğiniz gibi fonksiyonun çözümü eksiden artıya bu geçişin olduğu yerdedir. Ekranda X ve FN A(X)'in değerleri şöyle görünmelidir:

1.72999998 —7.10005499E-03 1.73999998 Yuvarlak değerlerle, FN A(1.73), —0.007'ye ve FN A(1.74)'de 0.028'e eşittir. Böylece bizim aradığımız X değerinin 1.73 ve 1.74 arasında yer aldığı görülür. Eğer iki basamağa kadar hassasiyet istiyorsak, 3'ün karekökünün 1.7 olduğunu söyleyebiliriz.

FN A(X) değerini işaret değiştirdiği zaman, 20. satırdaki STEP komutundan sonra gelen sayıyı değiştirerek istediğiniz hassasiyette sonuçlar elde edebilirsiniz. Bu problemde basit bir algoritma kullanılıyordu ve anlaşılması kolaydı. Sekant metodu, iterasyon işlemini hızlandırmak için özel yollara başvurur. Bu metodun teoriğini anlatmayacağız. Önerme aslında çok basittir, programa bakarak anlayabilirsiniz. Öncelikle X0 ve X'e başlangıç değerleri vermemiz gerekir. Bu iki değer birbirinden farklı olmak üzere her-

21 hangi iki sayı olabilir ama bu değerlere bağlı olarak işlemlerin hızı da değişecektir. 20. satırda 0 ve 1 değerleri seçilmektedir. İterasyonun döngüsü 80. satırda DELTA değerine bağlı olarak IF...THEN ifadesiyle yapılmaktadır. Eğer ABS (DELTA) değeri 0.0001'den küçükse döngüden çıkılır ve program biter. DELTA denen değer X'in şu andaki ve bir önceki değeri olan X1'e bağlı olarak değişmektedir ve hesabı şöyle yapılır: DELTA = (X — X0) / (1 — FN A(X0) / FN A(X)). 50. satırda X'in eski değeri X0'a atanır ve 60. satırda X'in yeni değeri DELTA'ya bağlı olarak hesaplanır. X = X — DELTA. 70. satırda ise X ve FN A(X) değerleri yazılır. Eğer her şey yolunda gidiyorsa DELTA sıfıra yaklaşır ve X'in değerinin azalması yavaşlar. FN A(X) değeri sıfıra yaklaştıkça X'in değeri de aranan kök değerine yaklaşır.

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