A416 Astronomide Sayısal Çözümleme - II 4. Eğri Uyumlama ve Regresyon Analizi
Eğri Uyumlama Trend Analizi İnterpolasyon ve Ekstrapolasyon Hipotez testi Chapra (2004)
Biraz Temel İstatistik… Merkezi Eğilim Ölçütleri Aritmetik Ortalama Medyan Mod Dağılım Ölçütleri Standart Sapma Varyans Değişim Katsayısı Noktadan noktaya dağılım 𝑖=1 𝑖=𝑛−1 𝑦 𝑖+1 − 𝑦 𝑖 ) 2 2𝑁−1
Lineer Regresyon Minimizasyon Stratejileri : En uzak noktanın uzaklığı
Katsayıların Hataları Lineer Regresyon ve Katsayıların Hataları 𝜀 𝑎 1 = 𝑛 𝑦 𝑖 2 − 𝑦 𝑖 ) 2 − 𝑎 1 2 𝑛 𝑥 𝑖 2 − 𝑥 𝑖 ) 2 𝑛−2)(𝑛 𝑥 𝑖 2 − 𝑥 𝑖 ) 2 𝜀 𝑎 0 = 𝜀 𝑎 1 2 𝑥 𝑖 2 𝑛
Lineer Regresyon Örnek : Bir roketin hızına karşılık maruz kaldığı hava direnci yandaki grafikte ve aşağıdaki çizelgede verilmiştir. En küçük kareler yöntemiyle en uygun doğru uyumlamasını yapınız.
Lineer Regresyon Bu doğru bu veri setine yapılabilecek en iyi (“the best”) doğru uyumlamasıdır.
Tahmin üzerindeki standart hata Lineer Regresyon Tahmin üzerindeki standart hata Regresyon katsayısı
Lineer Regresyon Örnek : Standart Sapma Tahmin Üzerindeki Standart Hata Regresyon Katsayısı Yani, veriyi lineer bir modelle temsil etmenin getirdiği iyileştirme bu düzeydedir. Bir başka deyişle, veri üzerindeki belirsizliğin %88.05’i lineer modelle açıklanabilmektedir!
Regresyon Katsayısına Dikkat! y = 3 + 0.5x lineer uyumlaması için regresyon katsayısı eşit 4 farklı veri seti (Anscombe 1973) Ders : Verinizi neyin daha iyi temsil edeceğini görmek istiyorsanız program çıktılarının yanı sıra grafiğe de mutlaka bakın!
Lineer Olmayan İlişkilerin Lineerleştirilmesi
Lineer Olmayan İlişkilerin Lineerleştirilmesi Örnek :
Lineer Olmayan İlişkilerin Lineerleştirilmesi
Polinom Regresyonu
Polinom Regresyonu 𝑥 𝑖 𝑥 𝑖 𝑎 0 𝑦 𝑖 𝑛 𝑥 𝑖 𝑥 𝑖 2 𝑥 𝑖 𝑥 𝑖 2 𝑥 𝑖 3 = 𝑥 𝑖 2 𝑥 𝑖 𝑥 𝑖 2 𝑥 𝑖 3 = 𝑥 𝑖 𝑦 𝑖 𝑎 1 𝑥 𝑖 2 𝑥 𝑖 3 𝑥 𝑖 4 𝑎 2 𝑥 𝑖 2 𝑦 𝑖
Bu ifade için standart hata : Polinom Regresyonu Bu ifadeyi genelleştirelim... 𝑥 𝑖 𝑥 𝑖 2 𝑦 𝑖 𝑛 𝑥 𝑖 𝑚 𝑎 0 ... ... ... 𝑥 𝑖 𝑥 𝑖 2 𝑥 𝑖 3 𝑥 𝑖 𝑚+1 = 𝑥 𝑖 𝑦 𝑖 𝑎 1 ... ... ... 𝑥 𝑖 2 𝑦 𝑖 𝑥 𝑖 2 𝑥 𝑖 3 𝑥 𝑖 4 𝑥 𝑖 𝑚+2 𝑎 2 ... ... ... 𝑆 𝑟 = 𝑦 𝑖 − 𝑎 0 − 𝑎 1 𝑥− 𝑎 2 𝑥 2 −...− 𝑎 𝑚 𝑥 𝑚 ) 2 𝑥 𝑖 𝑥 𝑖 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 𝑥 𝑖 𝑚 𝑥 𝑖 𝑚+1 𝑥 𝑖 𝑚+2 𝑥 𝑖 2𝑚 𝑎 𝑚 𝑥 𝑖 𝑚 𝑦 𝑖 Bu ifade için standart hata :
Polinom Regresyonu Örnek : 𝑥 𝑖 𝑥 𝑖 2 𝑎 0 𝑦 𝑖 𝑛 𝑥 𝑖 𝑥 𝑖 2 𝑥 𝑖 3 = 2. dereceden bir polinomla modellemek istiyor olalım. 𝑥 𝑖 𝑥 𝑖 2 𝑎 0 𝑦 𝑖 𝑛 𝑥 𝑖 𝑥 𝑖 2 𝑥 𝑖 3 = 𝑥 𝑖 𝑦 𝑖 𝑎 1 𝑥 𝑖 2 𝑥 𝑖 3 𝑥 𝑖 4 𝑎 2 𝑥 𝑖 2 𝑦 𝑖 Yani, verideki belirsizliğin %99.851’i 2. dereceden bir polinom modeliyle temsil edilebiliyor!
Polinom Regresyonu Örnek (devam) : Regresyon katsayısı :
Çok Değişkenli Lineer Regresyon
Çok değişkenli Lineer Regresyon
Çok Değişkenli Lineer Regresyon Örnek : Çok değişkenli bir lineer model arıyor olalım.
Çok Değişkenli Lineer Regresyon Bu ifadeyi genelleştirelim... 𝑥 1,𝑖 𝑥 2,𝑖 𝑎 0 𝑦 𝑖 𝑛 𝑥 𝑚,𝑖 ... ... ... 𝑥 1,𝑖 𝑥 1,𝑖 2 𝑥 1,𝑖 𝑥 2,𝑖 = 𝑥 1,𝑖 𝑦 𝑖 𝑥 1,𝑖 𝑥 𝑚,𝑖 𝑎 1 ... ... ... 𝑥 2,𝑖 𝑥 1,𝑖 𝑥 2,𝑖 𝑥 2,𝑖 2 𝑥 2,𝑖 𝑥 𝑚,𝑖 𝑎 2 𝑥 2,𝑖 𝑦 𝑖 ... ... ... 𝑆 𝑟 = 𝑦 𝑖 − 𝑎 0 − 𝑎 1 𝑥 1 − 𝑎 2 𝑥 2 −...− 𝑎 𝑚 𝑥 𝑚 ) 2 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 𝑥 𝑚,𝑖 𝑥 1,𝑖 𝑥 𝑚,𝑖 𝑥 2,𝑖 𝑥 𝑚,𝑖 𝑥 𝑚,𝑖 2 𝑎 𝑚 𝑥 𝑚,𝑖 𝑦 𝑖 Bu ifade için standart hata : Lineer olmayan bazı ifadeleri yine lineer hale getirebiliriz :
En Küçük Kareler Yöntemi (Genel) 𝑧 0 =1, 𝑧 1 = 𝑥 1 , 𝑧 2 = 𝑧 3 =...= 𝑧 𝑚 =0 Lineer Regresyon 𝑧 0 =1, 𝑧 1 = 𝑥 1 , 𝑧 2 = 𝑥 2 ,..., 𝑧 𝑚 = 𝑥 𝑚 Çok Değişkenli Lineer Regresyon 𝑧 0 =1, 𝑧 1 =𝑥, 𝑧 2 = 𝑥 2 ,..., 𝑧 𝑚 = 𝑥 𝑚 Polinom Regresyonu minimize edilirse
En Küçük Kareler Yöntemi (Genel) ŷi : En küçük kareler yöntemiyle belirlenen değer ỹ : Aritmetik ortalama Tüm durumlar için standart hata :
numpy.polyfit ve numpy.poly1d Metodları ile Doğru Uyumlama Basit bir doğru uyumlama örneği ile başlayalım. >>> import matplotlib.pyplot as plt >>> import numpy as np >>> x = [-7.3, -4.1, -1.7, -0.02564, 1.5, 4.5, 9.1] >>> y = [-0.8, -0.5, -0.2, 0.0, 0.2, 0.5, 0.8] >>> katsayilar = np.polyfit(x, y, 1) # Sondaki 1 dogru uyumlamasıini gosterir >>> katsayilar array([ 0.10160693, -0.02865838]) # dogrunun katsayilari >>> dogru = np.poly1d(katsayilar) >>> dogru poly1d([ 0.10160693, -0.02865838]) >>> y_dogru = dogru(x) >>> plt.plot(x,y,'ro') >>> plt.plot(x,y_dogru, 'b-') >>> plt.show()
numpy.polyfit ve numpy.poly1d Metodları ile Doğru Uyumlama 6. dereceden bir polinom uyumlamasıyla devam edelim. >>> import matplotlib.pyplot as plt >>> import numpy as np >>> x = [2.53240, 1.91110, 1.18430, 0.95784, 0.33158,-0.19506, -0.82144, -1.64770, -1.87450, -2.2010] >>> y = [-2.50400, -1.62600, -1.17600, -0.87400, -0.64900, -0.477000, -0.33400, -0.20600, -0.10100, -0.00600] >>> katsayilar = np.polyfit(x, y, 6) # Sondaki 6 polinomun derecesini gosterir >>> polinom_6 = np.poly1d(katsayilar) >>> x_polinom6 = np.arange(-2.2, 2.6, 0.1) >>> y_polinom6= polinom_6(x_polinom6) >>> plt.plot(x,y,'ro') >>> plt.plot(x_polinom6, y_polinom6, 'b-') >>> plt.show()
Fermi Gamma Işını Teleskobu ile M82 Gözlemleri Örnek 1 : Astronomlar, Fermi Gamma Işını Teleskobu’nu kullanarak, 12 milyon ışık yılı uzaklıktaki M82’nin önemli bir gamma ışını kaynağı olduğunu keşfettiler. Yapılan araştırmalar bu cismin, aktif çekirdekli mini bir kuasar olduğunu ortaya koydu. Aşağıda bu cisimden alınan gamma ışınlarının MeV cinsinden enerjisine karşılık santimetrekareye 1 saniyede ulaşan sayısı verilmektedir. M82 için algılanan gamma ışını şiddeti ile sayısı arasındaki ilişkiyi en küçük kareler yöntemi ile bulunuz. Bu sonuca dayanarak 20000 MeV için saniyede santimetrekareye düşen gamma parçacığı sayısı için bir kestirimde bulununuz. x (MeV) F (x) 407.38 1.94984E-06 1122.02 2.0893E-06 4466.84 7.07946E-07 1047128.55 2.0893E-07 1288249.55 1.90546E-07 2089296.13 1.38038E-07
Örnek 1: Çözüm Ders03_ornek_kodlar/ornek1.cozum.py x = 20000 MeV icin F(x) = 6.29457255588e-07
Küresel Isınmanın Ciddiyeti Örnek 2 : Karbondioksit seviyesinde 1960'dan bu yanaki değişim Keeling Eğrisi adı verilen bir eğriyle ifade edililr. Söz konusu değişim küresel ısınmaya neden olduğu gerekçesiyle endişe konusudur. Aşağıda 1960'dan bu yana geçen süre içerisinde onar yıllık ölçüm sonuçları milyon parçacık başına verilmiştir. Keeling Eğrisinin bir parabolle (2. dereceden bir polinomla) temsil edilebileceğini düşünerek ve eldeki veriyi kullanarak eğriye en uygun formülü bulunuz. Keeling Eğrisi yapısını korursa 2060 yılı sonunda parçacık başına kaç karbondioksit molekülü düşer hesaplayınız.
Örnek 2: Çözüm Ders03_ornek_kodlar/ornek2.cozum.py >>> import matplotlib.pyplot as plt >>> import numpy as np >>> x = np.array([ 0., 10., 20., 30., 40., 50.]) >>> y = np.array([317, 326, 338, 354, 369, 390]) >>> pol2ks = np.polyfit(x,y,2) >>> pol2 = np.poly1d(pol2ks) >>> xyeni = np.linspace(0,100,101) >>> yfit = pol2(xyeni) >>> plt.plot(x+1960,y,'ro',xyeni+1960,yfit,'b-',[2060],[pol2(100.)],"m*") >>> plt.xlabel('Yil') >>> plt.ylabel('n (CO$_{2}$) / Milyon Parcacik') >>> plt.title('Yil - CO$_{2}$ Bollugu') >>> plt.xlim((1950,2070)) >>> plt.show()
Levenberg-Marquardt Algoritması Doğrusal Olmayan En Küçük Kareler Yöntemi Matematik ve bilgisayar bilimlerinde Levenberg-Marquardt Algoritması (LMA), sönümlenmiş en küçük kareler yöntemi (Damped Least Squares, DLS) olarak da bilinir. m adet gözlemsel veriyi n tane bilinmeyenle modellemek üzere başlangıçta doğrusal bir model üretilip, modelin iterasyonlar sonucu iyileştirilerek doğrusal olmayan bir modelle değiştirilmesi prensibine dayanır. (x0, y0), (x1, y1), (x2, y2), … , (xm, ym) gözlemsel noktalarımız olsun. Bu noktaları f(x, β) gibi bir fonksiyonla fit etmek istiyor olalım. Burada m ≥ n olmak üzere β = (β0, β1, … , βn) fonksiyonun parametreleridir ve fonksiyon x ile birlikte bu parametrelere de bağlıdır. Algoritmada amaç en küçük kareler yöntemine benzer şekilde en küçük artıkları verecek S = Σri2 minimizasyonunun gerçekleşeceği β parametrelerini elde etmektir (ri = yi – f(xi, β)). Tıpkı en küçük kareler yönteminde olduğu gibi yine S'in bu kez βj (j = 0, 1, 2, … , n) 'e göre türevleri alınır ve 0'a eşitlenir. Doğrusal olmayan bir sistemde bu türevler hem x'e hem de β'ya bağlı olacağından doğrudan çözüm elde etmek yerine probleme uygun seçilmiş başlangıç parametreleri ile başlanır (β'lara başlangıç değerleri verilir) ve iteratif bir yaklaşımla her seferinde S hesaplanıp, daha öncekilerle ile karşılaştırılarak en küçük S'yi verecek parametre seti aranır. β her seferinde β + δ ile değiştirilir. δ'yı bulmak için f(xi, β + δ) doğrusallaştırmak üzere Taylor serisine açılır (f(xi, β + δ) ≈ f(xi, β ) + Jiδ, Ji: Jakobiyen). S'in β'ya görevi türevi 0 olduğunda S( β + δ) ≈ Σri2 = Σ (yi – f(xi, β) – Jiδ)2 toplamının δ'ya göre türevi de 0 olmalıdır ki minimizasyon sağlanmış olsun. Vektörel notasyonla (J T J) δ = JT |(yi – f(β)| denklemi δ için çözülür ve β parametreleri bulunur. Levenberg'in algoritmaya getirdiği yenilik bir sönümleme (damping) parametresi eklemiş olmasıdır. Böylece denklem (J T J + λI) δ = JT |(yi – f(β)| şeklini alır. Sönümleme parametresi λ her bir iterasyon adımında değiştirilir ve β + δ 'nın belirenen bir tolerans değerinin altına indiği anda iterasyon durdurulur. En son β vektörü fonksiyonun parametrelerini verir.
scipy.optimize.leastsq ile Levenberg-Marquardt Algoritması Kullanarak Fit Ders03_ornek_kodlar/leastsq_ornek.py x = [1.0,2.5,3.5,4.0,1.1,1.8,2.2,3.7] y = [6.008,15.722,27.130,33.772,5.257,9.549,11.098,28.828] veri setine Levenberg-Marquardt algoritmasıyla bir doğru bir de Parabol fit etmek istiyor olalım. Yapmamız gereken leastsq fonksiyonuna gözlemsel x,y değerleri ile hesaplananlar arasındaki hatayı veren bir HataFonksiyonu, birer başlangıç parametre seti (a0 + a1 x doğrusu için β = (β0, β1) = (a0, a1) parametreleri, a0 + a1 x + a2x2 parabolü için β = (β0, β1, β2) = (a0, a1, a2) parametreleri olarak sırasıyla (1.0, 2.0) ve (1.0, 2.0, 3.0)), ve veri setimizi (args = (x,y)) argümanlarını vermektir. Levenberg-Marquardt algoritması bu parametreler için en iyi değerleri hesaplar ve bu parametreleri doğru ve parabol denklemlerinde yerine koyarak fitlerimizi elde etmiş oluruz.
scipy. optimize. optimization scipy.optimize.optimization.curve_fit ile Levenberg-Marquardt Algoritması Kullanarak Fit Ders03_ornek_kodlar/curvefit_ornek.py x = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0] y = [0.1, 0.9, 2.2, 2.8, 3.9, 5.1] veri setine Levenberg-Marquardt algoritmasıyla bir parabol fit etmek istiyor olalım. Bu kez yapmamız gereken curve_fit fonksiyonuna gözlemsel x,y değerlerinin yanı sıra bir hata fonksiyonu yerine doğrudan fit fonksiyonu, ve başlangıç parametre seti (a0 + a1 x + a2x2 parabolü için β = (β0, β1, β2) = (a0, a1, a2) parametreleri olarak (0.0, 0.0, 0.0)) ve istersek gözlemsel hatalarımızı (sigma) vermektir. Levenberg-Marquardt algoritması bu parametreler için en iyi değerleri hesaplar ve bu parametreleri parabol denkleminde yerine koyarak fitimizi elde etmiş oluruz.
Levenberg-Marquardt Algoritması İle İgili Uyarılar Algoritma verilen başlangıç parametrelerine en yakın yerel minimumu bulması nedeniyle dezavantajlıdır. Bir süre benzer (ya da yakın) değerler alan fonksiyonlarda minimizasyon konusunda problemlidir (bu noktalarda zig-zag yapar!). Bazı durumlarda (başlangıç parametrelerinin çözüme yakınlığı) oldukça hızlı çalışırken, bazı durumlarda en iyi fiti verecek parametreleri bulmak konusunda oldukça yavaş olabilir. Örnek: curvefit_ornek2.py
Daha sofistike bir çözüm: LMFIT (1/3) LMFIT, scipy.optimize modülü üzerine kurulu ve onun optimizasyon ve eğri uyumlama yeteneklerini daha ileriye taşıyan bir paket. İndirmek ve kurmak için: http://cars9.uchicago.edu/software/python/lmfit/installation.html#installation Örnek: Gözlemsel Veriye Gauss Fiti Uyumlaması (lmfit_ornek_gauss.py) Bu örneği scipy.optimize.curve_fit fonksiyonu ile kolayca çözebiliriz. >>> from numpy import random, sqrt, pi, exp, linspace >>> from scipy.optimize import curve_fit >>> def gauss(x, genlik, ortalama, stsapma): ... return genlik*exp(-(x-ortalama)**2/stsapma) >>> x = linspace(-10, 10) >>> y = gauss(x, 2.33, 0.21, 1.51) + random.normal(0, 0.2, len(x)) >>> baslangicPar = [1, 0, 1] >>> params, kovaryans = curve_fit(gauss, x, y, p0 = baslangicPar) >>> params Array([ 2.13646343, 0.20518047, 1.70299407]) >>> x2 = linspace(-10,10,100) >>> yfit = params[0]*exp(-(x2 – params[1])**2/params[2]) >>> plt.plot(x,y,'ro',x2,yfit,'b-') >>> plt.show() Ancak bu durumda LMFIT paketinin getirdiği bazı özelliklerden mahrum kalırız. Bunlardan biri LMFIT'in sağladığı Model metodudur. Bu metodun ürettiği modelin parametrelerinin sırasını bilmeniz gerekmez, adlarını bilmeniz yeterlidir.
Daha sofistike bir çözüm: LMFIT (2/3) Aşağıdaki kodla tanınmlanan gmod modeli bağımsız değişkenin (x) ve model parametrelerinin (genlik, ortalama, stsapma) adlarını bilmektedir >>> from lmfit import Model >>> gmod = Model(gauss) >>> gmod.param_names ['genlik','ortalama','stsapma'] >>> gmod.independent_vars ['x'] Model oluşturulduğunda parametreler oluşmaz. Bu sırada model parametrelerin ve bağımsız değişkenin adını bilir ancak verinizin ne uzunlukta olduğundan ve ölçeğinden habersizdir. Dolayısıyla bu parametrelerin oluşuturlması ve başlangıç değerlerinin atanmış olması icap eder. make_params() fonksiyonu bu işte size yardımcı olur. >>> params = gmod.make_params('ortalama' = 5, 'genlik' = 200, stsapma = 1) Modelin metotlarından eval() modeli çalıştırırken, fit() metodu ise modeli verilen veri setine uyumlar. >>> x = linspace(0, 10, 201) >>> y = gmod.eval(x=x, genlik=10, ortalama=6.2, stsapme=0.75) >>> sonuc = gmod.fit(y, x=x, genlik=5, ortalama=5, stsapma=1) >>> plt.plot(x, sonuc.init_fit, 'k--') >>> plt.plot(x, sonuc.best_fit, 'r-') >>> plt.show()
Daha sofistike bir çözüm: LMFIT (3/3) Kodumuzu birleştirip (lmfit_ornek_gauss.py) çalıştıralım. from numpy import sqrt, pi, exp, linspace, random from scipy.optimize import curve_fit from matplotlib import pyplot as plt # scipy.optimize.curve_fit ile cozum def gauss(x, genlik, ortalama, stsapma): return genlik * exp(-(x - ortalama)**2 /stsapma) x = linspace(-10,10) # Genligi 2.33, ortalama degeri 0.21, standart sapmasi 1.51 olan # bir Gaussian dagilim olusturup uzerine yine Gaussian bir gurultu ekleyelim A = 2.33 mu = 0.21 sigma = 1.51 y = gauss(x, A, mu, sigma) + random.normal(0, 0.2, len(x)) gmod = Model(gauss) # Modelimizi x, y verimize fit edelim sonuc = gmod.fit(y, x=x, genlik=2, ortalama=0, stsapma=1) print sonuc.fit_report() # Baslangic parametrelerimizle olusan fiti # Fit islemi sonrasi olusan en iyi uyumlamayi # ve verimizi bir grafikte gosterelim plt.plot(x, y, 'ro') # veri plt.plot(x, sonuc.init_fit, 'b--') # A=2, mu=0, sigma=1 icin fit plt.plot(x, sonuc.best_fit, 'g-') # Veri setine uyumlanan en iyi fit plt.show() # Fitimizin parametrelerini ekrana yazdiralim print "En iyi uyumlamanin genligi = %.2f, ortalama degeri = %.2f, "\ "st.sapma = %.2f" % (sonuc.params['genlik'].value,\ sonuc.params['ortalama'].value,\ sonuc.params['stsapma'].value)
[[Model]] Model(gauss) [[Fit Statistics]] # function evals = 23 # data points = 50 # variables = 3 chi-square = 1.467 reduced chi-square = 0.031 Akaike info crit = -167.349 Bayesian info crit = -161.613 [[Variables]] genlik: 2.19270401 +/- 0.111165 (5.07%) (init= 2) ortalama: 0.09067167 +/- 0.051070 (56.32%) (init= 0) stsapma: 1.52227546 +/- 0.178216 (11.71%) (init= 1) [[Correlations]] (unreported correlations are < 0.100) C(genlik, stsapma) = -0.577 En iyi uyumlamanin genligi = 2.19, ortalama degeri = 0.09, st.sapma = 1.52
Ödev 4 :Uzaklık Modülü Teslim Tarihi: 8 Mayıs 2017, Pazartesi Yanda bir grup yıldız için görsel parlaklıkları ile mutlak parlaklıkları arasındaki farka karşılık uzaklıkları bir tablo halinde verilmiştir. Bu tablodan yararlanarak uzaklık modülünü (görsel parlaklık ile mutlak parlaklık arasındaki farkın uzaklığa ne şekilde bağlı olduğunu) gözlemsel (empirik) olarak bulunuz. Bu ifadeyi teorik uzaklık modeli ile karşılaştırınız. Bulduğunuz ifadeyi d= 20 pc uzaklığındaki bir yıldızın mutlak ve görsel parlaklıkları arasındaki farkı hesaplamak üzere kullanınız. Bulduğunuz değer üzerindeki bağıl hatayı hesaplayınız. Not 1:. Sorunun Python programlama dilini kullanarak çözülmesi mecburidir! Not 2:. Nasıl bir fonksiyon aradığınıza ve onu nasıl ifade edeceğinize bağlı olarak linear uyumlama ya da logaritmik uyumlama yapmakta serbestsiniz. Not 3:. Programınız ekrana bulduğunuz ilişkinin parametreleri (a0,a1,korelasyon katsayisi, modelle gozlenen noktalar arasindaki farklarin kareleri toplami (Sr) ,standart hata) çıktısı vermelidir. Not 4: Sonuçta bulduğunuz eğriyi, gözlemsel noktaları ve d =20 pc için uyulamanızdan bulduğunuz değeri bir grafik üzerinde gösteriniz. Yıldız m – M (kadir) d (pc) Antares -6.15 170 Sirius 2.89 3 Castor -0.96 16 Pollux -0.08 10 Polaris -5.61 133 Vega 0.57 7 Deneb -8.18 430 Altair 1.45 5 Rigel -7.12 264 Betelgeuse -5.92 153
Kaynaklar Numerical Analysis Using Matlab and Excel 3rd ed., Steven T. Karris, Orchard Publications, 2007 Numerical Methods for Engineers 6th ed., Steven C. Chapra, Raymond P. Canale, McGraw Hill, 2010 Numerical Methods, Rao V. Dukkipati, New Age International, 2010