A416 Astronomide Sayısal Çözümleme - II

Slides:



Advertisements
Benzer bir sunumlar
Seramik Dental İmplantlar
Advertisements

BİYOGAZ HAZIRLAYANLAR : HAKAN DEMİRTAŞ
BÖLÜM 5 . KÜTLE BERNOULLI ENERJI DENKLEMİ
HAZIRLAYANLAR AYHAN ÇINLAR YUNUS BAYIR
Yeniliği Benimseyen Kategorilerinin Bütüncül ve Analitik Düşünme Açısından Farklılıkları: Akıllı Telefonlar için Bir İnceleme Prof. Dr. Bahtışen KAVAK,
Doç. Dr. Hatice Bakkaloğlu Ankara Üniversitesi
Newton’un Hareket Yasaları
19. VE 20. YÜZYILDA BİLİM.
Enerji Kaynakları-Bölüm 7
AKIŞKANLAR DİNAMİĞİ BÖLÜM 8 . BORULARDA AKIŞ.
İŞGÜCÜ PİYASASININ ANALİZİ
BRÜLÖR GAZ KONTROL HATTI (GAS TRAİN)
SES DONANIMLARI Ayşegül UFUK Saide TOSYALI
İŞLETİM SİSTEMİ İşletim Sistemi Nedir İşletim Sisteminin Görevleri
Tıbbi ve Aromatik Bitkilerin Hayvansal Üretimde Kullanımı
MUHASEBE YÖNETMELİĞİ KONFERANSI
Bu sitenin konusu kıyamete kadar hiç bitmeyecek
DUYUŞ VE DUYUŞSAL EĞİTİMİN TANIMI
ÇOCUKLARDA BRONŞİOLİT VE PNÖMONİ
Alien hand syndrome following corpus callosum infarction: A case report and review of the literature Department of Neurology and Radiology, Yantai Yuhuangding.
Parallel Dağılmış İşlemci (Parallel Distributed Processing)
TANJANT Q_MATRİS Aleyna ŞEN M. Hamza OYNAK DANIŞMAN : Gökhan KUZUOĞLU.
ADRESLEME YÖNTEMLERİ.
Diksiyon Ödevi Konu:Doğru ve etkili konuşmada
AZE201 ERKEN ÇOCUKLUKTA ÖZEL EĞİTİM (EÇÖE)
ÇUKUROVA ÜNİVERSİTESİ KARATAŞ TURİZM İŞLETMECİLİĞİ VE OTELCİLİK
EĞİTİMDE YENİ YÖNELİMLER
BAĞIMLILIK SÜRECİ Prof Dr Süheyla Ünal.
FACEBOOK KULLANIM DÜZEYİNİN TRAVMA SONRASI STRES BOZUKLUĞU, DEPRESYON VE SOSYODEMOGRAFİK DEĞİŞKENLER İLE İLİŞKİSİ  Psk. Asra Babayiğit.
BİLİŞİM TEKNOLOJİLERİ NEDİR?
PSİKO-SEKSÜEL (RUHSAL) PSİKO-SOSYAL
Sinir Dokusu Biyokimyası
Can, H. (1997). Organizasyon ve Yönetim.
Bölüm 9 OPERASYONEL MÜKEMMELİYETİ VE MÜŞTERİ YAKINLAŞMASINI BAŞARMA: KURUMSAL UYGULAMALAR VIDEO ÖRNEK OLAYLARI Örnek Olay 1: Sinosteel ERP Uygulamalarıyla.
ERGENLİKTE MADDE KULLANIMI
Şeyda GÜL, Fatih YAZICI, Mustafa SÖZBİLİR
MOL HESAPLARINDA KULLANILACAK BAZI KAVRAMLAR:
AKIŞKANLAR MEKANİĞİ 3. BASINÇ VE AKIŞKAN STATİĞİ
GAZLAR Yrd. Doç. Dr. Ahmet Emin ÖZTÜRK. GAZLAR Yrd. Doç. Dr. Ahmet Emin ÖZTÜRK.
Engellerin farkında mıyız?
CEZA MUHAKEMESİ HUKUKU
DİSİPLİN HUKUKU.
İZMİR.
ACİL YARDIM ve AFET YÖNETİMİ ÖĞRENCİLERİNİN KARAR VERME DÜZEYLERİ
Yazar:ZEYNEP CEREN YEŞİLYURT Danışman: YRD. DOÇ. DR
TEMEL MAKROEKONOMİ SORUNLARI VE POLİTİKA ARAÇLARI
IMPLEMENTATION OF SOME STOCK CONTROL METHODS USED IN BUSINESS LOGISTICS ON DISASTER LOGISTICS: T.R. THE PRIME MINISTRY DISASTER AND EMERGENCY MANAGEMENT.
Mikrodalga Sistemleri EEM 448
Örnekler Programlama Dillerine Giriş
Modülasyon Neden Gereklidir?
İSTATİSTİK II Hipotez Testleri 1.
4.BÖLÜM ÇAĞDAŞ BÜYÜME MODELLERİ
Ayçiçeği Neden Stratejik Ürün Olmalı?
Aydınlanma Işığın doğası ile ilgili bilgilerin tarihsel süreç içindeki değişimini farkeder. a. Dalga ve tanecik teorisinden bahsedilir,
Final Öncesi.
Sayısal Haberleşme.
ULUSLARARASI FİNANS.
Elektrik Enerjisi Üretimi, Dağılımı ve Depolanması
İÇ ORGANLARIN YAPISI VE İŞLEYİŞİ
DENK KUVVET SİSTEMLERİ
Dil Materyalleri ve Çalışmaları Doç. Dr. Müdriye YILDIZ BIÇAKÇI
Sosyal Bilimler Enstitüsü
Anlamsal Web, Anlamsal Web Dilleri ve Araçları
Hazırlayan; Görkem Baygın Yabancı Dil / M Şubesi 21 Maddede İngiliz Dili Edebiyatı Okumak Ne Demektir?
FURKAN EĞİTİM VAKFI TEFSİR USULÜNE GİRİŞ
BİN AYDAN DAHA HAYIRLI GECE KADİR GECESİ
Tarımsal nüfus ve tarımda istihdam
AKIŞKANLAR MEKANİĞİ 3. BASINÇ VE AKIŞKAN STATİĞİ
Emir ÖZTÜRK T.Ü. F.B.E. Bilg. Müh. A.B.D. Y.L. Semineri
Toplam Çıktı - Bir ekonomide belirli bir dönemde üretilen (arz edilen) toplam mal ve hizmet miktarıdır. Toplam Gelir - Belirli bir dönemde üretim faktörlerinin.
Sunum transkripti:

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