A416 Astronomide Sayısal Çözümleme - II. 4. Eğri Uyumlama ve Regresyon Analizi

Benzer belgeler
A416 Astronomide Sayısal Çözümleme - II. 3. Eğri Uyumlama ve Regresyon Analizi

AST415 Astronomide Sayısal Çözümleme - I. 7. Grafik Çizimi

MAK 210 SAYISAL ANALİZ

Örnek. Aşağıdaki veri setlerindeki X ve Y veri çiftlerini kullanarak herbir durumda X=1,5 için Y nin hangi değerleri alacağını hesaplayınız.

Kübik Spline lar/cubic Splines

Sayısal Yöntemler (MFGE 301) Ders Detayları

SAYISAL ÇÖZÜMLEME Yrd. Doç. Dr. Adnan SONDAŞ Sayısal Çözümleme

1. Hafta SAYISAL ANALİZE GİRİŞ

MAK 210 SAYISAL ANALİZ

Matris Cebiriyle Çoklu Regresyon Modeli

SAYISAL ANALİZ. Doç. Dr. Cüneyt BAYILMIŞ. Sayısal Analiz. Doç.Dr. Cüneyt BAYILMIŞ

3. TAHMİN En Küçük Kareler (EKK) Yöntemi 1

2. REGRESYON ANALİZİNİN TEMEL KAVRAMLARI Tanım

4. HAFTA BLM323 SAYISAL ANALİZ. Okt. Yasin ORTAKCI.

İÇİNDEKİLER 1. GİRİŞ...

DENİZ HARP OKULU TEMEL BİLİMLER BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

İÇİNDEKİLER. BÖLÜM 1 Değişkenler ve Grafikler 1. BÖLÜM 2 Frekans Dağılımları 37

ÇEV 2006 Mühendislik Matematiği (Sayısal Analiz) DEÜ Çevre Mühendisliği Bölümü Doç.Dr. Alper ELÇĐ

HATA VE HATA KAYNAKLARI...

İÇİNDEKİLER ÖN SÖZ...

Okut. Yüksel YURTAY. İletişim : (264) Sayısal Analiz. Giriş.

MAK 210 SAYISAL ANALİZ

Elemanter fonksiyonlarla yaklaşım ve hata

AST416 Astronomide Sayısal Çözümleme - II. 6. Monte Carlo

Elektrik ve Elektronik Mühendisliğinde Sayısal Yöntemler (EE 506) Ders Detayları

1. Hafta Uygulama Soruları

DENİZ HARP OKULU TEMEL BİLİMLER BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Öğr. Elemanı: Dr. Mustafa Cumhur AKBULUT

YÖNEYLEM ARAŞTIRMASI - III

İstatistik ve Olasılık

SAYISAL ÇÖZÜMLEME. Yrd.Doç.Dr.Esra Tunç Görmüş. 1.Hafta

Tek Değişkenli Optimizasyon OPTİMİZASYON. Gradient Tabanlı Yöntemler. Bisection (İkiye Bölme) Yöntemi

Doğrusal Denklemler Sis./Sys. of Linear Equations

Yrd. Doç. Dr. A. Burak İNNER

MAK 210 SAYISAL ANALİZ

KORELASYON VE REGRESYON ANALİZİ. Doç. Dr. Bahar TAŞDELEN

Karar ağaçları overfitting e karşı çok hassastır. Birkaç alternatif karar ağacı oluşturulur ve sonuçta oylama yapılarak karar verilir.

ÖĞRENME ALANI TEMEL MATEMATİK BÖLÜM TÜREV. ALT ÖĞRENME ALANLARI 1) Türev 2) Türev Uygulamaları TÜREV

Çok değişkenli fonksiyonlar. Maksimum- Minimum

Sayısal Yöntemler (COMPE 350) Ders Detayları

8.Hafta. Değişkenlik Ölçüleri. Öğr.Gör.Muhsin ÇELİK. Uygun değişkenlik ölçüsünü hesaplayıp yorumlayabilecek,

Mesleki Terminoloji. Sayısal Analiz DERSİ VEREN: ARŞ. GRV. DR. GÖKSEL BİRİCİK MEHMET EMRE ÖNDER DOĞAÇ CEM İŞOĞLU

ALTIN ORAN ARAMA (GOLDEN SECTION SEARCH) METODU

Yrd. Doç. Dr. A. Burak İNNER

SAYISAL ÇÖZÜMLEME. Sayısal Çözümleme

(m+2) +5<0. 7/m+3 + EŞİTSİZLİKLER A. TANIM

MAK 210 SAYISAL ANALİZ

11. HAFTA BLM323 SAYISAL ANALİZ. Okt. Yasin ORTAKCI.

Mat Matematik II / Calculus II

SEK Tahmincilerinin Türetilmesi. SEK Tahmincilerinin Türetilmesi. Ekonometri 1 Konu 8 Sürüm 2,0 (Ekim 2011)

EM302 Yöneylem Araştırması 2 Çok değişkenli DOP ların çözümü. Dr. Özgür Kabak

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: MMM 2014

EM302 Yöneylem Araştırması 2 Doğrusal Olmayan Programlamaya Giriş. Dr. Özgür Kabak

Altın Oran Arama Metodu(Golden Search)

AST416 Astronomide Sayısal Çözümleme - II. 0. Derse Giriş

MAK 210 SAYISAL ANALİZ

3 KESİKLİ RASSAL DEĞİŞKENLER VE OLASILIK DAĞILIMLARI

12. HAFTA BLM323 SAYISAL ANALİZ. Okt. Yasin ORTAKCI.

LYS MATEMATİK DENEME - 1

MAK1010 MAKİNE MÜHENDİSLİĞİ BİLGİSAYAR UYGULAMALARI

OPTİMİZASYON TEKNİKLERİ. Kısıtsız Optimizasyon

Gözlemlerin Referans Elipsoid Yüzüne İndirgenmesi

TEMEL İSTATİSTİKİ KAVRAMLAR YRD. DOÇ. DR. İBRAHİM ÇÜTCÜ

İstatistik Nedir? İstatistiğin Önemi Nedir? Tanımlayıcı ve Çıkarımcı İstatistik ttitik Tanımlayıcı İstatistik Türleri Çıkarımcı İstatistiğin i iği

10. HAFTA BLM323 SAYISAL ANALİZ. Okt. Yasin ORTAKCI.

Üç Boyutlu Uzayda Koordinat sistemi

BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI. Kafkas Üniversitesi Mühendislik Fakültesi

ÖZEL EGE LİSESİ EGE BÖLGESİ OKULLAR ARASI 16. MATEMATİK YARIŞMASI 10. SINIF ELEME SINAVI TEST SORULARI

Meslek lisesi ve devlet lisesine giden N tane öğrenci olduğu ve bunların yıllık okul harcamalarına ait verilerin olduğu varsayılsın.

HOMOGEN OLMAYAN DENKLEMLER

Doç. Dr. Metin Özdemir Çukurova Üniversitesi

Jeodezide Yaklaşım Yöntemleri: Enterpolasyon ve Kollokasyon

Genel olarak test istatistikleri. Merkezi Eğilim (Yığılma) Ölçüleri Dağılım (Yayılma) Ölçüleri. olmak üzere 2 grupta incelenebilir.

2012 LYS MATEMATİK SORU VE ÇÖZÜMLERİ Niyazi Kurtoğlu

Merkezi Eğilim ve Dağılım Ölçüleri

QUANTILE REGRESYON * Quantile Regression



Math 322 Diferensiyel Denklemler Ders Notları 2012

EŞİTLİK KISITLI TÜREVLİ YÖNTEMLER

13. Olasılık Dağılımlar

ortalama ve ˆ ˆ, j 0,1,..., k

REGRESYON ANALİZİ VE UYGULAMA. Yrd. Doç. Dr. Hidayet Takcı

SÜREKLİ OLASILIK DAĞILIŞLARI

Şekilde görülen integralin hesaplanmasında, fonksiyonun her verilen bir noktası için kümülatif alan hesabı yapılır.

Mühendislikte Sayısal Çözüm Yöntemleri NÜMERİK ANALİZ. Prof. Dr. İbrahim UZUN

CHAPTER 6 SIMPLE LINEAR REGRESSION

EME 3117 SİSTEM SIMÜLASYONU. Girdi Analizi. Özet İstatistikler ve Histogram (Minitab)(1) Örnek: Eczane İçin Servis Süreleri

Çalışma Soruları 1. a) x > 5 b) y < -3 c) xy > 0 d) x 3 < y e) (x-2) 2 + y 2 > 1. ( ) 2x

Şekil 23.1: Düzlemsel bölgenin alanı

ÖZEL EGE LİSESİ 10. OKULLARARASI MATEMATİK YARIŞMASI 10. SINIFLAR SORULARI

Lys x 2 + y 2 = (6k) 2. (x 2k) 2 + y 2 = (2k 5) 2 olduğuna göre x 2 y 2 =? Cevap: 14k 2

2. BASİT DOĞRUSAL REGRESYON 12

Optimizasyona Giriş (MFGE 412) Ders Detayları

Proje Adı: Sonlu Bir Aritmetik Dizinin Terimlerinin Kuvvetleri Toplamının İndirgeme Bağıntısıyla Bulunması.

OLASILIK ve KURAMSAL DAĞILIMLAR

Parametrik doğru denklemleri 1

MATLAB DA SAYISAL ANALİZ DOÇ. DR. ERSAN KABALCI

matematik LYS SORU BANKASI KONU ÖZETLERİ KONU ALT BÖLÜM TESTLERİ GERİ BESLEME TESTLERİ Süleyman ERTEKİN Öğrenci Kitaplığı

Rastgele Değişkenlerin Dağılımları. Mühendislikte İstatistik Yöntemler

Transkript:

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 i=n 1 i=1 ( y i+1 y i )2 2 N 1

Lineer Regresyon Minimizasyon Stratejileri : En uzak noktanın uzaklığı

Lineer Regresyon ve Katsayıların Hataları εa = 1 (n y i ( y i ) 2 a 1 (n x i ( x i )2 )) 2 2 2 (n 2)( n x i ( x i ) ) 2 2 ε a = εa 0 2 1 xi n 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.

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 xi xi2 a0 xi3 a1 xi2 xi3 xi4 a2 n xi xi x i 2 yi = xi yi xi2 yi

Polinom Regresyonu Bu ifadeyi genelleştirelim... n xi xi3 xi2 xi3 xi4 xi x 2 xi m 2 S r =( y i a0 a1 x a 2 x a m x ) xi2 i 2 yi xim a0 x i m+1 a1 x i m+2 a2 xi2 yi = xi yi x i m x i m+1 x i m+2 Bu ifade için standart hata : x i 2m am xim yi

Polinom Regresyonu Örnek : 2. dereceden bir polinomla modellemek istiyor olalım. xi xi2 a0 xi3 a1 xi2 xi3 xi4 a2 n xi x i 2 yi = xi yi xi2 yi 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... n x1,i x1,i x 2 S r =( y i a0 a1 x 1 a2 x 2... a m x m ) 1,i x2, i 2 x1,i x2,i x 2, i x1,i x2,i x 2, i 2 x m,i a0 x 1,i x m,i x 2, i xm,i a1 yi = x1,i y i a2 x2, i yi xm,i x 1,i xm,i x2, i x m,i Bu ifade için standart hata : Lineer olmayan bazı ifadeleri yine lineer hale getirebiliriz : x m,i 2 am x m,i y i

En Küçük Kareler Yöntemi (Genel) z 0 =1, z 1 =x 1, z 2 =z 3 == z m=0 Lineer Regresyon z 0 =1, z 1 =x 1, z 2 =x 2,, z m=x m Çok Değişkenli Lineer Regresyon 2 z 0 =1, z 1 =x, z 2 =x,..., z m= x m 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 = Σr i2 minimizasyonunun gerçekleşeceği β parametrelerini elde etmektir (r i = 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(x i, β + δ) doğrusallaştırmak üzere Taylor serisine açılır (f(x i, β + δ) f(xi, β ) + Jiδ, Ji: Jakobiyen). S'in β'ya görevi türevi 0 olduğunda S( β + δ) Σri 2 = Σ (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.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