YMT 222 SAYISAL ANALİZ (Bölüm 1) Prof. Dr. Asaf Varol 2012-2013 Bahar Dönemi
Bir bilgisayarda yapılan temel işlemler Aritmetik İşlemler: Toplama, Çıkarma, Çarpma ve Bölme’dir. Mantıksal İşlemler: İki sayının büyüklüğünün işareti veya karşılaştırmasıdır. Data Transfer: Hafızadaki veriyi bir yerden başka bir yere transfer eder. Giriş/Çıkış İşlemleri: Bilgisayarda bilgi çıkışını, bilginin okunmasını, yazılmasını kontrol eder.
Bilgisayarlar, sayıları sözcük adı verilen birimlerde saklarlar Bilgisayarlar, sayıları sözcük adı verilen birimlerde saklarlar. Bu birimler ikili basamaklar ve bitlerden oluşur. Matematiksel sayılar temsil edilerek değişik sayı sistemleri kullanılır. Genellikle kullanılan sayı sistemleri; Hexadecimal(16), Decimal(10), Octal(8) ve Binary(2)’dir.
Örneğin; 8410 sayısını onluk sistemde gösterecek olursak; 8×103 + 4×102 + 1×101+ 0×100 = 8000+400+10+0 = 8410
Doubling (ikili sayı) prosedürü olarak bilinen bir metot izlenebilir Doubling (ikili sayı) prosedürü olarak bilinen bir metot izlenebilir. Bir onluk sayı olan N şu şekilde gösterilir. N=2Q1 + R1 Q1=2Q2 +R2 Qk= 0 + Rk+1 Bu bölümlerden kalan R’ler tersten yazılarak ikili sayılar elde edilir. B=Rk+1RkRk-1…. R1
ÖRNEK:Decimal N=8410 sayısını ikili sayıya dönüştürürsek; ÇÖZÜM: Sıralı olarak 2’ye bölümler takip edilir; 8,410 = (24,205) + 0 65 = (232) + 1 4,205 = (22,102) + 1 32 = (216) + 0 2,102 = (21,051) + 0 16 = (28) + 0 1,051 = (2525) + 1 8 = (24) + 0 525 = (2262) + 1 4 = (22) + 0 262 = (2131) + 0 2 = (21) + 0 131 = (265) + 1 1 = (20) + 1 8410 ‘ un binary karşılığı kalanı sondan başa doğru basamaklar toplanarak verilir. 10000011011010 = 1213 + 0212 + 0211 + 0210 + 029 + 028 + 127 + 126 + 025 + 124 + 123 + 022 + 121 + 020
Sayıların Temsilleri Sayılar genellikle normal form notasyonları kullanılarak elde edilir. x = m.10E 10-1 < m < 1 x ≠ 0 için m mantis, E üs’tür. 0 sayısı toplam olarak normal notasyona sahiptir. 0.100
Eğer bir sayı normal formda veya kayan noktalı formunda yazılmak istenirse şu şekilde olmalıdır; x = 0.d1 d2 d3 ... dk10n d1 0 ve dk 0 la bir sayının önemli basamakları olduğunu ve sayının gerçek değerine göre güvenle kullanılabilen basamaklar olduğunu söyleyebiliriz.
Ondalık noktaları kaydırmak için kullanılan 0 noktaları önemli basamaklar olarak sayılmazlar. Kalan sıfırlar ise bazen önemli sayıldıkları gibi bazen önemsiz olarak da sayılabilirler. Örneğin; X=0,0002815 4 önemli figüre sahiptir. X=1,200 4,3 veya 2 önemli figüre sahip olabilir. Bazı örnekler de şunlardır; 46.45072800 = 0.46450728x102 8,9 veya 10 önemli basamak -335.12 = -0.33512x103 5 Önemli basamak 0.00517 = 0.517x10-3 3 Önemli basamak 0.74 = 0.74x100 2 Önemli basamak
Sayıların Bilgisayarda Gösterimi Şekilde ikili taban olarak temsil edilen bir sayının ondalık karşılığı verilmiştir. -(026 + 025 + 024 + 123 + 022 + 121 + 120) = -(0 + 0 + 0 + 8 + 0 + 2 + 1) = -11 Bir tamsayının 8 bitle binary gösterimi
Örnek 8 bitlik makine dilinde ifade edilebilecek en büyük tam sayı; Imax = +(126 + 125 + 124 + 123 + 122 + 121 + 120) = +( 64 + 32 + 16 + 8 + 4 + 2 + 1 ) = +(127) = +(27 - 1) genelde ; Imax = +[2(n -1) - 1]; Imin = -[2(n -1) - 1] Bilgisayarlar 32 bit kelime kullandığı için (n=32); Imax = 2,147,483,647
Bir kayan noktanın yazılması x= işaret.m.b(işaret)E Burada m mantis, b taban ( b=2 binary sistem için) ve E ise üs’dür.
Örnek 8 bitlik bir makinede, (binary tabanlı sayı sistemi), sıfır olmayan en küçük kayan noktalı pozitif sayının ondalık tabanındaki karşılığı nedir, hesaplayınız. Not: Kayan noktalı sayı sisteminde, bir bit mantis işareti için, 4 bit mantisin kendisi için, bir bit üs işareti için ve 2 bit de üs basamakları için kullanıldığını göz önünde bulundurunuz. Çözüm: m = +(023 + 022 + 021 + 120) m = +( 0 + 0 + 0 + 1 ) = 1 E = -[(121) + (120)] = -(2+1) = - 3 sayı = 12-3 (ondalık sistemde 0,1250 sayısına eşittir.)
Hatalar Sayıların kesinliği, doğruluğu ve tahmini ele alındığında ne fiziksel ölçümler ne de aritmetik hesaplamalar tam olarak kesinlik taşımaz. Bir mühendisin özdeyişi şu olmalıdır: “Bilimde kesin, doğru veya tam olan hiçbir şey yoktur.” Doğruluk; tahmin edilen bir değerin veya cevabın, onun ne kadar tam olduğunun gerçek ölçüsüdür. Birçok durumlarda kesinliğin değeri bilinmediğinden, en iyi ve doğru cevap genellikle en iyi tahmin edilen değere göre ölçülür. Kesinlik; bir niceliğin değerlerinin defalarca ölçülmesi ile ölçümlerin birbiriyle ne kadar yakınlıkta olduğunun ifadesidir. Böylece önemli figürlerin sunumu, ölçümlerin ortalaması ve varyansı ile ifade edilir.
Hatalar Mutlak Doğru Hata Et =(gerçek değer) - (yaklaşık değer) Yaklaşık Mutlak Hata Ea =(en iyi tahmin) - (yaklaşık değer) Doğru Bağıl Hata et =(gerçek değer) - (yaklaşık değer)/gerçek değer Yaklaşık Bağıl Hata ea = (en iyi tahmin) - (yaklaşık değer)/ en iyi tahmin
Dizi, sıralar ve tekrarlamalar için yaklaşık hata şöyle tanımlanabilir; Yaklaşık mutlak hata (tekrarlamalı hesaplar için); Ea= güncel değer – önceki değer Yaklaşık bağıl hata (tekrarlamalı hesaplar için); ea= güncel değer – önceki değer / güncel değer Bir niceliğin tam değeri verilmediği zaman gerçek bir hatanın hesaplanması mümkün değildir. Bununla birlikte hatanın sınırlarını belirlemede yaklaşık hata kullanılır. Bunun için Scarborough Kriteri kullanılabilir. Scarborough Kriteri; Eğer yaklaşık bağıl hata ea < 0.510-m ise o zaman sonuç m ‘nin en küçük basamağı için doğrudur.
ÖRNEK: Arctan için terim sayılarının hesaplanmasında Taylor serisindeki iki önemli basamak olan değeri ve x=1.0 olan noktanın bilinmesi gerekir. = 3.141592653589793 sayısı aşağıdaki fonksiyon ile gösterilir; = 4.0 Arctan(1.0) Sonsuz seri şöyle verilmiştir; n=1,2,3,…. Yukarıdaki seriden hesaplanan cevabını kendi cevabınızla kontrol ediniz. Doğru bağıl hata ve yaklaşık bağıl hata, terim sayısı fonksiyonu ile ilgilidir.
Bu tür serilerde ea’nın tanımı aşağıdaki gibidir; ea= güncel değer – önceki değer / güncel değer ea= son kullanılan terim – güncel toplam Eğer bu güncel toplamın iki önemli basamağa doğru olduğunu farz edersek; ea 4 (-1)(n+1) x2n-1/(2n-1)/(3.14) x = 1 Scarborough kriterine göre; ea (4/3.14)/(2n-1) < 0.510-2 Bu denklem çözüldüğünde n=127 bulunur.
MATLAB Çözümü x=1; sum=0; ilk toplam değeri pi=4.0*atan(1.0); sayısının ilgili olduğu fonksiyon for n=1:130 döngüye başla sign=(-1)^(n+1); sign fonksiyonun değeri nominator=x^(2*n-1); denominator=2*n-1; sumlast=sum+4*sign*nominator/denominator; serinin bir sonraki değeri trerr=abs(pi-sumlast)/abs(pi); doğru bağıl hata arerr=abs(sumlast-sum)/abs(sumlast); mutlak bağıl hata plot(n,arerr,'--r*',n,trerr,'--b+'); doğru ve bağıl hata eğrilerini çiz hold on; xlabel('n terim sayısı'); X eksenine yaz ylabel('hata'); Y eksenine yaz sum=sumlast; yeni toplam ile eski toplamın yerini değiştir End döngü sonu text(25,0.6,'* yaklaşık bağıl hata'); text(25,0.5,'* doğru bağıl hata');
Gerçek ve yaklaşık bağıl hata karşılaştırması
Bilgisayar hataları Çoğu bilgisayarlar temsil edilenden daha fazla basamaklara ayrılır. Şöyle ki; bir mantis için basamaklar uygun sayılara dönüşmediği zaman, bilgisayarlar bu sayıları yuvarlar. Örneğin; bir bilgisayarda 3 basamaklı bir mantis 68.501, 0.068E03 şeklinde temsil edilir. Yuvarlamak veya parçalamak için kullanıldığında 0,069E03 olarak temsil edilir.
Çıkarma Hatası Bu hata eşit iki sayı çıkarıldığı zaman meydana gelir. Bir örnekle bunu açıklarsak; x = 40,000.01 ve y = 40,000 ise 3 basamaklı mantis için x-y nedir? 0.4000001x105 -0.4000000x105 _______________________ 0.000 x105 = 0.0 Yuvarlamadan dolayı hata oluştu. Büyük bir sayıya küçük bir sayı eklendiğinde, kayda değer hata oluşur. Örneğin; 3 hanelik mantisten oluşan hipotetik ondalık bilgisayar kullanılarak, 250 Kelvin sıcaklığına, 0,4 Kelvin’lik bir sıcaklık eklersek, sonucu değiştirmediği görülür ki, bu bir hatadır. 0.250x103 0.0004x103 0.250 x103 = 250 K
Kesme Hataları Kesme hataları, bir seri formülünde belirli bir sayıdaki terimin ihmal edilmesi sonucu ortaya çıkan hatalardır. Verilen geometrik seride -1<x<1 aralığında n=1,2,3….. için x=0.5 olduğu zaman f(x)=2’dir. Eğer bu fonksiyonunun sadece 3 terimi işleme konursa, x=0.5 için n=2 bulunur. (0.5) 1 + x + x2 = 1 + 0.5 + (0.5)2 = 1.75 Buradan, n=2 için kesme hatası şöyle hesaplanır; T.E. = [(0.5)kesin - (0.5)yaklaşık] = 2 - 1.75 = 0.25 = Et = gerçek hata veya gerçek bağıl hata et = Et/2.0 = 0.125 (12.5%) Bu kesme hatası, sonsuz serideki atlanılan (arta kalan) bütün terimlerin toplamıdır. (x) = 1/(1 - x) 1 + x + x2 + (T.E.)n=2
Taylor serisi açılımı ve yaklaşımı Taylor serileri aşağıdaki analizlerin elde edilmesinde kullanılır; İntegrasyon formülleri, fonksiyon yakınsamaları, sonlu fark tabloları ve hata analizi. Bir yakınsak seri, kısmi toplamlarının sırasının sonlu toplama yakınsayan seridir. Iraksak bir seri ise yakınsamayan bir seridir. Geometrik seriler -1< x < 1 için yakınsarlar. Örneğin f(x=0.1)için; n=0 S0=1 =1.000 n=1 S1=1 + x =1.100 n=2 S2=1 + x + x2 =1.110 n=∞ S∞=1.0/(1-0.1) =1.111111……
Yakınsaklığın gösterimi Bir serinin yakınsak olup olmadığını göstermek için genel olarak 2 tane kullanılan yöntem vardır. n terimli bir seri toplamı aşağıdaki şekilde gösterilir. Sum=q1+q2+q3+…+qn Aşağıdaki formül bir serinin yakınsak olup olmadığını tespit etmek için kullanılır. Eğer R<1 veya R=0 ise seri mutlak yakınsaktır. Eğer R>1 ise ıraksaktır. Eğer R=1 ise seri hem yakınsayabilir hem de yakınsamayabilir.
Örnek: Oran testini kullanarak aşağıdaki serinin yakınsak mı ıraksak mı olduğunu gösteriniz. Çözüm: Böylece oran testi ile bu seri herhangi bir x değerine yakınsar.(ex için Maclaurin serisi)
Taylor serisi teoremi ( Taylor formülleri) f(x) tanımlanmış bir fonksiyon a ve x kapalı aralığında sürekli ayrıklaştırılan bir fonksiyon olsun. (x) = (a) + (1)(a)(x-a) + (2)(a)(x-a)2/2! + (3)(a)(x-a)3/3! + … (n)(a), bağımsız değişken x’e göre ’in n inci dereceden türevini gösterir ve daha sonra x = a noktasında değerlendirilmiştir. Genişlemenin yapılandırıldığı x = a noktası ana nokta olarak bilinir. Eğer Taylor serileri terimlerin sonlu sayılarından sonra kırpılırsa, sonra kırpılmış tüm terimlerin toplamı kalan Rn(x) olarak adlandırılır. Bu da şöyledir; (x) = (a) + (1)(a)(x-a) + (2)(a)(x-a)2/2! + (3)(a)(x-a)3/3! + ... + (n)(a)(x-a)n/n! + Rn(x)
Taylor Serileri Kalan Rn(x) integral formda şu şekilde yazılabilir (Stein, 1967); t integral amacıyla kullanılan yapay bir değişkendir. İntegral hesabı için birinci ve ikinci ortalama değer teoremleri kullanıldığında; Denklem şu şekilde yazılabilir;
Taylor Serisinin farklı biçimleri Taylor Teoremi a = xi (i ninci nokta anlamındadır) ve x = xi+1 = a+h = xi+h sonraki noktayı göstermektedir. Daha sonra şu şekli alır; (xi+1) = (xi) + (1)(xi)h + (2)(xi)h2/2! + (3)(xi)h3/3! + … + (n)(xi)hn/n! Bu form, sonlu fark formülleri geliştirmek için özellikle uygundur. Bu denklem bir notasyon değişimi ile basitleştirilebilir; i = (xi); i+1 = (xi+1); i(n) = (n)(xi) Dolayısıyla şu şekilde yazabiliriz; i+1 = i + i(1)h + i(2)h2/2! + i(3)h3/3! + … + i(n)hn/n! + ... Bu form, sıradan diferansiyel denklemlerin entegrasyonu için formül üretmek amacıyla uygundur. Bir sayısal fonksiyonun türevini hesaplamak için bazı basit formüller sayısal türevlere bir giriş olarak burada verilmiştir.
Sayısal Türev İkinci terimden sonra Taylor serisini keseriz ve (1) = ‘i elde etmek için şu denklemi çözeriz; = (i+1-i)/h veya İleri Farklar Denklemi Burada h = xi+1-xi = x’tir. İleri farklar yaklaşımı x = xi = a noktasındaki birinci türev için birinci sıra olarak adlandırılır. Bir fonksiyonun türevinin temel tanımının şu olduğunu unutmayınız; Bundan dolayı, h'nin adım boyutunu daha küçülttüğümüz zaman Sf daha hassas sonuç verecektir. Ancak yuvarlamalardan oluşan hatalar konusunda çok dikkatli olunmalıdır. Diğer formüller de Taylor serisi açılımı ile elde edilebilir (aşağıdaki şekle bakınız). Geri Farklar Denklemi Merkezi Fark Denklemi
Sonlu farkın grafiksel yorumu
Taylor Serisi Uygulamaları Taylor serisini kullanarak (x) = ln(1+x) fonksiyonunu a=0 noktası temel alınarak genişletiniz. Ayrıca Taylor formülünü kullanarak bu fonksiyonu birinci, ikinci ve üçüncü dereceden polinom şeklinde belirleyin. Terimlerin sayısını arttırarak ve Taylor Serilerinden ln(1.5) i hesaplayınız ve toplamda kullanılan sayıların bir fonksiyonu olarak doğru ve yaklaşık hataların bir tablosunu yapınız. Ayrıca kırpma hatalarını tahmin ediniz. Çözüm: (x) = ln(1+x) (1)(x) = 1/(1+x) (2)(x) = -1/(1+x)2 (3)(x) = (2)(1)/(1+x)3 (4)(x) = -(3)(2)(1)/(1+x)4 . . (n)(x) = (-1)n+1(n-1)!/(1+x)n a = 0; (0) = 0, (1)(0) = 1, (2)(0) = -1, (3)(0) = 2, (4)(0) = -6
Taylor Serisi Uygulamaları Tüm bunları Denklemde yerleştirirsek; (x) = ln(1+x) = 0 + x - x2/2 + x3/3 - x4/4 + ... + (-1)n-1 xn/n + .. x serisinin hangi değerlerinin yakınsandığını belirlemek için aşağıdaki oran testini uygulanır; Dolayısıyla bu seri -1 < x < 1 aralığında yakınsanır.
Polinom Yaklaşımı (Sonlu terimlerle kırpılmış Taylor Serileri) Bir terim ln(1+x) x (doğru) İki terim ln(1+x) x - x2/2 (parabol) Üç terim ln(1+x) x - x2/2 + x3/3 (kübik polinom) Bu yaklaşık fonksiyonların orjinal fonksiyon olan (x) = ln(1+x) ile karşılaştırılması aşağıdaki şekilde verilmiştir. Yaklaşık fonksiyon (polinom), yanındaki ana nokta olan x=a=0 ile orjinal fonksiyonu daha iyi simgelemektedir.
Taylor Serisi Uygulamaları (Devam)
Uygulama Türevlerin Sayısal Değerlendirmesi Bir fonksiyonun türevi için ileriye fark yaklaşımı formülü kullanılarak, belirli noktalarda sonraki fonksiyonun sayısal türevlerini hesaplayınız. Adım büyüklüğü olan h ile kesin türev, sayısal türev ve mutlak gerçek hata varyasyonlarını gösteren her durum için bir tablo hazırlayınız. h değerini 1.0 ve 1.E-20 arasında bir faktör ile her seferinde 10 kez düşürelim. (a.) (x) = Cos(-10x2) at x = 0 (b.) (x) = e-ln(1/x) at x = 1.0 (c.) (x) = x/(5+3x-5) at x = 10 Not: (x0) [(x0 +h) -(x0)]/h.
Uygulama İlk analitik türevleri bulalım: (a) '(x) = 20xSin(-10x); '(0) = 0. (b) '(x) = [e-ln(1/x)]/x = 1 ; '(1) = 1.0 (c) '(x) = (5 + 18x-5)/(5 + 3x-5)2 ; '(10) = 0.2000048 Bölüm (a), (b) ve (c) için sayısal sonuçlar bir sonraki Tabloda ve Şekillerde gösterilmiştir. Durum (b) için (x) = eln(x) = x şeklindedir. Böylece df/dx = 1.0 olmuştur.
Uygulama(Devam) Tablo: (x) = Cos(-10x2)’nun türevini hesaplamak için adım boyutu ile Doğru Hata varyasyonu x’de sayısal türev = 0.000000E+00 h df/dx Doğru Hata 1.000000E+00 -1.839072E+00 1.839072E+00 1.000000E-01 -4.995835E-02 4.995835E-02 1.000000E-02 -4.999999E-05 4.999999E-05 9.999999E-04 -4.999999E-08 4.999999E-08 9.999999E-05 -5.000016E-11 5.000016E-11 9.999999E-06 -4.878910E-14 4.878910E-14 9.999999E-07 0.000000E+00 0.000000E+00 9.999999E-08 0.000000E+00 0.000000E+00 9.999999E-09 0.000000E+00 0.000000E+00 9.999999E-10 0.000000E+00 0.000000E+00 9.999999E-11 0.000000E+00 0.000000E+00 9.999999E-12 0.000000E+00 0.000000E+00 9.999999E-13 0.000000E+00 0.000000E+00 9.999999E-14 0.000000E+00 0.000000E+00 9.999999E-15 0.000000E+00 0.000000E+00 9.999999E-16 0.000000E+00 0.000000E+00 9.999999E-17 0.000000E+00 0.000000E+00 9.999999E-18 0.000000E+00 0.000000E+00 9.999999E-19 0.000000E+00 0.000000E+00 1.000000E-19 0.000000E+00 0.000000E+00 1.000000E-20 0.000000E+00 0.000000E+00
Uygulama(Devam)
Bölüm 1 Sonu
Referanslar Celik, Ismail, B., “Introductory Numerical Methods for Engineering Applications”, Ararat Books & Publishing, LCC., Morgantown, 2001 Fausett, Laurene, V. “Numerical Methods, Algorithms and Applications”, Prentice Hall, 2003 by Pearson Education, Inc., Upper Saddle River, NJ 07458 Rao, Singiresu, S., “Applied Numerical Methods for Engineers and Scientists, 2002 Prentice Hall, Upper Saddle River, NJ 07458 Mathews, John, H.; Fink, Kurtis, D., “Numerical Methods Using MATLAB” Fourth Edition, 2004 Prentice Hall, Upper Saddle River, NJ 07458 Varol, A., “Sayisal Analiz (Numerical Analysis), in Turkish, Course notes, Firat University, 2001