SAYISAL ÇÖZÜMLEME YÖNTEMLERİ Ders İçeriği 1- Lineer Cebir İşlemerinin Bilgisyar Destekli Çözümü A- Matrisler -Determinanat ve PASCAL Programı -Matris Tersi ve PASCAL Programı B-Komplex katsayılı Matrisler -Toplama, Çıkarma ve PASCAL Programı - Matrislerin Çarpımı ve Programı -Matris Tersi ve PASCAL Programı 3- Lineer Denklem Sistemleri Çözümü A- Doğrudan Yöntemler (Analitik) -Ters Matris Yöntemi -Craer Yöntemi -Gauss-Eliminasyon Yöntemi B- Sayısal (İteratif) Yöntemler -Jakobi Yöntemi - Gauss-Seidel Yöntemi 5- Lineer Olayan Denklem Sistemlerinin Çözümü -Basit İterasyon Yöntemi -Newton Yöntemi 7- Adi Diferansiyel Denklemlerin Sayısal Çözümü -Analitik Yaklaşım Yöntemi -Ardaşık Diferansiyelleme Yönt. (Taylor) -Euler Yöntemi -İyileştirilmiş Euler Yöntemi -Euler Coushy Yöntemi - Runge-Kutta Yöntemi -Adams Yöntem 2- Lineer Olmayan denklemlerin Köklerinin Bulunması -Adım Küçülterek Köke Yaklaşma -Orta Nokta Yöntemi -Kesen Nokta Yöntemi -Basit İterasyon Yöntemi -Newton-Raphson Yöntemi - Geliştirilmiş NRaphson Yöntemi 4- Sayısal Türev ve İntegral A-Sayısal Türev -Türeve Yaklaşım - İleri ,Geri, Merkez Fark Türev Denklemleri -Taylor Serisi ve Uygulmaları -Taylor Serisi Yardımı ile Türev Hesabı A-Sayısal İntegral -Dikdörtgen ve Trapez Yöntemi -Simpson Yöntemi -2 katlı İntegraller 6- Enterpoasyon ve Eğri Uydurma -Lineer Enterpolasyon -Polinomal Enterpolasyon (Lagrange Formülü) -En Küçük Kareler Yöntemi - Doğru Uydurma - Polinom Uydurma - Üstel Davranışlı Fonksiyonlara eğri uydurma Kaynaklar 1- Sayısal Çözümleme, Recep TAPRAMAZ, Literatür Yayınları. 2- Nümerik Analiz, İbrahim UZUN, Beta yayınları, 3- İleri Programlama Uygulamaları, Fahri VATANSEVER, Seçkin yayınları. 4- Yazılım ve Program Uygulamalarıyla Mühendisler için Sayısal Yöntemler, S.C. Chapra, çeviri . Hasan Heperkan , Literatür Yayınları. Sayısal analizin amacı; matematiksel olarak ifade edilmiş problemlerin çözümüne, belli sayıda ve sıralı aritmatik işlemleri bilgisayar programları ile yaparak, sonuca istenilen hassasiyetle ulaşılmasıdır. Genellikle analitik olarak çözümleri çok zor veya imkansız olan problemleri, belirli hata oranında çözmek için kullanılır. 1- MATRİSLER Determinant : Bir matrisin gerçek değerine determinant denir. A a det A a b c d A A a det A A detA a d b c Sarrus Kuralı; A a111 a221 a331 a12 a22 a32 a13 a23 a33 A a111 a221 a331 a12 a22 a32 a13 a23 a33 - - - detA A a11 a221 a31 a12 a22 a32 + + ? + a11 a22 a33 a12 a23 a31 a13 a21 a322 a13 a22 a31 a11 a23 a32 a12 a21 a333 2. yol : Determinantı hesaplanacak matrisin asal köşegen altında kalan elemanlar, elementer satır işlemleri yapılarak sıfırlanır. Asal köşegen elemanlarının çarpımı determinantı verir. Bir matrise uygulanabilecek elementer işlemler; 1. Herhangibir satır veya sütun sıfırdan farklı bir sayı ile çarpılabilir. 2. İki satır veya sütun karşılıklı yer değiştirebilir. 3. Herhangibir satır başka bir satır yada herhangibir sütun başka bir sütunla toplanabilir. Örnek : A 1 0 1 1 1 4 1 2 1 detA A 1 1 1 1 1 1 0 1 1 4 2 1 ? 0 1 2 Matris Tersi : Bir matrisin tersinin olabilmesi için determinantının sıfırdan farklı olması gerekir. Ek (adjoint) matris ile matris tersi bulma; Cofaktör : Kare A matrisinin aij elemanının kofaktörü Cij = (-1)i+j Mij formülü ile hesaplanır. Burada Mij ‘ye A matrisinin minörü denir ve A matrisinin i satırı ile j sütununun iptal edilmesi ile oluşan matrisin determinantıdır. A matrisinin tersi; adj A A 1 cofaktor f r A adj a dj A dj detA d etA tA T 2. yol : A matrisinin yanına aynı boyutlu birim matris yazılır. Elementer satır işlemleri her iki matrisede uygulanarak A matrisi birim matris haline dönüştürülür. Birim matrisin yerinde oluşan matris A matrisinin tersidir. Örnek : A 3 2 5 1 4 4 3 1 0 3 matrisinin tersini bulunuz. 2 2. yol ; A 2 5 4 4 0 3 1 0 0 0 1 0 2 0 0 1 Komplex Elemanlı Matrisler En az bir komplex terim içeren matrise komplex matris denir. Programlama dillerinde komplex terim tanımlanamadığı için, bu terimleri içeren matrisler için bazı yöntemler geliştirilmiştir. Bu yöntemlerde sadece reel sayılar kullanılarak komplex matrislerle ilgili işlemler yaptırılabilir. A a b A a11 jb11 a12 jb12 a21 jb21 a22 jb22 a1n jb1n a2n jb2n amm1 jbm1 am2 jbm2 amn jbmn Reel A Im A a j b Toplama ve çıkarma C e j f olmak üzere C A B a c j b d e j f Çarpma C e j f olmak üzere C A B a j b e a c f a d b c c j d a c j a d j b c j2 b d b d Yazılan programlarda bu iki matris ayrı ayrı hesaplanır. Örnek : A 1 j 2 j5 3 2j , B 1j 2 j C A B ? Genelleştirilmiş Matris Yöntemi Herhangibir matrisin genelleştirilmiş formatta yazılması için aşağıdaki form kullanılır. A a b A a11 jb11 a12 jb12 a21 jb21 a22 jb22 a1n jb1n a2n jb2n amm1 jbm1 am2 jbm2 amn jbmn Reel A Im A a j b a b AG b a Örnek : A AG 1j 2 j 3 j a b b a AG ? , BG c d d c e , CG f f e Olmak üzere; Toplama ve Çıkarma CG C AG BG e j f a b b c a d d c a c b d b d a c e f f e Çarpma CG C AG BG a b b a c d d c a c b d b c a d e j f Örnek : A 1 j 2 j5 3 2j 1j 2 j , B C A B ? Matris Tersi a b AG AG g h b a 1 için herhangibir yöntemle A G bulunur, h g A 1j 1 j 1 j A 1 1 g j h Örnek : A 1 ? a d b c b d a c e f f e 2- Lineer Olmayan Denklemlerin Köklerinin Bulunması Sürekli ve reel y= f(x) fonksiyonunun [x1 , x2] aralığında en az bir kökünün olabilmesi için; f(x1)f(x2)<0 şartının sağlanması gerekir. Kökleri kolaylıkla bulunamayan fonksiyonların köklerini sayısal olarak bulabilmek için sayısal yöntemler geliştirilmiştir. Bu yöntemler ikiye ayrılır; Kapalı Yöntemler : Fonksiyonların kökleri civarında işaret değiştirmeleri gerceğinden yararlanan yöntemlerdir. Kökün bulunabilmesi için iki adet başlangıç değerine ihtiyac duyar. Başlangıç veya ilk tahmin değerleri mutlaka kökü kıskaca almalıdır. İlk tahmin değerlerinin arasındaki aralığın küçültülmesi ile köke yaklaşılır. Hesaplamalar (iterasyon) ilerledikçe köke daha fazla yaklaşıldığından bu yöntemler Yakınsak Yöntemlerdir. Açık Yöntemler : Sadece bir başlangıç değerine gerek duyan ve kökü kıskaca almayan iki ek değer kullanabilen formüllere dayanan yöntemlerdir. Bu yöntemlerde, iterasyon ilerledikçe kökten uzaklaşılabilir (Iraksama), ancak yakınsadıklarında kapalı yöntemlere göre çok hızlı sonuca ulaşırlar. x Lineer Olmayan Denklemler: 1- Polinom Denklemleri, an x an1 x n1 ....... a0 n 0 2- Trigonometrik Denklemler, Sin(ax b) c 3- Logaritmik (üstel) Denklemler, eax b c 4- Karışık Denklemler an x n sin(ax b) ecxd e 2.1- Adım Küçültme Yöntemi x1: rasgele seçilmiş başlangıç değeri x2= x1+h= x1+Δx x3= x1+2h= x1+2Δx= x2+h= x2+Δx x4= x3+3h= x3+3Δx= x2+2h= x2+2Δx= x1+h= x1+Δx …. xi+1= xi+h xi-1= xi-h xi+2= xi+2h= xi+1+h xi-2= xi-2h= xi-1-h …. ALGORİTMA 12345678- Rasgele bir başlangıç değeri (x1), başlangıç adımı (h) ve hassasiyet (ε) seç Başlangıç değerine başlangıç adımını ekleyerek köke yaklaş. kök geçilmedi adım (2) ‘ye git. f x f x h >0 kök geçildi f x f xh d0 Bir önceki adıma git ve başlangıç adımını belirlediğin kritere (h/a) göre küçült Adım yeterince küçükse (h<ε) adım (8) ‘e git Adım (2) ‘ye git Sonuçları yazdır ve çık. ÖRNEK f ( x) x 2 4 x 10 fonksiyonunun pozitif bir kökünü X1=0,h=1 ve H=0.1 alarak bulunuz. Analitik çözümden; X1=-1.74165738 ve X2=5.74165738 bulunabilir (kontrol amaçlı) h x f(x) f(x)*f(x+h) işlem SORU_1 f ( x) x 2 10Sin( x) 3 fonksiyonunun bir kökünü H=0.001 alarak program ile bulunuz. SORU_2 f ( x) bulunuz. x 5 2 x 4 3x 3 x 5 fonksiyonunun tüm kökleri ni H=0.001 alarak program ile AKIŞ ŞEMASI C Program #include <stdio.h> float fx(float x) { float a; a = (x*x) - (4*x) - 10; return(a); } main() { float h, xi, xih, epsilon ; int i; h = 1; xi = 0; epsilon = 0.0001; i = 0; do { i++; if ((fx(xi)*fx(xi+h))> 0) xi = xi+h; else h = h/5; //a=5 printf("iterasyon=%d xi=%5.4f xi+h=%5.4f adim=%6.5f\n", i,xi,xi+h,h); } while (h > epsilon); getch(); } TURBO PASCAL PROGRAM program adim_kucultme; uses crt; var xi,h,epsilon,xih : real; i : integer ; function fx(x:real):real; begin fx:=(x*x)-(4*x)-10; end; begin h:=1; xi:=0; epsilon:=0.0001; i := 0; gotoxy (2, i+1);writeln('iterasyon'); gotoxy (15, i+1);writeln('xi'); gotoxy (25, i+1);writeln('xi+h'); gotoxy (35, i+1);writeln('fx(xi)'); gotoxy (45, i+1);writeln('fx(xi+h)'); gotoxy (55, i+1);writeln('Adim'); repeat i := i + 1; if (fx(xi)*fx(xi+h))> 0 then xi:=xi+h else h:=h/5; //a=5 gotoxy (6, i+2);writeln(i); gotoxy (15, i+2);writeln(xi:5:4); gotoxy (25, i+2);writeln(xi+h:5:4); gotoxy (35, i+2);writeln(fx(xi):5:4); gotoxy (45, i+2);writeln(fx(xi+h):5:4); gotoxy (55, i+2);writeln(h:6:5); until h<epsilon; readln; end. 2.2- Orta Nokta Yötemi x2 x1 2 x2 x1 2 Bu yöntemde başlangıç aralığı (x1 ve x2) aralığı iki eşit parçaya bölünerek köke yaklaşılır. Aralığın tam orta noktası belirlenir (x3) ve bu noktanın kökün ilerisindemi gerisindemi sorgusu ile aralığın yarısı atılır. x3 x1 x2 2 ALGORİTMA 1- Kökü içine alan rasgele bir başlangıç aralığı belirlenir. (x1 ve x2 ) 2- Aralığın orta noktasını x3 hesaplanır x1 x2 x3 2 3- f(x1) ve f(x3) hesaplanır. 4- f x1 f x 3 > 0 (x1 ve x3) aralığında kök yoktur, kök (x2 ve x3) arasındadır. (x1 ve x3) aralığı atılır, yeni aralık; x1 x 3 ve x 2 x 2 seçilir, adım 6 ya git, 5- f x1 f x 3 d 0 kök (x1 ve x3) aralığındadır, (x3 ve x2) aralığı atılır, yeni aralık; x1 x1 ve x 2 x 3 seçilir. 6- ABS(x1 - x2 )>H adım 2 ye git 7- Sonuçları yazdır ve çık. ÖRNEK f ( x) x 3 4 x 2 10 fonksiyonunun pozitif bir kökünü H=0.1 alarak bulunuz. Aralık belirleme; x f(x) f(x) 0 -10 <0 3 -19 <0 3-5 aralığında kök var 5 15 >0 SORU_1 f ( x) x 2 10Sin( x) 3 fonksiyonunun bir kökünü H=0.001 alarak program ile bulunuz. SORU_2 f ( x) x 5 2 x 4 3x 3 x 5 fonksiyonunun tüm kökleri ni H=0.001 alarak program ile bulunuz. AKIŞ ŞEMASI program orta_nokta; uses crt; var x1,x2,x3,epsilon : real; i : integer ; function fx(x:real):real; begin fx:=(x*x)-(4*x)-10; end; begin x1:=3; x2:=6; epsilon:=0.0001; i := 0; gotoxy (2, i+1);writeln('iterasyon'); gotoxy (15, i+1);writeln('x1'); gotoxy (25, i+1);writeln('x2'); gotoxy (35, i+1);writeln('x3'); gotoxy (45, i+1);writeln('fx(x1)'); gotoxy (55, i+1);writeln('fx(x3)'); repeat i := i + 1; x3 := (x1+x2)/2; gotoxy (6, i+2);writeln(i); gotoxy (15, i+2);writeln(x1:5:4); gotoxy (25, i+2);writeln(x2:5:4); gotoxy (35, i+2);writeln(x3:5:4); gotoxy (45, i+2);writeln(fx(x1):5:4); gotoxy (55, i+2);writeln(fx(x3):5:4); if (fx(x1)*fx(x3))> 0 then x1:=x3 else x2 :=x3; #include <stdio.h> #include <math.h> float fx(float x) { float a; a = (x*x) - (4*x) - 10; return(a); } main() { float x1, x2, x3, epsilon ; int i; x1 = 3; x2 = 6; epsilon = 0.0001; i = 0; do { i++; x3 = (x1+x2)/2; printf("iterasyon=%d x1=%5.4f x2=%5.4f x3=%5.4f\n", i,x1,x2,x3); if ((fx(x1)*fx(x3))> 0) x1 = x3; else x2 = x3; } while (abs(x2-x1) > epsilon); getch(); } until abs(x2-x1)<epsilon; readln; end. 2.3- Kesen Nokta Yötemi( Kiriş -Secant) x1 ve x2 aralığı daraltılarak köke yaklaşılır. (x1,f(x1)) ve (x2,f(x2)) noktaları arasında bir doğru (kiriş) çizilir. Bu doğrunun x eksenini kestiği noktaya x3 denir. x3 noktasının kökün hangi tarafında olduğuna karar verilir ve kökün olmadığı taraf atılarak yeni aralık belirlenir. Aynı işlemlere tekrar edilerek, aralık yeterince küçük olduğunda işlem sonlandırılır. Burada önemli olan x3’ ün hesabıdır. Diğer işlemler orta nokta yöntemindeki gibidir. A(x1,f(x1)), B(x2,f(x2)) yani A(x1,y1), B(x2,y2) y y1 x x1 y f x1 x x1 y1 y 2 x1 x 2 f x1 f x 2 x1 x 2 x x 3 y 0 oldugundan; x f f x1 f x 2 0 x 3 x1 f x1 x3 1 x1 x 2 f ise 2 noktası bilinen doğru denklemi; f x1 f x 2 y x x1 f x1 x1 x 2 x2 x2 x 2 f x1 f x1 ALGORİTMA 1- Rasgele bir başlangıç aralığı belirlenir. (x1 ve x2 ) 2- x3 hesaplanır; x3 x1 f ( x2 ) x2 f ( x1 ) f ( x2 ) f ( x1 ) 3- f(x1) ve f(x3) hesaplanır. 4- f x1 f x 3 > 0 (x1 ve x3) aralığında kök yoktur, kök (x2 ve x3) arasındadır. (x1 ve x3) aralığı atılır, yeni aralık; x1 x 3 ve x 2 x 2 seçilir, adım 6 ya git, 5- f x1 f x 3 d 0 kök (x1 ve x3) aralığındadır, (x3 ve x2) aralığı atılır, yeni aralık; x1 x1 ve x 2 x 3 seçilir. 6- ABS(x1 - x2 )>H adım 2 ye git 7- Sonuçları yazdır ve çık. ÖRNEK f ( x) Aralık belirleme; x f(x) 3 -19 5 15 x 3 4 x 2 10 fonksiyonunun pozitif bir kökünü H=0.1 alarak bulunuz. f(x) <0 >0 3-5 aralığında kök var SORU_1 f ( x) x 2 10Sin( x) 3 fonksiyonunun bir kökünü H=0.001 alarak program ile bulunuz. SORU_2 f ( x) x 5 2 x 4 3x 3 x 5 fonksiyonunun tüm kökleri ni H=0.001 alarak program ile bulunuz. AKIŞ ŞEMASI program kiris; uses crt; var x1,x2,x3,epsilon : real; i : integer ; function fx(x:real):real; begin fx:=(x*x)-(4*x)-10; end; begin x1:=3; x2:=6; epsilon:=0.0001; i := 0; gotoxy (2, i+1);writeln('iterasyon'); gotoxy (15, i+1);writeln('x1'); gotoxy (25, i+1);writeln('x2'); gotoxy (35, i+1);writeln('x3'); gotoxy (45, i+1);writeln('fx(x1)'); gotoxy (55, i+1);writeln('fx(x3)'); repeat i := i + 1; x3 := (x1*fx(x2)-x2*fx(x1))/(fx(x2)-fx(x1)); gotoxy (6, i+2);writeln(i); gotoxy (15, i+2);writeln(x1:5:4); gotoxy (25, i+2);writeln(x2:5:4); gotoxy (35, i+2);writeln(x3:5:4); gotoxy (45, i+2);writeln(fx(x1):5:4); gotoxy (55, i+2);writeln(fx(x3):5:4); if (fx(x1)*fx(x3))> 0 then x1:=x3 else x2 :=x3; until abs(x2-x1)<epsilon; readln; end. 2.4- Newton Raphson Yöntemi Bu yöntemde köklere teğetler ile yaklaşılır. Rasgele bir x0 noktası alınır ve bu noktada fonksiyonun teğeti çizilir. Bu teğetin eğimi hesaplanır. Fonksiyonun o noktadaki teğeti aynı zamanda o noktadaki türevine eşittir. Bu iki eşitlik kullanılarak teğetin x eksenini kestiği x1 noktası bulunur. Aynı işlemler x1 noktası için tekrar edilir ve x2 noktası bulunur. İşlemlere devam edilirse sonlu adım sonra köke yaklaşılır. 2.teğetin eğimi 1.teğetin eğimi tan D 1 f x1 x 0 f x0 f x0 x1 f x0 0 x 0 x1 tan D 2 x 2 x1 f x2 f x1 0 x1 x 2 f x1 f x1 xi1 Genel Kural (Newton Raphson Fomülü) xi 'x xi1 f ( xi ) f ' ( xi ) f ( xi ) f ' ( xi ) xi 'x Not: Fonksiyonun işaret değiştirip değiştirmediğine bakılmadığı için bu yöntem ile katlı kökler de bulunabilir. ÖRN: f ( x) x 3 7 x 2 5x 20 X0 =8 alarak Newton rapson yöntemi ile kök bulunuz. Kökler: (1.8162, -7.3097 , -1.5065) x ÖRN: f ( x) x 3 7 x 2 5x 20 x ÖRN: f(x) f ( x) x f(x) x3 5 x f(x) x0=1 (xkök=1.709976) f(x) x f(x) f’(x) ALGORİTMA 8- Rastgele bir başlangıç değeri (x0 ) ve hata sınırı belirle ( ε ), 9- f(x0) ve f’(x0) ‘i hesapla, 10- x i 1 x i f xi değerini hesapla, f xi 11- abs f xx 1 >H xi = xi+1 atamasını yap ve adım 2 ‘ye atla, 12- Sonuçları yazdır ve çık. AKIŞ ŞEMASI c# kodları namespace nr { class Program { public delegate double Function(double x); static double F1(double x) {return x*x-4*x-10;} static double F1_turev(double x) { return 2*x-4;} x1 x1 f x1 f x1 public static double NewtonRaphsonMethod(Function f, Function fprime, double x0, double epsilon) { double f0 = f(x0); double x = x0; int i=0; while (Math.Abs(f(x)) > epsilon) { i++; Console.WriteLine("iterasyon: {0}",i + " x:" + x.ToString("0.000000") + " gercek_turev:" + F1_turev(x).ToString("0.000000")); x -= f0 / fprime(x); f0 = f(x); } return x; } static void Main(string[] args) { double epsilon=0.0001, x1=3.0; Console.WriteLine("\n\nTesting Testing Newton-Raphson Method\n"); double x = NewtonRaphsonMethod(F1, F1_turev, x1, epsilon); Console.WriteLine("\n\nNR Sonuc:" + x.ToString()); Console.WriteLine("NR Test:f(x)=" + F1(x).ToString()); Console.ReadLine(); } } } 2.5- Sayısal Türevli Newton Raphson Formülü Newton Raphson formülü içerisinde fonksiyonun 1. Türevine ihtiyaç vardır. Bu türev analitik olarak hesaplanmaktadır. Polinom veya bir çok fonksiyon için 1. türevin bulunması kolay olsada, türevlerinin bulunması zor veya zaman alıcı fonksiyonlar olabilir. Bu durumlarda türevin sayısal hesaplanması gerekir. Sayısal türev hesabı ileriki haftalarda Sayısal türev konusunda ayrıntılı olarak işlenecektir. Burada sadece bir sayısal türev formülüne değinilip geçilecektir. Genel Kural (Newton Raphson formülü) xi xi1 f ( xi ) f ' ( xi ) f ' ( x0 ) ? Herhangi bir xi noktasında fonksiyonun türevi; ACD üçgeninden f(xi+h) y f ' ( xi ) tan D1 AC DC BC h B A A noktası hesap edilemediğinden yani AC uzunluğu bilinemediğinden bu üçgen yerine BCD üçgeni kullanılarak yaklaşık olarak türev hesaplanır. D1 f(xi) D α2 C x xi +h xi BCD üçgeninden ÖRNEK tan D1 f ' ( xi ) # tan D 2 BC DC BC h 9 xi 1 xi f ( xi ) f ( xi ) # xi f ( xi h) f ( xi ) f ' ( xi ) h f ( xi ) h xi f ( xi h) f ( xi ) 9 f ' (2) 9 f ' (2) f ( x) x 2 10Sin( x) 3 2 x o f ' (2) 4 f ( x h) f ( x ) h f (2 0.1) f (2) 0.1 2.12 2 2 0.1 Sayısal Olarak;h=0.01; 9 ÖDEV f ' ( x) Sayısal Olarak;h=0.1; Newton formülü içine yazılırsa; xi 1 x 2 , f ' (2) ? Analitik olarak; f ( xi h) f ( xi ) h f ' ( xi ) f ( x) f ' (2) f (2 0.01) f (2) 0.01 4.01 fonksiyonunun bir kökünü H=0.001 alarak program ile bulunuz. 4.1 SORU_1 f ( x) ÖRN: x 5 2 x 4 3x 3 x 5 f ( x) x x3 5 fonksiyonunun tüm kökleri ni H=0.001 alarak program ile bulunuz. x0=1 ve h=0.01 (xkök=1.709976) f(x) x f(x) ALGORİTMA 1- Rastgele bir başlangıç değeri (x0 ) ve hata sınırı belirle ( ε ), 2- f(x0) ve x0 noktasındaki sayısal türevi ‘i hesapla, 3- x i 1 x i f xi değerini hesapla, f xi 4- abs f xx 1 >H xi = xi+1 atamasını yap ve adım 2 ‘ye atla, 5- Sonuçları yazdır ve çık. AKIŞ ŞEMASI c# kodları namespace ConsoleApplication1 { class Program { public delegate double Function(double x); static double F1(double x) {return x * x - 4*x - 10; } static double F1_turev(double x) { return 2*x-4;} static double F1say_tur(double x) //sayısal turev {double h = 0.001; return (F1(x + h) - F1(x)) / h; } x1 x1 f x1 f x1 public static double NewtonRaphsonMethod(Function f, Function fprime, double x0, double epsilon) { double f0 = f(x0); double x = x0; while (Math.Abs(f(x)) > epsilon) { Console.WriteLine("x:" + x.ToString("0.000000") + " gercek_turev:" + F1say_tur(x).ToString("0.000000") + " sayisal_turev:" + F1say_tur(x).ToString("0.000000")); x -= f0 / fprime(x); f0 = f(x); } return x; } static void Main(string[] args) { double epsilon = 0.0001, x1 = 3.0; Console.WriteLine("\n\nTesting Testing Newton-Raphson Method\n"); double x = NewtonRaphsonMethod(F1, F1say_tur, x1, epsilon); Console.WriteLine("\n\nNR Sonuc:" + x.ToString()); Console.WriteLine("NR Test:f(x)=" + F1(x).ToString()); Console.ReadLine(); } } } NR Yönteminin zayıflıkları; NR yöntemi çok etkili olmasına rağmen, özellikle katlı kökler ve bazı basit kök aramasında zayıf kalır. 1. Örnek : f x çalışalım; i xi 0 0.5 x10 1 51.65 1 fonksiyonun x0=0.5 civarındaki kökünü NR yöntemi ile bulmaya 2 46.485 3 41.8365 4 37.6528 5 33.8875 . . . . 2. Kötü bir ilk tahminden sonra, köke yakınsama çok yavaştır. İlk tahmin x1 ‘den itibaren itersayon adımları kökten uzaklaşmaktadır. ∞ 1.00 3. NR yöntemi, yerel max ve min civarında salınma özelliği gösterir. NR yöntemi için genel bir yakınsama kriteri yoktur. Yakınsama fonksiyonun doğasına ve ilk tahmin değerinin dogruluğuna bağlıdır. Çözüm, köke yeterince yakın ilk başlangıç noktasının seçilmesidir. İyi tahminler, fiziksel problemin bilinmesi veya çözümün davranışı hakkında bilgi ve grafikler ile bulunabilir. 4. Katlı kökler Çift katlı kökler ekseni kesmez. Çift katlı köklerde; f(x) işaret değiştirmediğinden kapalı yöntemler kullanılamaz ayrıca çift ve üç katlı köklerde, kök civarında f(x) ve f’(x) sıfıra çok yakın olduğundan yuvarlama hataları oluşur. Bu sorunları çözmek için Geliştirilmiş NR yöntemi kullanılır. 2.6- Geliştirilmiş Newton Raphson Yöntemi f(x)’ in kökünü bulmak için yardımcı bir fonksiyon tanımlanır (G(x)). Bu fonksiyonun kökü f(x) ile aynı olmalıdır. Yardımcı fonksiyon; ÖRN f ( x) f ' ( x) G ( x) G ( x) f(x) = 0 ÆG(x) = 0 ‘dır. ÖRN Olarak tanımlanır. G(x)=0 yapacak x=a değeri f(x) ‘in de köküdür. x a o f ( a ) 0 G( a ) 0 Bu yöntemle fonksiyon katlı kökten kurtulmuş olur. Bu sebeple f(x) ‘in yerine G(x)’ in kökü Newton Raphson Formülü ile bulunur. G ( x) f ( x) f ( x) f ' ( x) x3 2 x 2 5 x3 2 x 2 5 3x 2 4 x f ( x) ( x 2)3 f ( x) f '( x) ( x 2)3 3 ( x 2)2 1 ( x 2) 3 G(x) Fonksiyonuna Newton Raphson Formülünün Uygulanması G x G xi G xi f x ve x i 1 x i f x 2 G x f d f x ddxx f x x f 2 f f xi f xi xi 1 xi f xi f xi f xi 2 f xi f xi f xi 2 f xi f x Algoritma, ve program N-R ile aynıdır. 2 xi 1 xi x f x Not: Burada fonksiyonun ikinci türevinin de hesabı gerekmektedir. Şimdilik fonksiyonun 2. Türevi analitik olarak hesaplanarak kullanılacaktır. Sonraki bölümlerde sayısal türev konusunda 2. Türev hesabı için formüller verildiğinde onlar kullanılacaktır. xi f xi ÖRN f x x 3 x 1 x 1 x 3 5x 2 7x kökünü NR ve GNR hesaplayınız. 3 fonksiyonun x0=0 , x0=4 civarındaki Not: Başlangıç değeri kompleks sayı girilirse kompleks kökler de bulunabilir. ÖRN f x x2 x 1 x=i noktası civarındaki kökünü bulunuz. x11,2 1 2 3i 2 2.7- Basit iterasyon Yöntemi Bu yöntemde f(x)=0 denklemi x=F(x) formuna Yakınsama koşulu; [a , b] deki bütün x’ ler için (x [a, b]) için getirilir. Eğer yakınsama koşulunu sağlıyorsa; x i 1 F x i formülü ile iterasyona başlanır. ȁݔି ݔାଵ ȁ ൏ ߝ oluncaya kadar işleme devam et. ÖRN: ÖDEV: f ( x) F ' ( x) ൏1 sağlanmalıdır. x 2 3x 1 denkleminin bir kökünü [0, 1 ] aralığında basit iterasyon yöntemi ile 3 adımda bulunuz. f ( x) x 2 2x 2 0 denkleminin bir kökünü [0, 1 ] aralığında basit iterasyon yöntemi ile 3 adımda bulunuz. ALGORİTMA 1- Rastgele bir başlangıç değeri (x1 ) ve hata sınırı belirle ( ε ), 2- F(x1) ‘i hesapla, 3- x1= F(x1) atamasını yap, 4- abs f x1 >H adım 2 ‘ye atla, 5- Sonuçları yazdır ve çık. AKIŞ ŞEMASI c# kodları namespace ConsoleApplication1 { class Program { public delegate double Function(double x); //f(x)=x * x - 3 * x + 1 static double F1(double x) { return (x * x + 1) / 3; } static double F(double x) { return x * x - 3 * x + 1; } static void Main(string[] args) { Console.WriteLine("\n\nBasit iterasyon yontemi\n"); double x,x0=0.5, epsilon=0.0001; int i=0; do { i++; x = F1(x0) ; x0 = x; Console.WriteLine("iterasyon:" + i + " x:" + x0.ToString("0.00000000")); } while (Math.Abs(F (x0)) > epsilon); Console.WriteLine("\n\nNR Sonuc:" + x.ToString()); Console.WriteLine("BIY Test:f(x)=" + F(x).ToString()); Console.ReadLine(); } } } 3- Lineer Denklem Sistemlerinin Çözümü n bilinmeyenli n denklemden oluşan bir sistem; a11 x1 a12 x 2 a1n x n b1 a21 x1 a22 x 2 a2n x n b2 an1 x1 an2 x 2 ann x n bn Matrisel formda ifade edilirse; a111 a12 a221 a22 a1n a2n x1 x2 b1 b2 ann1 an2 ann xn bn Burada; A : Katsayılar matrisi, B : Sabitler matrisi, X : Bilinmeyenler matrisidir. [A] [X] =[B] Bu denklem sisteminde çözümün olabilmesi için det(A)≠0 olmalıdır. Lineer denklem sistemlerinin çözüm yöntemleri iki alt başlıkta toplanabilir; 1. Doğrudan Yöntemler (Ters Matris, Cramer, Gauss Eleminasyon, Gauss-Jordan Yöntemleri), 2. Sayısal Yöntemler (Jakobi, Gauss Siedell Yöntemleri) 3.1. Doğrudan Yöntemler Ters Matris Yöntemi A R X A B 1 B 1 A X A X A 1 B X A 1 B R Örnek : 5x1 4x 2 14 2x1 3x 2 7 denklem sisteminin çözüm kümesini bulunuz. Cramer Yöntemi Yukarda verilen denklem sisteminin cramer yöntemi ile çözümü; |A| ' '1 '2 'n a111 a12 a221 a22 a1n a2n ann1 an2 ann b1 a12 b2 a22 a1n a2n bn an2 ann a111 b1 a221 b2 a1n a2n ann1 bn ann a111 a12 a221 a22 b1 b2 ann1 an2 bn Not : Bu iki yöntem denklem sayısı 3 ve 3 ‘ten az olan sistemlere uygundur. Örnek : 5x1 4x 2 14 2x1 3x 2 7 denklem sisteminin çözüm kümesini bulunuz. Gauss Eleminasyon Yöntemi Çok eski bir yöntem olmasına rağmen bir çok popüler yazılım paketinde doğrusal denklemlerin çözüm yöntemi olarak kullanılmaktadır. Yöntemin gerçekleştirilmesi iki aşamadan oluşur; 1. Bilinmeyenlerin elenmesi; Ana köşegen altındaki elemanlar, elementer satır işlemleri ile sıfır yapılır. a111 a12 a13 | b1 a221 a22 a23 | b2 a331 a32 a33 | b3 a111 a12 a1n | b1 0 a22 a23 | b2 0 0 a33 | b3 2. Geriye doğru çözüm kümesinin bulunması; a111 a12 a1n 0 a22 a23 0 0 a33 x1 x2 x3 b1 b2 b3 Örnek : x1 2x 2 x 3 8 2x1 x 2 x 3 3 denklem sisteminin çözüm kümesini bulunuz. 3x1 3x 2 2x 3 3 #include<stdio.h> int main(void) { void backsubs(float [][10],float [], int); float a[10][10],b[10],tem=0,temp=0,temp1=0,temp2=0,temp4=0,temp5=0; int n=0,m=0,i=0,j=0,p=0,q=0; printf("Kare Matrisin Boyutu :"); scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("A[%d,%d] :",i,j); scanf("%f",&a[i][j]); } } printf("\nEnSabitler Matrisi\n"); for(i=0;i<n;i++) { printf("B[%d] :",i,j); scanf("%f",&b[i]); } for(i=0;i<n;i++) { temp=a[i][i]; if(temp<0) temp=temp*(-1); p=i; for(j=i+1;j<n;j++) { if(a[j][i]<0) tem=a[j][i]*(-1); else tem=a[j][i]; if(temp<0) temp=temp*(-1); if(tem>temp) { p=j; temp=a[j][i]; } } //Satir degisimleri for(j=0;j<n;j++) { temp1=a[i][j]; a[i][j]=a[p][j]; a[p][j]=temp1; } temp2=b[i]; b[i]=b[p]; b[p]=temp2; //Kosegen haric elemanlarin sifirlanmasi temp4=a[i][i]; void backsubs(float a[][10],float b[], int n) for(q=i+1;q<n;q++) { { int i=0,j=0; temp5=a[q][i]; for(i=n-1;i>=0;i--) for(j=0;j<n;j++) { { for(j=n-1;j>i;j--) a[q][j]=a[q][j]-((temp5/temp4)*a[i][j]); { } b[i]=b[i]-a[i][j]*b[j]; b[q]=b[q]-(temp5/temp4*b[i]); } } b[i]=b[i]/a[i][i]; } printf("x%d = %f\n",i+1,b[i]); backsubs(a,b,n); } return 0; } } Gauss-Jordan Yöntemi Gauss yönteminin farklı bir durumudur. Ana köşegen hariç diğer elemanlar, elementer satır işlemleri ile sıfırlanır. Dolayısıyla, çözümü bulmak için geriye doğru çözümün bulunması adımını içermez. a111 0 0 a22 0 0 0 0 a33 x1 x2 x3 b1 b2 b3 Ayrıca, bütün satırlar pivot elemanlara bölünerek normalize edilebilir. Örnek : x1 2x 2 x 3 8 2x1 x 2 x 3 3 denklem sisteminin çözüm kümesini bulunuz. 3x1 3x 2 2x 3 3 3.2. İteratif Yöntemler Gauss-Jakobi Yöntemi n bilinmeyenli denklem sistemi, a11 x1 a12 x 2 a1n x n b1 a21 x1 a22 x 2 a2n x n b2 an1 x1 an2 x 2 ann x n bn Şeklinde verilmiş olsun. Bu sistemş Gauss-Jakobi yöntemi ile çözebilmek için aşağıdaki forma dönüştürülür. 1 1 a11 x1 a12 x 2 a1n x n b a1111 1 a1111 1 1 a21 x1 a22 x 2 a2n x n b2 a22 a22 22 22 1 bn ann nn 1 an1 x1 an2 x 2 ann x n ann nn Dönüştürülen sistemin çözüm kümesine yakınsayabilmesi için, yakınsama koşulunu sağlaması gerekir. |aii | t n |aij | her satır için köşegen elemanı, diğer elemanların toplamından büyük olmalıdır. Eşit olma durumunda yakınsama çok yavaş olur. j 1 jzi İterasyon için; x1k 1 b1 a1111 a1122 k a x 2 11nn x nk a1111 a1111 x 2k 1 b2 a22 22 a2211 k a2n k x 2n xn a2222 1 a22 22 x nk 1 bn ann nn ann11 k ann 1 k x1 nn x annnn annnn n Genel iterasyon formulu; 1 Matrisel formda yazılacak olursa; x1 x2 k1 b1 a1111 0 a1122 a1111 a11nn a1111 b2 a22 22 a2211 a2222 0 a2n 2n a22 22 bn ann nn ann11 ann nn an2 n2 ann nn xn x1 x2 xn 0 k [X]k+1 = [B’] - [A’] [X]k Örnek : 5x1 2x 2 x 3 4 x1 4x 2 2x 3 3 x1 2x 2 4x 3 17 Denklem sisteminin çözüm kümesini (0,0,0) başlangıç değerlerini kullanarak bulunuz. Gauss-Seidel Yöntemi Bu yöntem Jakobi yönteminin geliştirilmiş halidir. Yakınsaması çok daha hızlıdır. Seidel yönteminde, k+1 iterasyonunda bulunan xik+1 sonuçları, j=i+1,...n olmak üzere xjk+1 sonuçlarının bulunmasında kullanılır. x1k 1 x 2k 1 x nk 1 b1 a1111 b2 a22 22 a1122 k a1133 k x x a1111 2 a1111 3 a2211 k 1 a23 23 x1 x 3k a22 a22 22 22 bn ann nn ann11 k 1 x1 ann nn a11nn k xn a1111 a2n 2n x nk a22 22 an2 n2 x 2k 1 ann nn ann nn 1 xk1 annnn n 1 Genel iterasyon formulu; x ik 1 bi aiiii i 1 j 1 aiijj k 1 x aiiii j n j i 1 aijij k x aiiii j İterasyona başlanmadan yakınsama koşuluna dikkat edilmelidir. #include<stdio.h> int main(void) { float a[10][10],b[10],x[10],y[10]; int n=0,m=0,i=0,j=0; printf("Kare Matrisin Boyutu : "); scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("A[%d,%d] :",i,j); scanf("%f",&a[i][j]); } } printf("\nSabitler Matrisi\n"); for(i=0;i<n;i++) { printf("B[%d] :",i,j); scanf("%f",&b[i]); } printf("Baslangic Degerleri\n"); for(i=0;i<n;i++) { printf("x[%d]_0 :",i); scanf("%f",&x[i]); } printf("\nIterasyon sayisi : " ); scanf("%d",&m); while(m>0) { for(i=0;i<n;i++) { y[i]=(b[i]/a[i][i]); for(j=0;j<n;j++) { if(j==i) continue; y[i]=y[i]-((a[i][j]/a[i][i])*x[j]); x[i]=y[i]; } printf("x%d = %f ",i+1,y[i]); } printf("\n\n"); m--; } return 0; } Örnek : 5x1 2x 2 x 3 4 x1 4x 2 2x 3 3 x1 2x 2 4x 3 17 Denklem sisteminin çözüm kümesini (0,0,0) başlangıç değerlerini kullanarak bulunuz. Örnek : 5x 6y 4z 7 3x y z 3 5x 3z 8 Denklem sisteminin çözüm kümesini (0,0,0) başlangıç değerlerini kullanarak bulunuz. Ödev : Yandaki devrede I1 , I2 ve I3 akımlarını genelleştirilmiş matris formatı ile, her iki iterasyon yöntemini kullanarak bulunuz. 4- SAYISAL TÜREV Tanım : x0 değerine pozitif veya negatif yönde verilen Δx (h) artımına karşılık f(x) fonksiyonundaki değişim Δy ise ve, limiti varsa, bu limite f(x) fonksiyonunun x0 noktasındaki türevi denir. Aynı zamanda f ’(x0), x0 noktasında fonksiyona teğet geçen eğrinin eğimidir. Türev herhangibir büyüklükteki değişim miktarıdır. Örneğin, yoldaki değişim miktarı hızı, hızdaki değişim miktarı ivmeyi verir. x(t) yol, v(t) hız, a(t) ivme fonksiyonu olmak üzere; v t x t a t dvv t d dtt d dx t d dtt 2 d x t dtt d 2 Bobin ve kondansatör uç denklemleri; d iL dt dt dV d VC C dt dt VL L iC Açısal hızın zamana göre türevi konumdur; Tr dZr dZ dt dt Sayısal türev hesabında gerçek teğet denklemi yerine, belli noktalardan geçen doğru denklemi (yaklaşık teğet denklemi) kullanılır. 1. İleri (sağ) Farklarla Sayısal Türev 2. Geri (sol) Farklarla Sayısal Türev 3. Merkez Farklarla Sayısal Türev Örnek : y x 2 fonksiyonunun x=2 noktasındaki türevini h=0.1 alarak yaklaşık olarak bulunuz. Taylor Serileri Taylor serileri sayısal yöntemlerde fonksiyonları yaklaşık olarak bir polinomla ifade etmek için kullanılır. Bir fonksiyonun herhangibir noktadaki değerinin, fonksiyonun ve türevlerinin bir başka noktadaki değerleri cinsinden tahmin edilebilmesini sağlar. Herhangibir f(x) fonksiyonu ve türevi [xi , xi+1] aralığında sürekli ise taylor serisi; f xi f xi 1 f f xi 1!! 1 xi 1 xi 1 f xi 2!! 2 xi 1 xi n xi n!! n xi 1 xi n Rn Burada; xi+1 = xi + h xi+1 - xi = h Rn : Kalan Ayrıca f(xi)=fi , f(xi+1)=fi+1 , ... olarak gösterilebilir. n f i1 f f f f 2 3 n f i i h i h i h i h Rn 1!! 1 2!! 2 3!! 3 n!! n 2 f xi 3!! 3 xi 1 xi 3 Taylor Serileri ile Sayısal Türev Hesabı 2 noktalı ileri fark Taylor Serileri ile 1. Türev hesabı (xi+1 , fi+1) ve (xi+2 , fi+2) değerleri biliniyorsa f’(xi) = ? n f i1 f f f f 2 3 n f i i h i h i h i h Rn 1!! 1 2!! 2 3!! 3 n!! n n xi 1 , f i 1 xi 2 , f i 2 f xi h f i 1 f xi 1 f i 2 f xi 2 f f f f 2 3 n f i i h i h i h i h Rn 1!! 1 2!! 2 3!! 3 n!! n f fi i 1!! 1 f x i 2h h n f f f 2 3 n 2h i 2h 2 2 i 2h 2 i 2h 2 Rn 2!! 2 3!! 3 n!! n xi noktasındaki 1. Türevin hesaplanması için 2. Türevli terimlere kadar olan kısımların alınmasıyla; 2 h f 2 xi 1 , f i 1 f i 1 f i hf i xi 2 , f i 2 f i 2 f i 2h f i 2h f i 2 i 1. Denklem (-4) ile çarpıp 2. Denklemle toplanırsa; +___________________ f i2 4 f i1 3fi 2h f i f i 1 2 h 2h 3fi f i 2 4 f i 1 2 noktalı geri fark Taylor Serileri ile 1. Türev hesabı (xi-1 , fi-1) ve (xi-2 , fi-2) değerleri biliniyorsa f’(xi) = ? n f i1 fi f fi f f 2 3 n h i h i h i h Rn 1!! 1 2!! 2 3!! 3 n!! n xi 1 , fi 1 fi 1 f xi 1 f xi h xi 2 , fi 2 fi 2 f xi 2 f xi 2h h xi 1, fi xi 2 , fi fi f i 1!! 1 fi h f i 1!! 1 f i 2!! 2 2h f i 2!! 2 h 2 2h 2 2 1 fi 2 fi h f 2 1 fi hf i 2 fi 2h f i 2h f i 2 i 1. Denklem (-4) ile çarpıp 2. Denklemle toplanırsa; +___________________ fi 2 4fi 1 3 f i 2h f i f i 1 f 2h i 2h 2 4 fi 1 3fi 2 noktalı ileri fark Taylor Serileri ile 2. Türev hesabı 2 xi 1 , f i 1 f i 1 h f i hf i f 2 xi 2 , f i 2 f i 2 f i 2h f i 2h f i 1. Denklem (-2) ile çarpıp 2. Denklemle toplanırsa; 2 i +___________________ f i 2 2 f i 1 fih f 2 i f i 1 f i2 2 h 2 f i1 f i 2 noktalı geri fark Taylor Serileri ile 2. Türev hesabı 2 xi 1, fi xi 2 , fi 1 fi 2 fi h f 2 1 fi hf i 2 fi 2h f i 2h f i 1. Denklem (-2) ile çarpıp 2. Denklemle toplanırsa; 2 i +___________________ fi 2 2fi fih f 2 1 i f i 1 fi 2 h 2 2fi 1 fi Örnek : y x 2 fonksiyonunun x=2 noktasındaki, 1. ve 2. türevini h=0.1 alarak, 2 noktalı ileri fark Taylor Serileri yaklaşık olarak bulunuz. 3 noktalı ileri fark Taylor Serileri ile 1. Türev hesabı (xi+1 , fi+1) , (xi+2 , fi+2) ve (xi+2 , fi+3) değerleri biliniyorsa f’(xi) = ? n fi f i1 xi 1 , f i 1 f fi f f 2 3 n h i h i h i h Rn 1!! 1 2!! 2 3!! 3 n!! n f i 1 2 f f 2 fi i h i h 1!! 1 2!! 2 xi 2 , f i 2 f i2 fi f i 1!! 1 2 2h f i 2 2h 2!! 2 xi 3 , f i 3 f i3 fi f i 1!! 1 3 3h f i 3 3h 2!! 2 f i 1 2 2 h f i hf i f 2 f i2 f i 2h f i 2h f f i3 f i 3h f i 2 18 (1) – 9 (2) + 2 (3) işlemi uygulanırsa; f i 1 6h 6h 11 f i 18 f i 1 (1) i 9 f i2 2 f i3 Nokta sayısının artması ile hassasiyet artar dolayısıyla hata azalır. Ödev : 3 noktalı ileri fark Taylor Serileri ile 2. Türev formülünü bulunuz. (2) i 9 2 h f 2 i (3) Örnek : f(x) = ex-2 fonksiyonun x=2 noktasındaki 1. ve 2. türevini, h=0.1 alarak yaklaşık olarak tüm yöntemleri kullanarak bulunuz. %Matlab% clc; h=0.1; a=2; syms x %x degiskenini tanimla f1 = exp(x-2); %fonksiyon tanimlandi f = inline (char(f1)); %f(x) olarak atandi %Basit ileri fark bif = (1/h)*(f(a+h)-f(a)); %Basit geri fark bgf = (1/h)*(f(a)-f(a-h)); %Merkez fark mf = (1/(2*h))*(f(a+h)-f(a-h)); %2 noktalı ileri fark taylor 1.turev t2ileri = (1/(2*h))*(-3*f(a)-f(a+2*h)+4*f(a+h)); %2 noktalı geri fark taylor 1.turev t2geri = (1/(2*h))*(3*f(a)+f(a-2*h)-4*f(a-h)); %3 noktalı ileri fark taylor 1.turev t3ileri = (1/(6*h))*(-11*f(a)+18*f(a+h)-9*f(a+2*h)+2*f(a+3*h)); %2 noktalı ileri fark taylor 2.turev t2ileri2 = (1/(h*h))*(f(a)-2*f(a+h)+f(a+2*h)); %2 noktalı geri fark taylor 2.turev t2geri2 = (1/(h*h))*(f(a)-2*f(a-h)+f(a-2*h)); fprintf('\n\te^(x-2) fonksiyonun sayisal turevi\n'); fprintf('\tAnalitik 1. ve 2. turev = %.5f \n\n',f(2)); fprintf('basit ileri fark: %.5f hata=%%%.5f\n',bif, 100*abs(1-bif)); fprintf('basit geri fark: %.5f hata=%%%.5f\n',bgf, 100*abs(1-bgf)); fprintf('merkez fark: %.5f hata=%%%.5f\n\n',mf,100*abs(1-mf) ); fprintf('2 noktalı ileri Taylor serisi ile 1.turev: %.5f 100*abs(1-t2ileri)); fprintf('2 noktalı geri Taylor serisi ile 1.turev: %.5f 100*abs(1-t2geri)); hata=%%%.5f\n',t2ileri, fprintf('3 noktalı ileri Taylor serisi ile 1.turev: %.5f 100*abs(1-t3ileri)); hata=%%%.5f\n\n',t3ileri, fprintf('2 noktalı ileri Taylor serisi ile 2.turev: %.5f 100*abs(1-t2ileri2)); fprintf('2 noktalı geri Taylor serisi ile 2.turev: %.5f 100*abs(1-t2geri2)); hata=%%%.5f\n',t2ileri2, hata=%%%.5f\n\n',t2geri, hata=%%%.5f\n',t2geri2, 4- SAYISAL İNTEGRAL c ϵ R olmak üzere F(x) fonksiyonunun türevi f(x) ise ( F’(x) = f(x) ); f x dx F x c eşitliğindeki “F(x)+c” ifadesine, f(x) fonksiyonunun belirsiz integrali denir. f(x) fonksiyonu [a,b]ÆR için sürekli ise; b f x dx b F x |a F b F a değerine, f(x) fonksiyonunun [a,b] aralığında belirli a integrali denir. Geometrik olarak belirli integral, belirtilen aralıkta, fonksiyon eğrisi ile koordinat ekseni arasındaki kalan alandır. y b a x f(x) İntegrali kolaylıkla hesaplanabilen eğriler; Diktörtgen alanı; Yamuk alanı (f(x)=x/2); İntegral Uygulamaları ; 1. Eğri altında kalan alanı bulmak, 2. İki eğri arasında kalan alanı bulmak, y f(x) g(x) a b x 3. Bir eğrinin x veya y ekseni etrafında 360o döndürülmesi ile oluşan kapalı bölgenin hacmini bulmak, y y f(x) b f(x) a a x Elektrik Mühendisliğinde kullanılan bazı integral uygulamaları; 1. Ortalama değer hesabı; y fort x T 2. Etkin değer hesabı; f 2 et 1 T T f 2 x dx 0 3. Fourier serilerinin hesabında. b x Yüksek dereceli polinomlarda veya karmaşık fonksiyonların belirli integrallerinin hesabında, eğri ile koordinat ekseni arasında kalan alanın hesabı zordur. Bu alanlar bilinen geometrik şekillerin alanları kullanılarak, yaklaşık olarak hesaplanabilir. Yani eğri ile koordinat ekseni arasında kalan alan daha küçük ve bilinen geometrik şekillere bölünerek elde edilen alanlar toplanarak hesapalanabilir. Sayısal Yöntemler; 1. Dikdörtgenler yöntemi İntegrali bulunacak eğri ilgili aralıkta küçük dikdörtgenlere bölünür, bu dikdörtgenlerin alanları toplanarak yaklaşık sonuç bulunur. 1.a) Sol toplamlar [a,b] aralığı n parçaya bölünür. Adım h b a n ‘dir. i=0,1,2,..,n-1 için xi+1=xi+h y f(x) f(x 2) f(x 1) f(x 0) a=x 0 I3 I2 I1 x1 x b=x 3 x2 1.b) Sağ toplamlar [a,b] aralığı n parçaya bölünür. Adım h b a n ‘dir. i=1,2,..,n için xi+1=xi+h y f(x) f(x 3) f(x 2) I3 f(x 1) I2 I1 a=x 0 x1 x2 b=x 3 x 1.c) Orta toplamlar [a,b] aralığı n parçaya bölünür. Adım h b a n ‘dir. i=0,1,..,n-1 için xi+1=xi+h y f(x) f(x 2 +h/2) f(x 1 +h/2) f(x 0 +h/2) I1 a=x 0 x1 x 0 +h/2 I3 I2 b=x 3 x2 x 1 +h/2 x 2 +h/2 x Örnek : 7 3 x 2 dx integralini dikdörtgenler yöntemini kullanarak bulunuz. (n=3,5,10) 1 7 Analitik Alan 3 x 2 dx I 1 7 x 3 |1 7 3 1 342 %sol clc; %integral sinirlari a=1; b=7; n=input ('Parca ='); h=(b-a)/n; fprintf('Adim = %.3f \n', h); toplam=0; x=1; for i=1:n y=3*x^2; fprintf('%d. alan=%.3f\n', i,y); x=a+i*h; toplam=toplam+h*y; end; fprintf('yaklasik integral = %.3f \n', toplam); %sag clc; %integral sinirlari a=1; b=7; n=input ('Parca ='); h=(b-a)/n; fprintf('Adim = %.3f \n', h); x=1; toplam=0; for i=1:n x=a+i*h; y=3*x^2; fprintf('%d. alan=%.3f\n', i,y); toplam=toplam+h*y; end; fprintf('yaklasik integral = %.3f \n', toplam); %orta clc; %integral sinirlari a=1; b=7; n=input ('Parca ='); h=(b-a)/n; fprintf('Adim = %.3f \n', h); toplam=0; x=1; for i=1:n y=3*(x+(h/2))^2; fprintf('%d. alan=%.3f\n', i,y); x=a+i*h; toplam=toplam+h*y; end; fprintf('yaklasik integral = %.3f \n', toplam); n=5 sol Adim = 1.200 1. alan=3.000 2. alan=14.520 3. alan=34.680 4. alan=63.480 5. alan=100.920 yaklasik integral = 259.920 sag Adim = 1.200 1. alan=14.520 2. alan=34.680 3. alan=63.480 4. alan=100.920 5. alan=147.000 yaklasik integral = 432.720 orta Adim = 1.200 1. alan=7.680 2. alan=23.520 3. alan=48.000 4. alan=81.120 5. alan=122.880 yaklasik integral = 339.840 2. Yamuk Yöntemi İntegrali bulunacak eğri ilgili aralıkta küçük yamuklara ayrılır, bu yamukların alanları toplanarak yaklaşık sonuç bulunur. Algoritma; y [a,b] aralığı n eşit parçaya bölünür. f(x 5) f(x 6) f(x) f(x 4) f(x 1) f(x 0) f(x 2) Yamuklar elde edilir. f(x 3) I1 I2 a=x 0 x1 I3 I4 x2 x3 I5 x4 Herbir yamuğun alanı hesaplanır. I6 x5 b=x 6 x Alanlar toplaranak yaklaşık integral sonucu bulunur. b I I1 I 2 I 3 I 4 I 5 I 6 f x dx a I1 I2 I3 I4 I5 I6 h 2 h 2 h 2 h 2 h 2 h 2 f x 0 f x1 f x1 f x 2 f x2 f x3 f x3 f x4 f x4 f x5 f x5 f x6 b h 2 f x dx I a f x 0 f x1 f x1 f x 2 f x 2 f x 3 f x 3 f x 4 f x 4 f x 5 f x 5 f x 6 b Genel hali f x dx I a h 2 f x0 f xn 2 n 1 i 1 f xi Örnek : 7 3 x 2 dx integralini yamuk yöntemini kullanarak bulunuz. (n=3,5,10) 1 n=3 için n=5 için Parca =5 Adim = 1.200 x(1.0)-->f(x)=3.000 x(2.2)-->f(x)=14.520 x(3.4)-->f(x)=34.680 x(4.6)-->f(x)=63.480 x(5.8)-->f(x)=100.920 x(7.0)-->f(x)=147.000 yaklasik integral = 346.320 n=10 için Parca =10 Adim = 0.600 x(1.0)-->f(x)=3.000 x(1.6)-->f(x)=7.680 x(2.2)-->f(x)=14.520 x(2.8)-->f(x)=23.520 x(3.4)-->f(x)=34.680 x(4.0)-->f(x)=48.000 x(4.6)-->f(x)=63.480 x(5.2)-->f(x)=81.120 x(5.8)-->f(x)=100.920 x(6.4)-->f(x)=122.880 x(7.0)-->f(x)=147.000 yaklasik integral = 343.080 Örnek : S 3 sin x dx integralini yamuk yöntemini kullanarak bulunuz. (n=5,10) 0 n=10 için Parca =10 Adim = 0.10472 x(0.0000)-->f(x)=0.00000 x(0.1047)-->f(x)=0.10453 x(0.2094)-->f(x)=0.20791 x(0.3142)-->f(x)=0.30902 x(0.4189)-->f(x)=0.40674 x(0.5236)-->f(x)=0.50000 x(0.6283)-->f(x)=0.58779 x(0.7330)-->f(x)=0.66913 x(0.8378)-->f(x)=0.74314 x(0.9425)-->f(x)=0.80902 x(1.0472)-->f(x)=0.86603 yaklasik integral = 0.500 3. Simpson (Paraboller) Yöntemi Belirli integralin bulunması için en yaygın kullanılan yöntemdir. Bu yöntemde, asıl fonksiyon yerine, bu fonksiyona 2.dereceden bir polinom uydurup, bu polinomla x-ekseni arasında kalan alanın hesabı bulunur. Eğer uydurulan polinom 1. dereceden ise, yöntem yamuk(trapez) yöntemi olur; y f(x) f(x 1) p(x)=ax+b f(x 0) x x1 x0 Eğer uydurulan polinom 2. dereceden ise, yöntem simpson(polinomlar) yöntemi olur; y f(x) f(x 2) p(x)=ax 2+bx+c Simpson yönteminde 3 noktadan geçen polinom denklemi kullanılır. Eğer aralıktaki nokta sayısı artırılırsa, hassasiyet artar, hata azalır. f(x 1) f(x 0) x0 x1 x x2 Langrange enterpolasyon formulune göre (Enterpolasyon konusu ayrıca incelenecektir) x 0 , x1 , x 2 noktalarından geçen parabol denklemi; P x x x0 x1 x1 x x2 x f x0 x0 x2 x1 x0 x0 x x2 x f x1 x1 x 2 x2 Bu fonksiyonun [x0 , x2] sınırlarına göre belirli integrali ise; x2 P x dx x0 h 3 f x 0 4 f x1 f x 2 x0 x0 x x1 f x2 x 2 x1 y Algoritma; f(x 5) f(x 6) f(x) [a,b] aralığı n eşit parçaya bölünür. f(x 4) f(x 1) f(x 0) f(x 2) 3 noktadan bir 2.dereceden bir eğri geçirilir. Böylece n/2 tane alt bölge oluşur. f(x 3) I1 I2 I3 Herbir bölgenin alanı hesaplanır. a=x 0 x1 x2 x3 x4 x5 x Alanlar toplanarak yaklaşık integral sonucu bulunur. b=x 6 b I I1 I 2 I 3 f x dx a x 0 , x1 , x 2 bölgesi; h f x 0 4 f x1 f x 2 I1 3 x 2 , x 3 , x 4 bölgesi; h f x2 4 f x3 f x4 I2 3 x 4 , x 5 , x 6 bölgesi; h f x4 4 f x5 f x6 I3 3 I h 3 f x0 f x6 2 f x2 f x4 b Genel hali I f x dx a h 3 4 f x1 f x 3 f x 5 f x0 f xn 4 n 1 f xi 2 i 1 i:tek i: Simpson yöntemi (n ε çift sayılar) için kullanılabilir. n 1 f xi j 2 j: j:cift Örnek : S 3 sin x dx integralini simpson yöntemini kullanarak bulunuz. (n=4) 0 Örnek : 1 1 dx integralini trapez ve simpson yöntemini kullanarak bulunuz. (n=4) 1 x2 0 n=4 için Örnek : Aşağıda, tam dalga kontrollü bir doğrultucunun çıkış dalga geriliminin değişimi verilmiştir. Bu gerilimin ortalama değerini bütün yöntemleri kullanarak bulunuz (n=4). Vyuk wt(radyan) 5- LİNEER OLMAYAN DENKLEM SİSTEMLERİNİN ÇÖZÜMÜ En az bir tanesi doğrusal olmayan n-denklemden oluşmuş sisteme lineer olmayan denklem sistemi denir. x2 x y 2 llineer degill li x4 y 5 lineer li 1. İki değişkenli lineer olmayan denklem sisteminin Newton Yöntemi ile çözümü f(x,y) = 0 g(x,y) = 0 olmak üzere, bu denklemler (x0 , y0) noktası için taylor serilerine açılırsa; Hatırlatma : f(x) fonksiyonun xi noktasındaki taylor serisi; wff x 0 , y 0 wff x 0 , y 0 'y w 'y 'x w 'x 1! wxx w 1! wy wy 1! 1! f x 0 'x , y 0 'yy f x0 , y0 g x 0 'x , y 0 'yy g x0 , y0 g x0 , y0 wg wg 'y w 'y 'xx w ' g x0 , y0 1!! 1 wxx w 1 wy wy 1!! 'x 'x 2!! 2 'x 'x 2!! 2 2 w f x0 , y0 wxx 2 w 2 2 'yy ' 2 w g x0 , y0 w y2 2 2!! 2 2 'yy ' w g x0 , y0 2!! 2 wxx 2 w w f x0 , y0 w y2 2 2 Taylor serisinde ilk 2 terim alınır ve (x1 , y1) noktasında da fonksiyonlar sıfıra eşitse; 0 f x0 , y0 wff x 0 , y 0 wff x 0 , y 0 'y w 'y 'x w 'x 1 wxx w 1 wy wy 1!! 1!! 0 g x0 , y0 wg g x0 , y0 wg g x0 , y0 'y 'y w 'x w 'x 1!! 1! wxx w 1 wy wy 1! Δx ve Δy bilinmeyenler olarak seçilip sistem matrisel olarak yazılırsa; wf x0 , y0 wf wwxx wf x0 , y0 wf wwyy 'xx ' f x0 , y0 wwg g x0 , y0 wwxx wwg g x0 , y0 wy wy ' 'y g x0 , y0 Bu sistem Ax=B olan lineer bir sistemdir. Sistem, (x0 , y0) başlangıç değerleri ile herhangibir yöntem kullanılarak çözülerek ve Δx, Δy ‘in ilk değerleri bulunur. Bu değerler kullanılarak, x1 = x0 + Δx y1 = y0 + Δy noktaları bulunur. Bu işleme |Δx|< ε ve |Δy|< ε ‘a kadar devam edilir. İterasyon için sistem; wf xk , yk wf wwxx wf xk , yk wf wy wy 'xx ' f xk , yk wwg g xk , yk wwxx wwg g xk , yk wwyy 'y ' g xk , yk Örnek : Aşağıda verilen denklem sistemini x0 = 0.6 ve y0 = 1.5 başlangıç değerlerini kullanarak çözünüz. x2 y 3 x y2 5 Örnek : Aşağıda verilen denklem sistemini x0 = 0.5 ve y0 = 3 başlangıç değerlerini kullanarak çözünüz. x 2 y2 9 ex 5 x y 0 2. Üç değişkenli lineer olmayan denklem sisteminin Newton Yöntemi ile çözümü f(x,y,z) = 0 g(x,y,z) = 0 v(x,y,z) = 0 olmak üzere, bu denklemler (x0 , y0 , z0) noktası için taylor serilerine açılırsa; f x 0 'x , y 0 'y , z 0 'zz f x 0 , y 0 ,z 0 'y wwff x 0 , y 0 ,,zz 0 'y 'xx wwff x 0 , y 0 ,,zz 0 ' 'z wwff x 0 , y 0 ,,zz 0 'z 1! wx wx 1 wy wy 1 wwzz 1! 1!! 1!! g x 0 'x , y 0 'y, z 0 'zz g x 0 , y 0 ,z 0 g x 0 , y 0 ,,zz 0 g x 0 , y 0 ,,zz 0 'z g x 0 , y 0 ,,zz 0 'y wwg 'y 'x wwg 'z wwg 'x 1! wwxx 1 wwyy 1! wwzz 1! 1!! 1! v x 0 'x , y 0 'y, z 0 'zz v x 0 , y 0 ,z 0 'y wwvv x 0 , y 0 ,,zz 0 'z 'y 'x 'x wwvv x 0 , y 0 ,,zz 0 'z wwvv x 0 , y 0 ,,zz 0 1! 1!! 1! 1! wwxx 1 wwyy 1! wwzz Taylor serisinde ilk 2 terim alınır ve (x1 , y1 , z1) noktasında da fonksiyonlar sıfıra eşitse; 0 f x 0 , y 0 ,z 0 'y wwff x 0 , y 0 ,,zz 0 'y 'x wwff x 0 , y 0 ,,zz 0 'z wwff x 0 , y 0 ,,zz 0 'x 'z 1! wx wx 1 wy wy 1 wwzz 1! 1!! 1!! 0 g x 0 , y 0 ,z 0 g x 0 , y 0 ,,zz 0 g x 0 , y 0 ,,zz 0 'z g x 0 , y 0 ,,zz 0 'y wwg 'y 'x wwg 'z wwg 'x 1! wwxx 1 wwyy 1 wwzz 1! 1!! 1!! 0 v x 0 , y 0 ,z 0 'y wwvv x 0 , y 0 ,,zz 0 'z 'y 'x wwvv x 0 , y 0 ,,zz 0 'z wwvv x 0 , y 0 ,,zz 0 'x 1! 1!! 1!! 1! wwxx 1 wwyy 1 wwzz Δx, Δy ve Δz bilinmeyenler olarak seçilip sistem matrisel olarak yazılırsa; wwff x 0 , y 0 ,,zz 0 wwxx wwgg x 0 , y 0 ,,zz 0 wwxx wwvv x 0 , y 0 ,,zz 0 wwxx w f x 0 , y 0 ,,zz 0 wf wwyy wwgg x 0 , y 0 ,,zz 0 wy wy wwvv x 0 , y 0 ,,zz 0 wy wy w f x 0 , y 0 ,,zz 0 wf wwzz wwgg x 0 , y 0 ,,zz 0 wz wz wwvv x 0 , y 0 ,,zz 0 ,,zz 0 wwzz 'x f x 0 , y 0 ,z 0 'yy ' g x 0 , y 0 ,z 0 'z ' v x 0 , y 0 ,z 0 Bu sistem Ax=B olan lineer bir sistemdir. Sistem, (x0 , y0, z0) başlangıç değerleri ile herhangibir yöntem kullanılarak çözülerek ve Δx, Δy ve Δz ‘nin ilk değerleri bulunur. Bu değerler kullanılarak, x1 = x0 + Δx y1 = y0 + Δy z1 = z0 + Δz noktaları bulunur. Bu işleme |Δx|< ε ve |Δy|< ε ve |Δz|< ε ‘a kadar devam edilir. Newton yönteminde yakınsama koşullarını çok iyi olmasına ragmen başlangıç degerleri iyi seçilmezse sonuç alınamaz. Newton yönteminin algoritması basittir .Yöntem teorik olarak kusursuzdur. Pek çok problem için gerçek çözüme yakınsar. Örnek : Aşağıda verilen denklem sistemini x = 1 , y = 2 ve z=3 başlangıç değerlerini kullanarak çözünüz. xy2 z 5 x y y2 z 3 x 2 y 2 2 z 3 17 Örnek : Aşağıda verilen denklem sistemini x10 = 0.1 , x20 = 0.1 ve x30 = 0.19 başlangıç değerlerini kullanarak çözünüz. 3x1 x12 e 1 0 2 cos x 2 x 3 2 81 x 2 0.1 1 sin x 3 1.06 0 x1 x2 20 x 3 9.472 0 3. Basit İterasyon Yöntemi Lineer olmayan bir denklemin kökünü bulmak için kullanılan Basit İterasyon Yöntemi bazı değişikliklerle lineer olmayan denklem sisteminde kullanılır. f 1 x1 , x 2 , , x n 0 f 2 x1 , x 2 , , x n 0 f n x1 , x 2 , , x n 0 formatında verilen denklem sistemi, alttaki formata dönüştürülür. x1 g1 x1 , x 2 , , x n x 2 g 2 x1 , x 2 , , x n 0 0 xn 0 g n x1 , x 2 , , x n Yeni sistem yakınsama koşulunu sağlıyorsa Xk+1 = G(Xk) formülü ile itersayona başlanır. Yakınsama Koşulu : Lineer olmayan bir denklemin yakınsama koşulu ile aynı yapıdadır; wwg g1 wwg g2 wg wgn d1 wwxx1 wwxx1 wwxx1 wwg g1 wwg g2 wg wgn d1 wwxx 2 wwxx 2 wwxx 2 wwg g1 wwg g2 wwg gn d1 wwxx n wwxx n wwxx n Örnek : Aşağıda verilen denklem sistemini basit iterasyon yöntemi kullanarak çözünüz. (x10 = 3.48 , x20 = 2.26) x1 3 log10 x1 2 x12 x1 x 2 x 22 0 5 x1 1 0 6- ENTERPOLASYON Belirli bir aralıkta, bilinen değerleri [(x0,y0) ..(xn,yn)] kullanarak, bilinmeyen değerlerin hesaplanmasına enterpolasyon denir. Bu amaçla, bilinen veriler kullanarak uygun fonksiyonlar uydurulur. En yaygın olarak polinom enterpolasyonu kullanılır. n. dereceden polinomun genel hali; a0 a1 x a2 x 2 an x n f x (n+1) veri için, bütün noktalardan geçen bir tane n.dereceden polinom bulunur. 2 noktayı 1.dereceden polinom (doğru), 3 noktayı 2. Dereceden polinom (parabol) birleştirir. y y x x Doğrusal Enterpolasyon y (xo,fo) ve (x1,f1) biliniyorsa, bu 2 noktadan geçen doğrunun denkleminin bulunması doğrusal enterpolasyondur. f1 f(x) Bu 2 noktadan geçen doğrunun denklemi; f(x)=a0 + a1 x kabul edilerek, katsayıları hesaplanır. f0 x x0 x0 , f f 0 0 x1 a 0 a1 x 0 bu denklem sistemi çözülerek katsayılar bulunur. f 1 a 0 a1 x1 x1 , f 1 1 x0 a0 f 1 x1 a1 f1 0 Cramer yöntemi ile; f a0 a1 0 x0 f1 x1 1 x0 1 x1 1 f 1 f1 f 0 x1 x1 f 1 x0 x0 0 1 x0 f1 x1 f0 x0 1 x1 f x L 0 f 0 L1 f 1 f f x L0 x1 x1 şeklinde düzenlenirse; f 1 x0 f 1 x x1 x 0 x x x0 , L1 x0 x1 x 0 0 x1 f 0 x x x0 x1 x f 0 f x1 x 0 x1 x 0 1 Polinomal Enterpolasyon (Lagrange Enterpolasyonu) y f2 (xo,fo) , (x1,f1) ve (x2,f2) biliniyorsa, bu 3 noktadan geçen parabol denkleminin bulunması; f(x) f(x)=a0 + a1 x + a2 x2 f1 kabul edilerek, katsayıları hesaplanır. f0 x x0 , f 0 x0 x1 f a 0 a1 x 0 a 2 x 20 0 x2 x1 , f 1 f 1 a 0 a1 x1 a 2 x12 x2 , f f 2 bu denklem sistemi çözülerek katsayılar bulunur. a 0 a1 x 2 a 2 x 22 2 Denklem sistemi çözülüp f x x L0 x0 x1 x x1 x0 L0 f 0 L1 f 1 L2 f x x2 , L1 x2 x1 x0 x x0 x1 x2 2 katsayıları bulunursa; , L2 x2 x x0 x x2 x0 x2 x1 x1 Bu katsayılara Lagrange polinomları denir. Lagrange katsayıları n dereceli polinom için yazılırsa; x Lk xk x0 x x0 xk x1 x xk 1 x x1 xk xk 1 xk xk 1 x xk 1 xn xk n xn j 0 jzk Fonksiyon ise; n f x Lk f k n n Pn x 0 n=1 Æ(xo,fo) ve (x1,f1) k k 0 j 0 jzk x xj xk xj f k x xj xk xj n=2 Æ (xo,fo) , (x1,f1) ve (x2,f2) Örnek : x 0 1 2 y 3 4 7 Noktalarından geçen polinomu Lagrange Enterpolasyon formülünü kullanarak bulunuz. Örnek : x 0 1 2 3 y -0.5 0 0.5 1 f(x)=sin(πx) için yandaki noktalarından geçen 3. Dereceden polinomu Lagrange Enterpolasyon formülünü kullanarak bulunuz. En Küçük Kareler Yöntemi y Deneysel olarak elde edilmiş 8 veri yanda görülmektedir. 7. dereceden bir polinom uydurulursa, bu eğri bütün noktalardan geçer. Ancak verilerdeki değişkenlik nedeniyle, eğri salınımlı olacaktır. Bu gibi durumlarda, her bir noktadan geçmeyen, verilerin genel eğilimine veya şekline uyan fonksiyon üretilir. x En küçük kareler yöntemi; herbir nokta için, uydurulan eğri ile gerçek fonksiyon arasındaki farkların karelerinin toplamının minimum yapılmasıdır. Gerçek fonksiyon f(x) ve uydurulan fonksiyon g(x) ise; 2 n g xi i ‘nin minimum yapılması ile g(x) fonksiyonunun katsayıları belirlenir. f xi 1 Hatanın minimum yapılması, fark fonksiyonunun 1.türevinin sıfıra eşitlenmesi ile sağlanır. 1. dereceden polinom uydurulması; Bilinen n tane (xi, yi) noktası için en küçük kareler yöntemi kullanılarak g(x)=a0 + a1 x fonksiyonunun elde edilmesi; n a0 a1 x i e a0 ,a1 i 2 f xi 1 Yukardaki e fonksiyonunun minimum olması için 1. türevi sıfıra eşitlenir; w e a 0 ,,a a1 w ai w e a 0 ,,a a1 w a0 w e a 0 ,,a a1 w a1 0 , i 0,1 n f xi 0 ve a1 w e a 0 ,,a n n n a 0 a1 0 1 Matrisel olarak ifade edilirse; n f xi xi 0 f xi 1 i 1 1 n x i a1 a0 i n xi i a 0 a1 x i 0 w a1 1 2 i w a0 a 0 a1 x i 2 i w e a 0 ,,a a1 n x 2i i 1 xi f xi i 1 n n f xi 1 i n 1 i 1 g(x)=a0 + a1 x elde edilir. n x 2i xi i a0 xi i Herhangibir yöntemle çözülerek a0 ve a1 katsayıları bulunarak; n n a1 xi f xi 1 i 1 Örnek : Aşağıda verilen noktalar için 1. dereceden polinomu (g(x)=a0 + a1 x) en küçük kareler yöntemini kullanarak bulunuz. x 0 1 2 4 7 y 1 4 7 13 12 2. dereceden polinom uydurulması; Bilinen n tane (xi, yi) noktası için en küçük kareler yöntemi kullanılarak g(x)=a0 + a1 x +a2 x2 fonksiyonunun elde edilmesi; n i 2 a0 a1 x i a2 x 2i e a0 ,a1 ,a2 f xi Kısmi türevleri bulunup sıfıra eşitlenerek matrisel 1 olarak ifade edilirse; n n n i n 1 1 i 1 i a1 1 xi f xi i n x 4i i Herhangibir yöntemle çözülerek a0 , a1 ve a2 katsayıları bulunarak; g(x)=a0 + a1 x +a2 x2 elde edilir. 1 n x 3i 1 1 n x 3i n i f xi i n x 2i 1 a0 1 x 2i n i i n xi i n x 2i xi 1 x 2i f x i a2 i 1 Örnek : Aşağıda verilen noktalar için 2. dereceden polinomu (g(x)=a0 + a1 x +a2 x2 ) en küçük kareler yöntemini kullanarak bulunuz. x 0 2 3 5 8 y -6 0 6 24 66 Üstel fonksiyon uydurulması; Bilinen n tane (xi, yi) noktası için en küçük kareler yöntemi kullanılarak g x a0 e a 1 x fonksiyonunun elde edilmesi için öncelikle bu fonksiyonun doğrusallaştırılması gerekir. Çünkü; ai ‘lere göre kısmi türev alınıp sıfıra eşitlendiğinde lineer denklem sistemi oluşmaz. Her iki tarafın ln ‘i alınırsa; g x a0 e a 1 y n ln a 0 e a 1 ln y ln a0 ln e a 1 x ln a0 a1 x x 2 l a0 a1 x i ln e a0 ,a1 i x ln y i 1 Yukardaki e fonksiyonunun minimum olması için 1. türevi sıfıra eşitlenir; w e a 0 ,,a a1 0 , i 0,1 w ai w e a 0 ,,a a1 n i w e a 0 ,,a a1 n i 0 ve ln y i 1 l a 0 a1 x i ln 2 w a1 w a0 l a 0 a1 x i ln 2 w a0 w e a 0 ,,a a1 a1 w e a 0 ,,a w a1 1 a0 0 xi 0 0 1 1 ln y i 1 i 1 n x i a1 ln a 0 i n xi i n ln y i n n ln a 0 a1 n x 2i i 1 x i ln y i i 1 Matrisel olarak ifade edilirse; n n n xi i n 1 i n 1 i 1 Herhangibir yöntemle çözülerek a0 ve a1 katsayıları bulunarak; elde edilir. n x 2i xi i ln y i lln n a0 1 a1 x i ln y i i 1 Örnek : Aşağıda verilen noktalar için üstel fonksiyonu ( g x yöntemini kullanarak bulunuz. x 0 1 2 3 5 8 y 3 8.155 22.167 60.257 445.239 8942.874 a0 e a 1 x ) en küçük kareler 7- Bayağı Diferansiyal Denklemlerin Sayısal Çözümü Fiziksel problemlerin ifade edilmesinde (modellenmesinde) ve çözülmesinde kullanılır. Yay-kütle sistemi, kondansatör-bobin içeren elektronik devreleri, kimyasal reoksiyonlar, bir kütlenin bir başka cismin etrafındaki hareketi problemleri diferansiyel denklem formundadır. Herhangibir değişkene (veya değişken grubuna) bağlı bilinmeyen bir fonksiyon (yada fonksiyonlar) ile bu fonksiyonun türevleri arasındaki bağıntıya adi diferansiyel denklem (yada sistem) denir. Tek denklem halinde en yüksek mertebeli türev, denklemin mertebesini belirler; denklem sistemi halinde ise en yüksek mertebeli denklemin mertebesi sistemin mertebesi olarak kabul edilir. Adi türevli bir çok diferansiyel denklemin analitik çözümleri olmasına rağmen, bunların çözümleri ya çok zor ya da imkansızdır. Bu yüzden, sayısal yöntemler geliştirilmiştir. Eğer diferansiyel eşitlik n. Mertebeden türeve sahip ise bu durumda bu eşitliğen. Mertebeden diferansiyel eşitlik denir. Diferansiyel denklemler katsayılarına , mertebe ve derecelerine göre sınıflandırıabilir. 1- Katsayılarına Göre Sınıflandırma K1 dy K2 y dx f ( x) Formunda bir diferansiyel denklem için; a- K1 ve K2 katsayıları sabit ise; (K1=15, K2=-4 , f(x)=100 sin(Zx) ) Sabit Katsayılı Diferansiyel Denklem veya Sabit katsayılı lineer diferansiyel denir. 15 b- K1 ve K2 katsayıları x’ in fonksiyonu ise; (K1=5x, K2=-4x , f(x)=100 sin(Zx) ) Değişken Katsayılı Diferansiyel Denklem veya Değişken katsayılı lineer diferansiyel denir. 5x c- dy 4 y 100Sin(Zx) dx dy 4 xy 100Sin(Zx) dx K1 ve K2 katsayıları y’ in fonksiyonu ise; (K1=(3+5y), K2=-4 , f(x)=100 sin(Zx) ) Doğrusal olmayan (non-lineer) Diferansiyel Denklem denir. (3 5 y) dy 4 y 100Sin(Zx) dx 2- Mertebe ve Derecelerine Göre Sınıflandırma Bir diferansiyel eşitik içerisinde m,n en büyük olmak kaydı ile ; § dmy · ¨ ¸ ¨ dx m ¸ © ¹ n İfadesinde m eşitliğin mertebesini ve n ise eşitliğin derecsini verir. m.mertebeden ve n.dereceden dif. Eşitlik denir. Diferansiyel Denklemlerin Çözümü Elektrik devrelerinde, elektrik makinalarının dinamik analizinde ve elektromekanik sistemerin tasarımı, modellenmesi ve analizinde ve diğer tüm elektrik mühendisliği konuları kapamında diferansiyel denklemler kullanılmaktadır. Diferansiyel denklemlerin çözülmesi ile mevcut sistemin davranışı belirlenebilmektedir. Diferansiyel denklemlerin çözümü için 2 yaklaşımı mevcuttur. Bunlardan ilki analitik çözüm, diğeri ise sayısal çözümdür. Analitik çözüm Diferansiyel Denklemler dersinde ayrıntılı olarak işlenmiştir. Burada tekrar edilmeyecektir. Bu ders kapsamında sayısal çözüm yöntemlerine değinilecektir. 2 yaklaşım arasındaki fark öğrenci tarafından kolaylıkla anlaşılabilecektir. dy dx f ( x, y ) formunda ki diferansiyel eşitliğe 1. Dereceden tek değişkenli adi diferansiyel denklem denir. En basit formda bir diff. Denklem şekildeki RL devresinden türetilebilir. di(t ) dt V (t ) R i(t ) L L 1- EULER YÖNTEMİ Diferansiyel denklemlerin sayısal çözümü için geliştirilen yöntemlerin başında gelir. Basit olmasına rağmen oldukça başarılı sonuçlar vermektedir. dy Eğer xi noktasında yi biliniyorsa ; dx dy dx # x xi f ( x, y ) olan bir diff. denklem için; f ( xi , yi ) x xi yi 1 yi h Olarak yazılabilir.Her iki eşitlik ten yi 1 dy dx yi 1 yi h f ( xi , yi ) olarak yazılır ve buradan yi+1 çözülür ise ; yi h f ( xi , yi ) yazılabilir. Böylece (xi,yi) başlangıç noktası kullanılarak (xi+1,yi+1) noktası buluınmuış olur. Bu şekilde nokta nokta çözüm yapılarak diferansiyel eşitlik çözülmüş olur. Çözüme başlamak için muhakkak başlangıç noktası x0,y0 bilinmeli ve h adımı belirlenmelidir. Çözüm sonunda bir tablo oluşturulur. Oluşturulan tablo çizdirilerek çözüm değişimi görülebilir. Not : Aynı ifade taylor serisi yardımı ile bulunabilir. Diferansiyel denkleminin çözümü y=y(x) olsun, x=x0 için y(x0)= y0 verildiğine göre olur, taylor serisinden ilk iki terim kullanılırsa; x x0 x1 x2 x3 . . xn y y0 y1 y2 y3 . . yn Burada sadece x3 için y3 bulmak gerekse bile sırası ile y1 ve y2 öncelikle bulunmalıdır. Dorudan y3 hesaplanamaz. ÖRN-1: . dy dx 2 x y(0)=1 ise y(2)=? (h=0.5) ÖRN-2: . dy dx y x y(4)=0.75 ise y(7)=? (h=1) ÖRN -3 : Devreden i(t) akımının değişimini EULER yöntemi ile bulunuz. Analitik yöntem ile karşılaştırınız. t0=0 iken I0=0 ve h= 0.1 olarak alıp kullanınız. 2- Runge-Kutta Yöntemi dy dx f ( x, y ) formunda bir diff. eşitlğin çözümü Euler yöntemine benzer, tüm sayısal yöntenler gibi bu yöntemde de bir başangıç koşulu ile durum değişkeninin adım adım hesabına dayanır. Her adımda xi değişkeni h kadar artırılıp xi+1 için yi+1 değeri hesaplanır. Runge-Kutta yönteminde yi+1 hesabı için birkaç adım işlem yapılır. Genel denklemi ; dy dx dy dx y i 1 k1 k2 k3 k4 f ( x, y ) olan bir diff. Denklem için; f ( x, y ) Burada dikkat edilmesi gereken nokta k1,k2,k3 ve k4 hesabı içinde değişkenlerin birine h’ li terim diğerine ise k’lı terimler eklenmektedir. ise 1 k1 2k2 k3 k4 6 h f xi , yi dy dx h k · § h f ¨ xi , yi 1 ¸ 2 2¹ © h k · § h f ¨ xi , yi 2 ¸ 2 2 ¹ © h f xi h, yi k3 y i 1 yi k1 k2 k3 k4 ÖRN 4: . dy dx y x y(4)=0.75 ise y(7)=? (h=1) f ( x, y ) ise 1 k1 2k 2 k3 k 4 6 h f xi , yi yi h k · § h f ¨ xi , yi 1 ¸ 2 2 ¹ © h k · § h f ¨ xi , yi 2 ¸ 2 2 ¹ © h f xi h, yi k3 ÖRN 5: Devreden i(t) akımının değişimini Runge-Kutta yöntemi ile bulunuz. Analitik yöntem ve EULER ile karşılaştırınız. t0=0 iken I0=0 ve h= 0.1 olarak alıp kullanınız. 3- ADAMS Yöntemi dy dx f ( x, y ) formunda bir diff. eşitliğin çözümü için birden fazla başlangıç koşuluna gerek vardır. Kullanılan nokta sayısı ile orantılı olarak 2 adımlı, 3 adımlı, 4 adımlı gibi farklı yapıları mevcuttur. Nokta sayısı arttıkça gerekli başlangıç değeri sayısı da artmaktadır. dy dx f ( x, y ) olan bir diff. Denklem için; yi 2 yi 1 fi 1, fi gereklidir. Yani h 3 fi 1 fi 2 f ( xi 1, yi 1), f ( xi , yi ) gereklidir. 2 adımlı İlk hesaplanacak değer y2 yi 3 3 adımlı yi 2 f ( x0 , y0 ), f ( x1, y1) h 23 fi 2 16 fi 1 5 fi 12 İlk hesaplanacak değer y2 ÖRN-6: . f 0 , f1 h y1 3 f1 f0 2 dy dx y1 y x f0 , f1, f 2 h 3 f1 f0 2 y(4)=0.75 ise y(7)=? fi 2 , fi 1, fi gereklidir. Yani f ( xi 2 , yi 2 ), f ( xi 1, yi 1), f ( xi , yi ) f ( x0 , y0 ), f ( x1, y1), f ( x2 , y2 ) (h=1) ÖRN 7: Devreden i(t) akımının ve Vc(t) kondansatör geriliminin değişimini ; a- EULER b- RUNGE-KUTTA c- ADAMS Yöntemleri ile 2 adım bulunuz. t0=0 iken I0=0 ve h= 0.1 olarak alıp kullanınız. Adams yönteminde 2. Başlangıç değerleri olarak EULER ile bulunan değerleri kullanınız. ÖDEV : Devreden i(t) akımının değişimini tüm yöntemler ile 3 adım bulunuzRunge-Kutta yöntemi ile bulunuz. Analitik yöntem ile karşılaştırınız. t0=0 iken I0=0 ve h= 0.1 olarak alıp kullanınız. Adams yönteminde 2. Başlangıç değerleri olarak EULER ile bulunan değerleri kullanınız.