X — SOR (X) — 5 - 0 Böylece 10. satır: DEF FN A(X) - X — SOR (X) — 5 halini alır. İşte burada bir sorunla karşılaşıyoruz. Başlangıç de- ğerlerinde FN A(X) sıfıra eşit olduğundan 40. satırda sı- fıra bölme hatası ortaya çıkıyor. X0—0 ve X—3 olarak başlangıç değerlerini değiştir- sek bile başka bir sorunla karşılaşırız. X'in değeri bir süre sonra eksiye düşer ve 70. satırda ““Illegal Ouantity Error” verilir. Bunun sebebi eksi bir sayının karekökünün alın- maya çalışılmasıdır. Bu problemin üstesinden gelmek için Y değişkenini X'in karesi olarak tanımlamak yeterli ola- caktır: DEF FN A(Y) -Y 2—Y—> DEF komutunda bahsi geçen değişkenin ne olduğu hiç önemli değildir. Şu anda uğraştığımız değişken eskisinin karesi olduğu için beklediğimizden farklı bir sonuçla kar- şılaşmamız gayet normaldir. Bu sefer başarıya ulaşıyoruz. Denklemin kökü olarak, bilgisayar yaklaşık 2.7912874 cevabını verir. Bu sayı as- lında Y değeridir ve X değerini bulmak için karesini al- mamız gerekir. Problemin cevabı X — 7.7912874 olarak bulunur. Bu sonuç işlemi sağlamaktadır, sayının kare- kökü kendisinden 5 fazladır. Gerçekten kendinizi zorlamak istiyorsanız, kökü ken- disinden 5 az olan sayıyı arayın. Şimdi battınız işte. Bu problemde ortaya, reel ve imajiner kısımlarıyla, komp- leks sayılar çıkar. Aslında siz kompleks sayılarla başa çı- kabiliyorsanız iterasyon metodu sizi yolda bırakmayacak- tır. Ama böyle bir problemde gerçek bir kök olmadığı için bir sonuç elde edemezsiniz. Matematiksel iterasyon sanırım oldukça sıktı. Son bir örnekle bu konuyu kapatıyoruz. 10. satırdaki fonksiyo- nu şöyle değiştirin: DEF FN A(X) — SIN (X) Böylece X'in hangi değerlerinde SIN (X)'in 0'a eşit ol- duğunu bulabilirsiniz. Aslında bunun sonsuz sayıda çö- zümü vardır. Genel ifadeyse X — n * PI şeklindedir. Bu- rada n herhangi bir tamsayı, PI de yaklaşık 3.14 olarak bilinen sabittir. ; | İteratif Çözümler adlı programı X0 —0 ve X — 1 değer- leriyle başlatırsanız sıfıra bölme hatasıyla karşılaşırsınız. Bunun için 20. satırdaki değerleri X0 — 1 ve X -3 olarak değiştirin. Kök olarak X —3.14 kolayca bulunur. Daha önce de belirttiğimiz gibi başlangıç X değerlerinin işlem üzerinde büyük etkisi vardır. Örneğin X0 — 3 ve X —- 6 ola- rak verilen başlangıç değerleriyle program çalıştırıldığında sonuç 6.28 bulunur. Fonksiyonun bir taslağı size hangi başlangıç değerlerinin seçilmesi konusunda iyi bir fikir verebilir. Görsel İterasyon Bu kadar matematik yeter herhalde. Bu işin bir de sa- natsal yönü var demiştik. Çok basit bir program kulla- narak oldukça karmaşık şekiller elde edeceğiz. Progra- mın karışık görünmesi kullanılan sistemden değil Com- modore 64 ile grafik çizmeni zorluğundandır. Program ekranın üstünden altına doğru noktalar ko- yar ve bu işlem soldan sağa doğru gerçekleştirilir. Her noktanın arasında ne kadar boşluk bırakılacağı ise bizim vereceğimiz bir formüle göre hesaplanacaktır. Ekranın koordinat sistemi soldan sağa doğru 0—319, yukarıdan aşağı doğru da 0—199 arasında değerler ala- bilir. Dış X-döngüsü her dikey çizginin yatay pozisyo- nunu ve içerideki Y-döngüsü de, X'e bağlı olarak hesap- lanan S değerine bağlıdır ve bir sütuna koyulacak iki nok- tanın arasındaki mesafeyi hesaplar. Örneğin 40. satırdaki formülde S- X--1 yazarsak X —0'daki sütunda tüm noktalar birer aralıkla basılacak- tır. X—1 olduğunda noktalar ikişer aralıklarla koyula- cak ve X değeri arttıkça aralıklar da artacaktır. Böylece sütun sayısı 320'ye ulaşıncaya kadar bu işlem devam eder. Sonuç olarak S— X4 1 fonksiyonunun grafiği, nokta- ları arasındaki boşluklar artan çizgilerden oluşur, ama göz aldanarak bu noktaları yana doğru açılan eğik çizgi- ler olarak algılar. Şekil-1'deki sonucu (ve diğer simetrik grafikleri) elde etmek için, verilen ““İteratif Desenler”” adlı programda bazı değişiklikler yapmanız gerekir. Bunlar zaten prog- ramın listesinde görülmektedir: 66. satırdaki REM ko- mutunu ve yıldızları kaldırırsanız değişiklikler gerçekleş- miş olur. PROGRAM'ADI : IİTERATIF COZÜUMLER 00010 DEF FNA(X)sXuX-3 <O74> 00020 XO050:Xz<1 <245> 00040 :DELTAs#(X-XO)/(1-FNACXO)Y/FNACX)) <106> 00050 :XOzX 075> 00060 :X-#X-DELTA <096> 00070 :PRIİNT X,FNACX) <137> 00080 IF ABS(DELTA)>0.'0001 THEN 40 <123> 00090 END <092>