Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Bölüm2:Sayısal Hata Türleri

Benzer bir sunumlar


... konulu sunumlar: "Bölüm2:Sayısal Hata Türleri"— Sunum transkripti:

1 Bölüm2:Sayısal Hata Türleri
Sayısal hatalar, gerçek matematik işlemlerin ve büyüklüklerin yaklaştırmalarla ifade edilmelerinden doğar. Bunlar, gerçek matematik işlemlerin yaklaştırmalarla ifade edilmelerinden kaynaklanan kesme hataları, gerçek sayıları ifade etmek için sınırlı basamaklı sayıların kullanılmasından kaynaklanan yuvarlatma hatalarıdır. Her iki durumda da yaklaştırma ile gerçek veya doğru sonuç arasındaki ilişki, gerçek değer = yaklaştırma + hata şeklinde ifade edilebilir. Yuvarlatma Hataları: Yuvarlatma hataları bilgisayarın hesaplar sırasında sadece belirli sayıda anlamlı basamağı saklamalarından kaynaklanır. Bilgisayar reel sayıları hafızada sınırlı duyarlıkta saklamasından dolayı yuvarlatma hatası ortaya çıkar. , e, gibi sayılar sabit sayıda anlamlı basamakla yazılamaz. Bu nedenle bilgisayarda tam olarak ifade edilemez.

2 Örneğin sayısını ele aldığımızda;
Tek-duyarlı temsilde, 6-7 haneden sonrası dikkate alınmaz. Buna göre; Bazı derleyiciler, doğrudan kesip atar, bazıları da bir önceki haneye yuvarlar. Hangisi olursa olsun buna yuvarlama hatası denir. Örneğin her zaman A-A=0 olmayabilir. Aşağıdaki program bu işi yapmaktadır. Bu programda a-(a/b) x b ifadesi belli a ve b sayıları için hesaplanmaktadır. Kalemle yaptığımız işlemlerde sonucun özdeş olarak sıfır olması gerektiğini biliyoruz. Oysa programın çıktısı şöyle olur. -5,421011x10-20

3 Sonuç sıfır değildir, çünkü A ve B sayıları hafızaya sınırlı sayıda (6-7) ondalık hanesiyle alınmaktadır. Böylece, bir bölme işlemiyle (A/B) gerçek değerden uzaklaşmış oluruz ve sonuç sıfırdan farklı olur. Küçük ve Büyük sayılar yan yana getirmek risklidir: Aşağıdaki programda 1 sayısına kez 1/ sayısı eklenmektedir; REAL TOPLAM TOPLAM=1 DO 10 I=1,10000 TOPLAM=TOPLAM 10 CONTINUE PRINT*, ‘TOPLAM=‘, TOPLAM END Bu işlem sonucunun 1.1 olması gerekir. Oysa, programın çıktısı şöyle olur; TOPLAM= Yuvarlama hatası bilgisayarın reel sayıları tam doğrulukta temsil edemeyişinden kaynaklanan hata türüdür. Bu hata birkaç işlem için pek büyük değerde olmayabilir: ama, binlerce kez birbirine eklendiğinde ciddi boyutlara ulaşır ve sonuçta gerçek değerle alakası olmayan bir sayı verebilir.

4 Yuvarlama hatası bizden kaynaklanmayan, bilgisayarın yapısı gereği oluşan bir hata türüdür. Bu hatayı kontrol altına almak için iki yol vardır: Çift Duyarlı reel sayılar kullanmak Reel sayıları iki farklı duyarlıkta temsil edebiliyorduk Tek-duyarlı REAL*4 Çift-duyarlı REAL*8 Farkı anlamak için yukarıdaki programda ilk satırı REAL*8 TOPLAM Şeklinde değiştirir ve sayısını da D0 şeklinde çift-duyarlı hale getirirsek, programın çıktısı şöyle olur. TOPLAM= Görüldüğü gibi, yuvarlama hatası 12 hane için de görünmeyecek kadar azalmıştır. Not: FORTRAN dilindeki sayısal hesapta daima çift-duyarlı (REAL*8) reel sayılarda çalışılmalıdır.

5 2) Aritmetik işlemleri doğru sırada yapmak
Birbirine yakın sayıları çıkarmaktan kaçınmalıyız, örneğin Doğrudan hesaplandığında hata payı büyük olur. Onun yerine, aynı ifadeyi çıkarma yapmadan da hesaplayabiliriz. Bunun için, pay ve paydayı eşlenikle çarparsak, Bu işlemde hata payı daha az olur. Büyük ve küçük mertebeden sayıları yanyana getirmekten kaçınmalıyız; örneğin, ifadesinde için hesaplamaya kalkarsak, her bir terim giderek çok farklı mertebelere ulaşır ve bunları topladığımızda hata payı büyük olur. Oysa, hatayı büyütmeden, bu ifadeyi şöyle hesaplayabiliriz.

6 Kesme Hataları: Kesme hataları kesin bir matematik prosedür yerine yaklaştırma kullanılması sonucu oluşur. Yani, bir hesaplamada kullanılan matematiksel yöntemin yaklaşık oluşundan kaynaklanan hata türüdür. Kesme hatasını örneklemenin en iyi yolu matematiksel yöntem olarak Taylor Serisini kullanmaktır. Taylor serisinin sayısal yöntemlerin öğrenilmesinde çok büyük değeri vardır. Öz olarak Taylor serisi, bir fonksiyonun herhangi bir noktadaki değerinin fonksiyonun ve türevlerinin bir başka noktadaki değerleri cinsinden tahmin edilebilmesine olanak tanır. Taylor kuramı, özel olarak, herhangi düzgün bir fonksiyonun yaklaşık olarak bir polinomla ifade edilebileceğini söyler. Örneğin: f(x) fonksiyonunun bir x noktası etrafındaki Taylor açılımını gözönüne alalım, Taylor serisinin genel formu aşağıdaki gibidir.

7 Burada Kalan kısım aşağıdaki gibidir ve c , olmak üzere,
Seride f(x)’in bütün türevleri sürekli ve fonksiyon [x,x+h] aralığındadır. Taylor serisinde birinci türevi çekip alırsak, Bu sonsuz terimli seriyi bir yerde kesmek gerekir, çünkü bilgisayarda sonsuz sayıda işlem yapılamaz. Sadece ilk terimi alırsak, kalan terimler h ile orantılı bir hata oluştururlar. Kesme hatası bizim elimizde olan bir hatadır. Türev hesabında hata payını azaltmak için iki şey yapabiliriz.

8 Örnek: Bir Polinomun Taylor Serisi Yaklaşımı
Taylor serisini 2. veya daha yüksek türevli terimlerden sonra kesebiliriz. Bu matematiksel yöntemin iyileştirilmesi demektir. Hata payı O(h) mertebesinde olduğuna göre, h adım uzunluğunu küçültürsek, kesme hatası da küçülecektir. Bu sayısal yöntemin iyileştirilmesi anlamına gelir. Örneğin: 1.türevli Taylor açılımında h=0.01 aldığımızda yapılan hata h=0.1 alınarak yapılan hatadan yaklaşık 10 kez daha küçük olur. Ancak, h adım uzunluğunu küçültmenin de bir sınırı vardır. Belli bir değerden daha küçük olduğunda, bu kez yuvarlama hatası etkin olmaya başlar. Çünkü, çok küçük sayılarla çok büyük sayıları birlikte kullanmış oluruz. Örnek: Bir Polinomun Taylor Serisi Yaklaşımı Aşağıdaki fonksiyonu xi=0’dan başlayarak ve h=1 alarak, yaklaşık olarak ifade etmek için sıfırdan dördüncü dereceye kadar Taylor seri açılımını kullanın, Yani fonksiyonun xi+1 noktasındaki değerini tahmin edin.

9 Bilinen bir fonksiyonla uğraştığımızdan, 0 ile 1 arasında f(x) için değerler hesaplayabiliriz. Sonuçlar Şekilde gösterildiği gibi, fonksiyonun f(0)=1.2’de başladığını ve f(1)=0.2’ye doğru aşağı kıvrıldığını göstermektedir. Demek ki tahmin etmeye çalıştığımız değer 0.2’dir. n=0 alarak Taylor seri yaklaşımını yazarsak, Dolayısıyla şekilde görüldüğü gibi sıfırıncı derece yaklaşım bir sabittir. Bu ifade kullanılırsa x=1 noktasındaki kesme hatası, Olarak bulunur. n=1 için birinci türev bulunmalı ve x=0’da hesaplanmalıdır. O halde birinci derece yaklaştırma,

10 İfadesi kullanılarak f(1)=0. 95 olarak bulunur
İfadesi kullanılarak f(1)=0.95 olarak bulunur. Böylece yaklaştırma, fonksiyonun aşağıya doğru kıvrılan yörüngesini eğimi olan bir doğru şeklinde yakalamaya başlar. Kesme hatası da biraz küçülür. n=2 için ikinci türev x=0’da hesaplanır: Bu durumda, Olur ve h=1 kullanılarak f(1)=0.45 bulunur. İkinci türevin eklenmesi şekilde görüldüğü gibi aşağıya doğru bir eğrilik ve tahmini iyileştirir. Kesme hatası daha da azalarak =-0.25 olur. Eklenecek ilave terimler yaklaştırmayı daha da iyileştirecektir. Gerçekten de, üçüncü ve dördüncü türevlerin eklenmesi başlangıçta yazdığımız denkliğin tam olarak aynısını verir:

11 Kalan terim ise, Olur, çünkü dördüncü dereceden bir polinomun beşinci türevi sıfırdır. Sonuç olarak dördüncü türevi de içeren bir Taylor serisi xi+1=1’de tam doğru bir tahmin verir: Genelde, n’inci dereceden bir Taylor seri açılımı n’inci dereceden bir polinomu tam olarak ifade edecektir. Üstel fonksiyonlar ve sinüs fonksiyonları gibi türevi alınabilen ve sürekli fonksiyonlar için, sonlu sayıda terim kullanılması tam doğru bir tahmin vermeyecektir. Eklenecek her terim küçük de olsa yaklaştırmanın iyileşmesine katkıda bulunacaktır.


"Bölüm2:Sayısal Hata Türleri" indir ppt

Benzer bir sunumlar


Google Reklamları