AST409 Astronomide Sayısal Çözümleme

Slides:



Advertisements
Benzer bir sunumlar
MATLAB MATrix LABoratory Hazırlayan: S. Murat BAĞDATLI.
Advertisements

LİMİT.
Matlab ile sayısal integrasyon yöntemleri.
DEVRE ANALİZİ LAPLACE DÖNÜŞÜMÜ EE410 Ertuğrul Eriş.
Matlab ile Sayısal Diferansiyel
Cebirsel İfadeler’ de Toplama İşlemi
Giriş Erciyes Üniversitesi Mühendislik Fakültesi
Bölüm2:Sayısal Hata Türleri
8. SAYISAL TÜREV ve İNTEGRAL
ÖNERMELER KÜMELER Matematik Programınd​a 9. sınıftaki değişiklik​ler
MIT503 Veri Yapıları ve algoritmalar Algoritmalara giriş
Bölüm 8: EĞRİ UYDURMA Fizikte laboratuarda yapılan deneysel ölçümlerin ne kadar hata payı içerdiğini, veya belli teorik modellere ne kadar uyduğunu bilmek.
YMT 222 SAYISAL ANALİZ (Bölüm 6a)
Özdeğerler,Exp./harmonik girdi, spektrum
A409 Astronomide Sayısal Çözümleme
1.BELİRSİZ İNTEGRAL 2.BELİRSİZ İNTEGRALİN ÖZELLİKLERİ 3.İNTEGRAL ALMA KURALLARI 4.İNTEGRAL ALMA METODLARI *Değişken Değiştirme (Yerine Koyma)Metodu.
AST409 Astronomide Sayısal Çözümleme
YMT 222 SAYISAL ANALİZ (Bölüm 2b)
KİMYA MÜHENDİSLİĞİ SORULARI 1
AST409 Astronomide Sayısal Çözümleme
AST409 Astronomide Sayısal Çözümleme
BİLGİSAYARLA MATEMATİK;
Bölüm 4: Sayısal İntegral
AST409 Astronomide Sayısal Çözümleme
AST409 Astronomide Sayısal Çözümleme
Bölüm 3: Sayısal Türev BirinciTürev: Bir f(x) fonksiyonunun [a,b] tanım aralığında bir x noktasındaki türevi, Limit ifadesiyle tanımlanır. Eğer f(x)’in.
Yard. Doç. Dr. Mustafa Akkol
Bölüm6:Diferansiyel Denklemler: Başlangıç Değer Problemleri
DERS 3 DETERMİNANTLAR ve CRAMER YÖNTEMİ
Diferansiyel Denklemler
BM-103 Programlamaya Giriş Güz 2014 (7. Sunu)
Yıldız Teknik Üniversitesi Makina Müh. Bölümü
Bölüm5 :Kök Bulma Sayısal bilgisayarlar çıkmadan önce, cebirsel denklemlerin köklerini çözmek için çeşitli yollar vardı. Bazı durumlarda, eşitliğinde olduğu.
DERS 11 BELİRLİ İNTEGRAL (ALAN).
SONLU ELEMANLAR YÖNTEMİ
SONLU ELEMANLAR YÖNTEMİ
ÇOK DEĞİŞKENLİ FONKSİYONLARDA
TİTREŞİM PROBLEMLERİNİN DOĞRUSALLAŞTIRILMASI
Ters Hiperbolik Fonksiyonlar
A409 Astronomide Sayısal Çözümleme
Yıldız Teknik Üniversitesi Makina Müh. Bölümü
Diferansiyel Denklemler
Yıldız Teknik Üniversitesi Makina Müh. Bölümü
SONLU ELEMANLARA GİRİŞ DERSİ
Java.lang.math
Ölçme Sonuçlarının Değerlendirilmesi
Yıldız Teknik Üniversitesi Makina Müh. Bölümü
DİERANSİYEL DENKLEMLER
TBF Genel Matematik I DERS – 11: Belirsiz İntegral
Diferansiyel Denklemler
Lineer Denklem Sistemlerinin
SAYISAL ANALİZ Doç. Dr. Cüneyt BAYILMIŞ.
Sayısal Analiz Sayısal Türev
Lineer Olmayan Denklem Sistemlerinin Çözüm Yöntemleri
Sayısal Analiz Sayısal İntegral 3. Hafta
İNTEGRAL.
İÇİNDEKİLER: TÜREV KAVRAMI TÜREV ALMA KURALLARI FONKSİYON TÜREVLERİ TÜREV UYGULAMALARI.
Biz şimdiye kadar hangi uzaylar ile uğraştık:
OLASILIK ve İSTATİSTİK
DERS 7 SAYISAL İNTEGRASYON DERS 7.1 TRAPEZOIDAL (YAMUK) KURAL
Geçen hafta ne yapmıştık
Yararlı olabilecek siteler:
Teorem 2: Lineer zamanla değişmeyen sistemi
Sistem Özellikleri: Yönetilebilirlik, Gözlenebilirlik
5.1 POLİNOMİNAL REGRESSİYON
SONLU ELEMANLAR YÖNTEMİ
Python ile Bilimsel Hesaplama
Sembolik İfadeler.
4. HAFTA.
Sunum transkripti:

AST409 Astronomide Sayısal Çözümleme VI. Python ve Türev

scipy.misc.derivative fonksiyonu Bu fonksiyon, verilen türevlenebilir bir fonksiyonun herhangi bir noktadaki n. türevini merkezi türev ifadesini kullanarak alır. Örnek1 : def f(x): return x**3 + x**2 x = 1.0 turev_x = misc.derivative(f, x, dx = 1e-6) turev_x_gercek = 3*x**2 + 2*x bagil_hata = abs((turev_x_gercek - turev_x)/turev_x_gercek) print "x^3 + x^2 fonksiyonunun x = %.2f noktasindaki turevi %.12f" % \ (x,turev_x) print "Turevin bu noktadaki gercek degeri %.2f ve yapilan bagil hata %.12f" % \ (turev_x_gercek,bagil_hata) Kodun ekran çıktısı: x^3 + x^2 fonksiyonunun x = 1.00 noktasindaki turevi 4.999999999922 Turevin bu noktadaki gercek degeri 5.00 ve yapilan bagil hata 0.000000000016

scipy.misc.derivative fonksiyonu Bir önceki örneğimiz için ikinci türevi hesap edelim Örnek 2 : # ayni fonksiyonun ikinci turevini alalim turev_2_x = misc.derivative(f, x, dx = 1e-6, n = 2) turev_2_x_gercek = 6 * x + 2 bagil_hata_2 = abs((turev_2_x_gercek - turev_2_x)/turev_2_x_gercek) print "x^3 + x^2 fonksiyonunun x = %.2f noktasindaki ikinci turevi %.12f" % \ (x,turev_2_x) print "Ikinci bu noktadaki gercek degeri %.2f ve yapilan bagil hata %.12f" % \ (turev_2_x_gercek, bagil_hata_2) Kodun ekran çıktısı: x^3 + x^2 fonksiyonunun x = 1.00 noktasindaki ikinci turevi 7.999378937029 Ikinci bu noktadaki gercek degeri 8.00 ve yapilan bagil hata 0.000077632871

SymPy fonksiyonları ile sembolik türev Problem “yeterince” basitse sembolik türev de yeterli olabilmektedir. SymPy paketi fonksiyon ve metotlarını kullanmak bu anlamda etkin bir çözümdür. Örnek 3: import numpy as np import sympy as sym x = sym.Symbol('x') y = x**2 + 1 turev_y = y.diff(x) print "%s 'in turevi %s 'tir." % (y,turev_y) Kodun ekran çıktısı: x**2 + 1 'in turevi 2*x 'tir. Örnek 4: y1 = sym.diff(sym.sin(x), x) print "sin(x) fonksiyonunun turevi %s 'tir" % y1 y2 = sym.diff(sym.sin(2*x),x) print "sin(2x) fonksiyonunun turevi %s 'tir" % y2 y3 = sym.diff(sym.tan(x), x) print "tan(x) fonksiyonunun turevi %s 'tir" % y3 Kodun ekran çıktısı: sin(x) fonksiyonunun turevi cos(x) 'tir sin(2x) fonksiyonunun turevi 2*cos(2*x) 'tir tan(x) fonksiyonunun turevi tan(x)**2 + 1 'tir

SymPy fonksiyonları ile yapılabilecek diğer işlemler SymPy paketi başka matematiksel işlemleri de sembolik olarak yapabilmek üzere pek çok olanak sağlar. Örnek 5: import math as math a = sym.Rational(1,2) print a print "a^2 = %s, 2*a = %s, sin(a) = %s" % (a**2, 2*a, math.sin(a)) Kodun ekran çıktısı: 1/2 a^2 = 1/4, 2*a = 1, sin(a) = 0.479425538604 # evalf -evaluate as function- fonskiyonu sembol olarak yazilan bir ifadenin # sayisal karsiligini verir print sym.pi**2 print "Sayisal olrak %.6f 'e esittir" % (sym.pi**2).evalf() pi**2 Sayisal olrak 9.869604 'e esittir # bir diger ornek print "pi + e^2 = %.8f" % (sym.pi+sym.exp(2)).evalf() pi + e^2 = 10.53064875

SymPy fonksiyonları ile yapılabilecek diğer işlemler Örnek 7: # integral almak icin kullanabiliriz print "6x^5 fonksiyonunun integrali %s" % sym.integrate(6*x**5, x) # belirli integralleri almak icin de kullanabiliriz print "x^3 fonksiyonunun x=-1 ile x=1 arasindaki integrali %s" %\ sym.integrate(x**3, (x, -1, 1)) # bir diger ornek print "cos(x)'in x=-pi/2 ile x=pi/2 arasindaki integrali %s" %\ sym.integrate(sym.cos(x), (x, -1*sym.pi/2, sym.pi/2)) Kodun ekran çıktısı: 6x^5 fonksiyonunun integrali x**6 x^3 fonksiyonunun x=-1 ile x=1 arasindaki integrali 0 cos(x)'in x=-pi/2 ile x=pi/2 arasindaki integrali 2 # verilen bir fonksiyonu Taylor serisine acabiliriz print "cos(x) fonksiyonunun McLaurin serisine acilimi ", \ sym.series(sym.cos(x), x) print "cos(x) fonksiyonunun x=1 civarinda Taylor serisine acilimi ", \ sym.series(sym.cos(x), x, 1) cos(x) fonksiyonunun McLaurin serisine acilimi 1 - x**2/2 + x**4/24 + O(x**6) cos(x) fonksiyonunun x=1 civarinda Taylor serisine acilimi cos(1) - x*sin(1) - x**2*cos(1)/2 + x**3*sin(1)/6 + x**4*cos(1)/24 - x**5*sin(1)/120 + O(x**6)

SymPy fonksiyonları ile yapılabilecek diğer işlemler Örnek 8: # # denklem cozmek icin kullanabiliriz print "x^4 - 1 = 0 denkleminin cozumu ", sym.solve(x**4 - 1, x) # birden fazla bilinmeyen iceren bir denklem takimini da cozebiliriz print "x + 5y = 2 ve -3x + 6y = 15 denklemlerinin cozumu" print sym.solve([x + 5*y - 2, -3*x + 6*y - 15], [x, y]) Kodun ekran çıktısı: x^4 - 1 = 0 denkleminin cozumu [-1, 1, -I, I] x + 5y = 2 ve -3x + 6y = 15 denklemlerinin cozumu: {x: -3, y: 1} # bazi komplike denklemlerin -bazi limitleri olmakla birlikte- cozumu vardir print "e^x + 1 = 0 denkleminin cozumu ", sym.solve(sym.exp(x) + 1,x)

SymPy fonksiyonları ile lineer cebir Örnek 9: # ornegin matris gosterimini kullanabiliriz x = sym.Symbol('x') y = sym.Symbol('y') A = sym.Matrix([[1,x], [y,1]]) print A # simdi bu matrisini karesini alalim print A**2 Kodun ekran çıktısı: Matrix([[1, x], [y, 1]]) Matrix([[x*y + 1, 2*x], [2*y, x*y + 1]]) # birden fazla matrisi carpabiliriz B = sym.Matrix([[x,x], [y,-1]]) C = sym.Matrix([[1,0], [0,1]]) print sym.MatMul(A, B, C) print A*B*C Matrix([ [1, x], [y, 1]])*Matrix([ [x, x], [y, -1]])*Matrix([ [1, 0], [0, 1]]) Matrix([[x*y + x, 0], [x*y + y, x*y - 1]])

Ödev 6 Teslim Tarihi: 26 Aralık 2014 Soru: a) Aşağıdaki fonksiyonları bir python fonksiyonu şeklinde yazdıktan sonra 1. ve 2. türevlerini scipy.misc.derivative fonksiyonunu kullanarak verilen x ve dx değerleri için hesaplayınız. b) Bu fonksiyonların türevlerini (ister SymPy fonksiyonlarını kullanarak isterseniz elinizle) analitik olarak aldıktan sonra gerçek değerlerini verilen x değerleri için hesaplayınız. c) scipy.misc.derivative fonksiyonu ile hesapladığınız değerlerin bağıl hatasını bulduğunuz gerçek değeri de kullanarak türetiniz. 3xex – 2ex , x = 1, dx = 0.01 e-x * cos (2πx), x = π / 2, dx = π / 32 -0.1 x4 – 0.15 x3 – 0.5 x2 – 0.25 x + 0.12 , x = 0.5, dx = 0.25 Bonus (10’ar puan): sinx / x, x1 = π / 2, x2 = 0, dx = π / 64 (Eğer hata verirse hata kodunun ne demek istediğini anlamaya çalışınız. Anladığınızı koda yorum satırı olarak ekleyiniz) log2 ( x2 – 2x + 1), x = 5, dx = 0.1