Bilimsel çalışmalarda hemen hemen her zaman karşımıza çıkan problemlerin analitik yöntemlerle çözülmesi ya çok zordur ya da -hatta çoğu kez- imkansızdır. Bu tip durumlarda pes etmek yerine sorunun sayısal analizle ve bilgisayarlarla çözümüne başvurmak icap eder. Antik çağlardan beri kullanılagelen sayısal analiz yöntemleri, bugün hem olgun hem de zengin bir durumdadır. Bu yöntemlerin implementasyonunda C dilini tercih ediyoruz; C özellikle de UNIX tabanlı işletim sistemleri için temel dil olduğundan makine ile uyumlu çalışır. Aynı zamanda Java, C++ veya C# gibi yüksek mertebeli dillerden, sadeliğinden dolayı, daha hızlıdır. Bu sayfada, derslerimde verdiğim ödevlerin çözümlerinde kullanılan C programları yüksek öğrenim camiasının istifadesine sunulmuştur.
Raphson Newton yinelemesi: Raphson Newton yineleme algoritması en eski kök bulma yöntemlerinden biridir. Bu algoritmada kökü aranan fonksiyon için tahmini bir kök, fonksiyonun ve türevinin değerlerini hesaplayan bir yöntem gerekir. Algoritma köke uzak başlangıç değerleri için dahi üstel hızla yakınsar ama köke yaklaşıldıkça bu hız yavaşlar. Aşağıdaki program yakınsama özellikleri ile birlikte kübik bir denklemin Raphson Newton tekniği ile çözümünü yapmaktadır. Programdaki newton fonksiyonunun modüler olduğuna ve başka denklemleri de hiç bir değişikliğe gerek kalmadan çözebileceğine dikkat ediniz.
C kodu: rn.c | toparlama komutu: gcc rn.c -lm | çıktı: rn_cikti
İki değişkenli Raphson Newton yinelemesi: Raphson Newton iterasyonunun iki değişkenli fonksiyonlara uygulamasında f(x,y) = 0 ve g(x,y) = 0 formunda iki bilinmeyenli iki denklem aynı anda çözülür.
C kodu: newton2.c | toparlama komutu: gcc newton2.c -lm | çıktı: newton2.txt
Cardano'nun yöntemi: Kübik denklemler ilk defa Cardano tarafından Ars Magna (Yüce Sanat) adlı kitapta çözülmüştür. Bu yöntem, verilen bir kübik denklemin üç karmaşık kökünü de hiç bir kestirmede bulunmadan kesin bir şekilde hesaplar.
C++ kodu: cardano.cpp | toparlama komutu: gcc cardano.cpp | çıktı: card.txt
Telefon rehberi yöntemi: Verilen bir aralıkta bir fonksiyon işaret değiştirmişse, o zaman o aralıkta fonksiyonun en az bir kök vardır. Telefon rehberi yöntemi bu teoremi kullanır ve aralıkları sürekli ikiye bölerek kökü daha da küçük aralıklara sıkıştırır. Yötemin yakınsama hızı, aralıklar sürekli ikiye bölündüğünden, üsteldir. Lakin yöntemin bel kemiği olan teorem bir yeterlilik ifadesidir ve gereklilik ifadesi değildir. Dolayısıyla telefon rehberi yönteminde çift sayıda kök olan aralıklar ıskalanır ve tek sayıda kök olan aralıklarda da sadece bir kök rapor edilir.
C kodu: rehber.c | toparlama komutu: gcc rehber.c -lm | çıktı: rehber.cikti
beyaz kitapdiye de tabir edilen Kernighan ve Ritchie'nin yazdıkları The C Programming Language adlı kitabı tavsiye ediyorum. Bu kitabın yazarları aynı zamanda C dilini ve UNIX işletim sistemini tasarlamışlardır. Beyaz kitabın Türkçe tercümesi de mevcuttur.