Araştırma Bölümü
Naval Ordnance Test Station
China Lake, Calif.
Giriş
Bu raporda, genel biçimi
[ Y = A{f(\alpha, \beta, x) + e\,g(\alpha, \beta, x)} + C ]
olan bir transandantal fonksiyon kullanarak n noktaya en küçük kareler uyumunu elde etmek için bir yöntem sunulmaktadır. Burada A, B ve C doğrusal parametrelerdir; (\alpha) ve (\beta) ise doğrusal olmayan parametrelerdir. Verilen herhangi bir fonksiyon, sıfır ile üç arasında doğrusal parametreye, sıfır ile iki arasında doğrusal olmayan parametreye ve her biri bağımsız değişkeni içeren bir ya da iki ayrı terime sahip olabilir. Yöntemin, alt program biçiminde kodlanmış olan kendisi kullanılmadan önce, fonksiyondaki her bir terimi hesaplamak için gereken programlamanın yapılması yeterlidir.
Alt programın kullanımı kolaydır ve doğrusal olmayan parametreler içeren fonksiyonlar için, ilk kestirimlerin doğru tahminler olmasının gerekli olmadığı bir arama tekniğinden yararlanır. Tüm kareler toplamları ve çapraz çarpımlar, sabit noktalı çift duyarlıklı aritmetikle hesaplanır; bu, uyuma karşı yüksek derecede bir hassasiyet sağlar ve çoğu durumda bağımsız değişkenin ölçeklenmesi gereğini ortadan kaldırır.
Tartışma
Başlangıç
Basitlikleri ve esneklikleri nedeniyle polinomlar kullanılarak oldukça fazla eğri uydurma yapılmaktadır ve hesaplama tesislerinde, kullanılacak polinomun derecesi belirtilerek bu problemleri baştan sona ele alabilen standart programlar bulunmaktadır. Bununla birlikte bilimde, ilişkinin bir transandantal fonksiyon tarafından temsil edilmesinin beklendiği ve çoğu durumda değişkenlerin fonksiyonlarını yeni değişkenler olarak ele almak suretiyle daha basit bir biçime indirgenemeyen çok sayıda doğrusal olmayan ilişki vardır.
Bu fonksiyonların bir nokta kümesine uydurulması problemi, polinomların uydurulması problemine kıyasla hiç de basit değildir ve yalnızca zahmetli sayısal yöntemlerle çözülebilir. En sık uygulanan yöntemlerden biri En Küçük Kareler Diferansiyel Düzeltme Yöntemi’dir ve bir fonksiyon birkaç doğrusal olmayan parametre içerdiğinde en yararlı olanıdır. Yöntem, genel amaçlı bir program kullanılarak yüksek hızlı bir bilgisayara uygulandığında, öncelikle verilen fonksiyonun ve her bir parametreye göre kısmi türevlerin hesaplanması için gerekli program adımlarının kodlanması gerekir.
Ayrıca, normal en küçük kareler denklemlerinin doğrusallaştırılmasında Taylor serisi açılımı kullanılırken birinci dereceden daha yüksek terimler ihmal edildiğinden, her bir parametre için iyi başlangıç tahminleri kullanılmalıdır. Bu tür eğri uydurma için ideal program, kullanıcıdan ek bir kodlama gerektirmeyen bir program olurdu; ancak bunun, olanaksız olmasa bile, pratik olmadığı açıktır.
Şimdi yalnızca iki veya daha az doğrusal olmayan parametre, üç veya daha az doğrusal parametre ve bir ya da iki ayrı terim içeren transandantal fonksiyonlar sınıfını ele alalım. Eğri uydurma açısından bu fonksiyonlar sınıfı yaygın olarak kullanılmaktadır. Bu nedenle, kullanıcı tarafından yapılan kodlamanın, hesaplama süresinin ve parametrelerin yakından tahmin edilmesi gerekliliğinin diğer yöntemlere kıyasla önemli ölçüde azaltılabildiği, bu sınıfa uygulanabilir bir eğri uydurma yöntemi arzu edilir görünmüştür.
Yöntemin Genel Özellikleri
Genel transandantal fonksiyona geri dönelim
[ Y = A{f(\alpha, \beta, x) + e\,g(\alpha, \beta, x)} + C ]
Şöyle tanımlayalım:
[ v = f(\alpha, \beta, x), \quad w = g(\alpha, \beta, x) ]
Buna göre
[ Y = Av + Bw + C ]
(\alpha) ve (\beta)’nın sabit olduğu varsayılırsa, artık kareler toplamı yalnızca A, B ve C olmak üzere üç parametrenin bir fonksiyonu olacaktır. Bu fonksiyon G(A, B, C) ile gösterilirse, normal denklemler G’nin üç kısmi türevinin sıfıra eşitlenmesiyle elde edilebilir. Normal denklemlerin çözülmesiyle A, B ve C değerleri bulunur ve bunlar artık kareler toplamını hesaplamak için kullanılabilir.
İki yönlü bir arama tekniği uygulanarak yeni (\alpha) ve (\beta) değerleri seçilir ve artık kareler toplamı bir minimuma yakınsayıncaya kadar hesaplamalar tekrarlanır. Dikkat edilmelidir ki, ne Y’nin doğrusal olmayan parametrelere göre kısmi türevlerine ne de doğrusal parametreler için tahminlere gerek duyulmuştur. Bu yöntemin gerekçesi, deneme-yanılma çözümlerine göre modern bilgisayarların hızından yararlanarak bu kısmi türevlerin ortadan kaldırılabilmesidir.
Arama tekniği, (\alpha) ve (\beta) hakkında her biri için alt ve üst sınırlar atanabilecek kadar bilgi bulunduğunu varsayar. İlk kullanılan değerler, bu alt ve üst sınırların tam ortasında yer alan değerler olacaktır. İlk kareler toplamı elde edildikten sonra, başlangıç değerleri (\alpha_1) ve (\beta_1) sırasıyla (\alpha_2) ve (\beta_2) olarak değiştirilir; burada
[ \alpha_2 = \alpha_1 + \Delta\alpha, \quad \beta_2 = \beta_1 + \Delta\beta ]
Artıkların kareler toplamının ikinci bir değeri hesaplanır ve birincisiyle karşılaştırılır. Bu noktadan sonra aramanın mantığı aşağıdaki örnekle en iyi şekilde açıklanır.
Aşama i’deki artıkların kareler toplamı (R_i) olsun (bkz. sayfa 18’deki Şekil 1).
- Eğer (R_2 \le R_1) ise, aynı yönde devam edilir.
- Eğer (R_1 < R_2) ise, aşağıdaki şekilde yön tersine çevrilir:
[ \alpha_2 = \alpha_1 - \Delta\alpha, \quad \beta_2 = \beta_1 - \Delta\beta ]
Birincisinin doğru olduğu varsayılırsa, (R_3) hesaplanır ve (R_2) ile karşılaştırılır. Eğer (R_3 \le R_2) ise, aynı yönde devam edilir. Eğer (R_2 < R_3) ise, arama mantığı (R_2 < R_1) olduğunu hatırlar; dolayısıyla denetim, eğri uydurma alt yordamına
[ \alpha = \alpha_1 + \Delta\alpha, \quad \beta = \beta_1 - \Delta\beta ]
şeklinde talimat verir.
Şimdi, eğer (R_4 \le R_2) ise, (R_5) hesaplanır. Ayrıca, (R_5 < R_4) ise (R_6) da hesaplanır. Eğer (R_7) hesaplanır ve (R_8 < R_5) olursa, arama G(A, B, C) fonksiyonunun, (\alpha)’nın ((\alpha_1 + \Delta\alpha)) ile ((\alpha_1 + 4\Delta\alpha)) arasında bir değere ve (\beta)’nın (\beta_1) ile ((\beta_1 + 2\Delta\beta)) arasında bir değere eşit olduğu durumda bir minimuma sahip olduğu sonucuna varır.
Daha sonra, önceden hesaplanmış R değerleri karşılaştırılarak yeni sınırlar içinde yeni bir başlangıç noktası seçilir; başlangıç deltaları azaltılır ve aramaya devam edilir. Bu süreç, (\alpha) ve (\beta) için tatmin edici değerler belirleninceye kadar tekrarlanır.
Başlangıçta (\alpha) ve (\beta) için kötü değerler kullanıldığında, arama tekniğinin sahte bir minimuma yakınsamasının oldukça olası olduğu vurgulanmalıdır. Bu, iyi başlangıç değerlerinin mutlaka kullanılması gerektiği anlamına gelmez; bunun yerine, mevcut en iyi değerlerin kullanılması gerektiğini ifade eder. Sahte minimumlar, hesaplanan bir parametrenin, aynı parametrenin deneysel olarak elde edilen bir tahmininden önemli ölçüde farklı olması durumunda belirgin hale gelir.
IBM 701 Hesaplayıcısına Uygulama
Yöntem IBM 701 Hesaplayıcısı için kodlanırken alt yordamlar ve programlar kavramları kullanılmıştır. Muhtemelen bu makalenin başlığında “alt yordam” yerine “alt yordam programı” terimi kullanılmalıydı. Ancak yöntem, fonksiyonların kendileri açıkça tanımlanmadığında bile genel bir transandantal fonksiyon sınıfını bir nokta kümesine uydurmak için kullanılabildiğinden, alt yordam terimi daha uygun görünmektedir.
701’e herkesin aşina olmadığı varsayıldığında, alt yordamın belirli bir eğri uydurma problemine nasıl uygulandığını ayrıntılara girmeden tam olarak açıklamak zordur. Bununla birlikte, işlemin genel bir tanımı, alt yordam kullanıldığında çok az çaba gerektiğini gösterecektir.
Başlangıç olarak, yalnızca v ve w’nin hesaplanması için gerekli talimatların kodlanması gerekir. Hesaplamalarda kullanılan herhangi bir alt yordam için bellek alanı mevcuttur ve kodlayıcı, (\alpha), (\beta) ve x’in üç belirli konumda bulunduğunu varsayar. Kodlama ile eğri uydurma alt yordamı arasındaki bağlantı 21 temel talimatla sağlanır. Bu talimatlar aynı zamanda, alt yordama tüm veri, değişken, sabit ve parametreler için ondalık noktanın atanmasında tam esneklik sağlayan bilgileri de içerir.
Talimatlar ve varsa alt yordamlar daha sonra bir montaj programı aracılığıyla makine diline dönüştürülür. Kodlamanın tamamlanması için gereken süre, kullanılan fonksiyona bağlı olarak değişir. Aşağıdaki eğrinin uydurulmasında
[ Y = Ae^{-\alpha x} + Bx^2 + C ]
kodlama süresi yaklaşık 30 dakika olacaktır.
Kodlamadan sonra bir kontrol kartı hazırlanır ve x ve y gözlemleri standart bir giriş kartı formu kullanılarak kartlara delinir.
Ek Özellikler
Alt yordamın önemli bir işlevi, kareler ve çapraz çarpımlar toplamlarını içeren normal en küçük kareler denklemlerinin tüm katsayılarının sabit nokta çift hassasiyetli aritmetik kullanılarak hesaplanmasıdır. Böylece, anlamlı basamaklar kaybedilmeden hesaplamalarda büyük sayılar taşınabilir. Ayrıca, yalnızca doğrusal parametrelerin çözümünde gerekli olan terimler hesaplanır. Bu açıklamayı netleştirmek için, verilen bir fonksiyonda C parametresinin eksik olduğunu varsayalım; bu durumda, A ve B’nin çözümünde kullanılmadıkları için (\sum v_i^2) ve (\sum v_i) terimleri hesaplanmaz.
Bir çözüme ulaşıldığında, parametreler, özgün x ve y değerleri, hesaplanan y değerleri, artıkların kareleri ve artıkların kareler toplamı yazdırılır. Ek bir özellik, hesaplamalar sırasında herhangi bir zamanda parametrelerin ve artıkların kareler toplamının yazdırılmasına olanak tanır. Bu özellik, bir fonksiyonda doğrusal olmayan parametreler bulunduğunda kullanılır ve matematikçinin aramanın ilerleyişini izlemesini mümkün kılar.
Tüm giriş ve çıkış işlevlerinin eğri uydurma alt yordamına dahil olduğu açıkça belirtilmelidir. Ayrıca, kodlayıcı veya 701 tarafından yapılan hataları tanıyacak çeşitli yerleşik denetim düzenekleri bulunmaktadır.
Zamanlama İstatistikleri
Eğri uydurma alt yordamı kullanılarak elde edilen aşağıdaki örnek zamanlama istatistikleri, alt yordamın hesaplama süresi açısından değerlendirilmesini en iyi şekilde sağlayabilir.
Verilen
[ Y = A \log x + Bx + C ]
fonksiyonu için N = 100 ve
[ 10 \le x \le 10{,}000, \quad 500 \le y \le 1200 ]
Bu fonksiyonda doğrusal olmayan parametre bulunmadığından, arama tekniği göz ardı edilmiş ve A, B ve C için normal denklemler çözülmüştür. Gerçek hesaplama süresi 3 saniye iken, verilerin okunması ve sonuçların yazdırılması yaklaşık 54 saniye sürmüştür. Aynı fonksiyon, her biri 10 noktadan oluşan 189 veri kümesiyle kullanılmış ve kart okuma, hesaplama ve yazdırma için toplam süre 23 dakika olmuştur.
Verilen
[ Y = Ae^{-\alpha x} + C ]
fonksiyonu için N = 16 ve
[ 0 < e^x \le 5, ]
(\Delta\alpha)’nın üç kez 10’a bölünmesi,
(\Delta\alpha = 0.2),
[ 0.05 \le x \le 1.4, \quad 0.1 \le y \le 0.3 ]
Yukarıdaki fonksiyon, tek yönlü bir arama gerektirmiştir
. Otomasyon
ve toplam hesaplama süresi yaklaşık 1½ saniye olmuştur.
Verilen
y = A e^(−αx²) + C
(1 + c x²)^p
bu fonksiyon, tek üstel fonksiyonla aynı veriler kullanılarak
α = 0.78,
β = 0.60 (= 0.5)
c = 0.8
Δr = 0.010
değerleriyle uygulanmıştır.
İki yönlü arama uygulandığında toplam hesaplama süresi 12 saniye olmuştur; ancak hem α hem de p için ilk tahminler olağanüstü derecede iyi çıkmıştır. α ve β için “kötü” başlangıç değerleri kullanıldığında, hesaplama süresi 40 saniyeye yükselmiştir.
Verilen
y = A e^(−αx) + B e^(−βx) + C
fonksiyonu için N = 25 ve 0 ≤ α ≤ 1, 0 ≤ β ≤ 2,
A₀α = 0.025, Aᵣ = 0.05
0 ≤ x ≤ 24,
25 ≤ y ≤ 130
Bu fonksiyon, belirli koşullar altında, ikinci dereceden bir diferansiyel ısı akışı denkleminin bir çözümüdür. Sıcaklık y, zaman x’in bir fonksiyonudur.
Eğri uydurma işlemi için hesaplama süresi, α ve β’nin başlangıç tahminlerine bağlı olarak 30 ile 90 saniye arasında değişmiştir. Bu özel fonksiyon için α son derece hassas olup, hem α₁ hem de A₀α için kötü tahminler bazen sahte çözümlerle sonuçlanmıştır. Ayrıca minimum, dik duvarlı bir oluk içinde gibi görünmekteydi ve bazı durumlarda arama, deltaları küçültmeden önce oluğun tabanına yakınsamış, daha sonra oluğun boyunca devam etmesi gerektiğini fark ettiğinde ise deltalar hızlı yakınsama için çok küçük kalmıştır.
Özet
Özetle, eğri uydurma yöntemi, artıkların kareler toplamını minimize eden bir arama tekniğinden yararlanarak, genel bir transandantal fonksiyon sınıfı kullanıp n noktaya en küçük kareler uyumunu elde eder. Yüksek hızlı bir bilgisayar gerektiren bu yöntem, alt yordam biçiminde kodlanmış ve IBM 701 Hesaplayıcısı üzerinde başarıyla kullanılmıştır.
Alt yordam kullanıldığında, uydurulacak fonksiyon henüz tanımlanmamışken bir eğri uydurma problemi için genel bir çözüm sunduğundan, alt yordamdan bağımsız belirli bir miktar kodlama gereklidir. Ancak bu kodlama en aza indirilmiştir; çünkü yöntem, doğrusal olmayan parametrelere göre kısmi türev alma gerekliliğini ortadan kaldırır. Doğrusal parametreler için tahminler gerekli değildir, ancak doğrusal olmayan parametreler için alt ve üst sınırların verilmesi gerekir.
Tüm hesaplamalar, 701’in sabit nokta hesaplamalarında çok daha hızlı çalışması nedeniyle, tek hassasiyetli veya çift hassasiyetli sabit nokta aritmetiği kullanılarak yapılmaktadır.
Son olarak, alt yordamın genel bir eğri uydurma problemleri sınıfını çözme yeteneğine sahip olduğu ve aynı zamanda bunların çözümünde normalde harcanan çabayı azalttığı düşünülmektedir.