%% Sayısal Analiz, Bilgisayarda Hata ve Hesaplama Hassasiyeti
% Numerical methods are procedures that allow for effcient solution of a mathematically formulated problem in a finite number of steps to within an arbitrary precision.
% Sayısal yöntemler, matematiksel olarak formüle edilmiş bir sorunun sonlu sayıda aşamada istenilen bir hassasiyetle etkili bir şekilde çözümlenmesine izin veren prosedürlerdir. Bilimsel hesap makineleri basit problemleri halledebilirler, ancak çoğu durumda bilgisayarlara ihtiyaç duyulmaktadır. Sayısal yöntemler yaygın olarak belirli bir sorunun yaklaşık bir çözümüne yol açan önceden belirlenmiş matematiksel (cebirsel ve mantıksal) işlemleri gerçekleştirmek için bir dizi yönergeden oluşur. Bu tür kurallar bir algoritma olarak bilinir.
%% Hesaplama Hatalarının Kaynakları
% Belirli bir sayısal yöntemin sonuçlarının doğruluğunu araştırırken iki temel soru ortaya çıkar:
% (1) olası hata kaynakları nelerdir,
% (2) bu hatalar nihai sonucu ne kadar etkiliyor?
% Sayısal hesaplamalarda üç olası hata kaynağı vardır:
% 1. İlk model hatası (Error in the initial model)
% 2. Kesme hatası (Truncation error)
% 3. Yuvarlama hatası (Round-off error)
%% 1. İlk model hatası (Error in the initial model)π
% İlk kaynak, sorunun ilk modelinde ortaya çıkar. Bunlara bir fiziksel sistem modelinin türetilmesinde basit varsayımlar yapılması veya e için 2.7183, \pi için 3.1416 ve g (yerçekimi ivmesi) için 9.81 gibi matematiksel sayılar için yaklaşık değerleri kullanılmasından dolayı oluşan hatalar örnek olarak gösterebilmektedir.
%% 2. Kesme hatası (Truncation error)
% İkinci kaynak, bir deyim matematiksel bir yöntemle yakınlaştırıldığında kesilme nedeniyle ortaya çıkar. Bir örnek olarak,sinüs fonksiyonunun Maclaurin serisi genişletmesi ile temsil ettiğimizi varsayalım,
%
% burada Em fonksiyonunun ihmal edilen ve kesme hatası olarak bilinen kısmını göstermektedir.
%% 3. Yuvarlama hatası (Round-off error)
%  The third type of computational error is caused by the computer during the process of translating a decimal number to a binary number. This is because unlike humans who use the decimal number system (in base 10), computers mostly use the binary number system (in base 2 or base 16). In doing so, the inputted number is frst converted to base 2, arithmetic is done in base 2, and the outcome is converted back to base 10.
% Üçüncü tür hesaplama hatası, ondalık sayıdan ikili bir sayıya çevirme işlemi sırasında bilgisayardan kaynaklanır. Bunun nedeni, ondalık sayı sistemini (taban 10'da) kullanan insanlardan farklı olarak, bilgisayarlar çoğunlukla ikili sayı sistemini (taban 2'de veya taban 16'da) kullanmaktadır. Bunu yaparken, girilen sayı 2 tabanına dönüştürülür, ve aritmetik işlemler 2 tabanında yapılır ve sonuç 10 tabanına geri dönüştürülür.
%
%
%% Bilgisayarda Hesaplama hataları
%% 1 Bilgisayarda Sayıların Gösterimi
% Bilgisayarın çalışmasının temelinde sayısal elektronik vardır. Sayısal elektronik ikili sayı sistemi temelidir ve çıkışlar iki değerden birini alır: bir (1) veya sıfır(0). Sayısal devredeki gerilimler arada değerler alabilirler ama asıl ilgilenilen gerilimleri sıfır veya bire karşılık gelen değerlerdir.
% 1.1 Kayan Noktalı Gösterim
% Bilgisayar ortamındaki sınırlamalardan dolayı, sayıların bilgisayarda sonsuz uzunlukta gösterimi mümkün olmamaktadır. Bu sayılar bilgisayar ortamında, bilgisayarın kapasitesine bağlı olarak yaklaşık değerlerle temsil edilir. Sayıların maksimum miktarda ve gerçeğe en yakın şekilde temsilini sağlayan sisteme “kayan noktalı sayılar sistemi” denir. Bu gösterim; çok büyük, çok küçük ve gerçek sayıları göstermek için kullanılır. Bilgisayarın kaydedicisinde bulunan bir kayan noktalı sayı, d ve p ile temsil edilen iki kısımdan oluşur.
% Bir ondalık kayan nokta, 0.dddddd x (10^p) şeklinde gösterilir.
% 0.dddddd sayısı, anlamlı kısım ve p’de sayısının üssünü temsil etmektedir.
% Örneğin; 253.57 sayısı kayan noktalı gösterimde bilgisayarda, d=25357 ve p=3 olarak gösterilir. Yani, .25357 x 10^3
% İkili sistemde kayan nokta gösterimi ise, 1.bbbbbb x (2^bbb) şeklinde gösterilir.
% b, ondalık dijittir. Bu gösterim şeklinde; .bbbbbb “anlamlı kısım” ve 2’nin kuvveti de “üst” olarak isimlendirilir.
% Anlamlı kısmın ve üssün ikisi de ikilik sistemde yazılır.
% Örneğin; 40 sayısının ikili tabana göre kayan noktalı gösterimi şu şekilde hesaplanır:
% İkilik sistemde, kayan noktalı gösterimde 40 sayısını yazmak için sayı 2^5’e bölünür. Ve 2^5 ile çarpılır.
% 40=40/(2^5)x(2^5) = 1.25x(2^5)
% İkili sistemde; 1.01 x 2^101 şeklinde gösterilir.
% Genel olarak bir kayan nokta sayı, m.b^e olarak gösterilir. m mantis, b kullanılan sayı sisteminin tabanı ve e’de üst’tür. 10 tabanlı sistemde m; 0.1 ile 1 aralığında ve 2 tabanlı sistemde 0.5 ile 1 aralığında değişecektir.
% 1.2 Bilgisayarda Sayıların Kaydedilmesi
% İkili kayan nokta gösteriminde sayılar bilgisayarda depolanır. Bilginin gösterildiği en temel birime “kelime” denir. Bu büyüklük bir dizi, iki tabanına göre yazılmış sayı veya bit’ten meydana gelir. Bilgisayarda sayılar, bir veya daha fazla kelime şeklinde saklanır. Sayının mantis ve üst kısımları ayrı ayrı depo edilir. Kayan noktalı sayıların değişik donanımlardaki uyumu için IEEE 754 standardı geliştirilmiştir. Bu gösterimlerde sayılar normalize edilmiştir ve üstler, üst değerini tutan bit sayısına göre saptırılmıştır.
%% 2 Sayısal Yöntemlerde Hatalar
% Yöntemlerin etkili bir biçimde kullanılmasında hata kavramının anlaşılması önemlidir. Problemin sayısal yöntem ve analitik yöntemle çözülmesi durumunda ikisi arasında ortaya çıkan fark, hata olarak tanımlanır. Sayısal yöntemlerde karşılaşılan hatalar genel olarak, yuvarlama, kesme ve bu iki hatanın toplamından oluşan toplam hata şeklinde sınıflandırılır.
% 2.1 Yuvarlama Hataları
% Sayılar, bilgisayarlarda sonlu sayıda bit ile gösterildiğinden yuvarlama hataları, bilgisayarların bu sayıları ifade etmek için sınırlı sayıda basamak kullanılmasından kaynaklanır. pi, e gibi sayılar sabit(sonlu) sayıda anlamlı basamakla yazılamaz. Bu büyüklükler belirli değerleri temsil etseler de, sabit sayıda basamakla tam olarak ifade edilemezler:
% Örneğin: pi=3.14159265358979…
% Aynı zamanda bilgis,ayarlar 2 tabanına göre çalıştıklarından, 10 tabanına göre tamsayıları hassas olarak ifade edemezler. Anlamlı basamakların ihmal edilmesinden dolayı da yuvarlama hataları oluşur.
% Genel olarak bir sayının n tane anlamlı basamağı olacak şekilde yuvarlaklaştırılması için, o sayının en solundaki anlamlı basamaktan başlayarak, n tane anlamlı basamak atılır. Eğer yuvarlama esnasında atılan kısım; 5, 50, 500, 5000, …’den küçük ise, korunan son basamaktaki sayı olduğu gibi bırakılır. Eğer atılan kısım; 5, 50, 500, 5000, …’den büyük ise, korunan son basamaktaki sayı, bir arttırılır. Eğer atılan kısım tam; 5, 50, 500, 5000, … ise, “çift sayılar” veya “tek sayılar” kuralı uygulanır. Çift sayılar kuralına göre korunan son basamaktaki sayı çift ise bir değişiklik yapılmaz, tek ise bir arttırılır. Tek sayılar kuralında da öncekinin tam tersi durum uygulanır. Genel olarak çift sayılar kuralı tercih edilir.
% Örnek: x^2-(5000.001)x+5=0 ikinci derece denklemi MATLAB komutlarıyla şu şekilde hesaplanmaktadır:

format long
a=1; b=-5000.001; c=5;
kok1=(-b+sqrt(b^2-4*a*c))/(2*a)
kok2=(-b-sqrt(b^2-4*a*c))/(2*a)

% MATLAB’ın x2 için hesapladığı değer yuvarlama hatasından dolayı tam yani doğru sonuç değildir.
% 2.2 Kesme Hataları
% Sayısal hatalar, sayısal büyüklüklerin yaklaşık değerlerle ifade edilmelerinden ortaya çıkmaktadır. “Kesme Hatası”, gerçek ya da gerçeğe yakın değerin hesaplanmasında çok fazla veya sonsuz sayıda terim alınması durumunda meydana gelen hatadır. Sayısal işlemlerde, sonsuz uzunluktaki bir seri, belli bir kısmından itibaren kesilerek kullanılmakta ve kalan terimleri de atılmaktadır. Bu durumda kesme hataları ortaya çıkmaktadır.
% Örneğin cosx fonksiyonunu, Taylor Serisine açılırsa:
%
% (Şekil 2.4)
% yazılır.Verilen herhangi bir x sayısının kosinüs değerinin hesaplanmasında, sonsuz sayıda terim kullanılamayacağından ancak belli sayıda terimle işlemler yapılacaktır. Atılan terimler kesme hatasını oluşturacaktır. 2.4’teki eşitliğe göre cos pi/5’in tam değeri, sonsuz sayıdaki terim kullanılarak, yaklaşık değeri de sonlu sayıda terim kullanılarak belirlenmektedir. Hesaplanan bu iki terim arasında yani tam sonuç ile yaklaşık sonuç arasında, kesme hatası olarak adlandırılan bir fark vardır. Bu fark, kullanılması gereken terim sayısına bağlı olarak ihmal edilir. Kullanılan terim sayısına göre, cos(pi/5) için kesme hatasının değeri; tam ve seri açılımında önce bir daha sonra iki terim göz önüne alındığında yaklaşık olarak hesaplanır.
% Cos(pi/5)’in tam değeri;
% cos(pi/5)=0.809016994374947 ’dir.
% 2.4’teki seri açılımından, tek terim için yaklaşık değer, Cos(pi/5)=1 ‘dir.
% Kesme hatası, gerçek değer ile yaklaşık değer arasındaki farka eşittir. 2.5 eşitliğinde gerçek kesme hatası ve 2.6 eşitliğinde de yüzde mutlak gerçek kesme hatası verilmektedir. Cos(pi/5) için hesaplanan gerçek değerle tek terim kullanıldığında bulunan sonucun farkı alınırsa yüksek bir kesme hatası bulunur.
% Epsilon_g= gerçek değer-yaklaşık değer
% (Şekil 2.5)
% % Epsilon_g = |gerçek değer-yaklaşık değer | x 100
% (Şekil 2.6)
% Epsilon_g= 0.809016994374947-1=-0.190983005625053
% Epsilon_g= %19.1
% Bu, gerçek kesme hatasıdır. Epsilon_g’deki g indisi hatanın gerçek hata olduğunu göstermek için kullanılmıştır. Seri açılımında iki terim için aynı hesaplamalar tekrarlanırsa; yaklaşık değer,
% Cos(pi/5)=1-((pi/5)^2)/2!=0.802607911978213
% olarak elde edilir ve bu durumda gerçek kesme hatası,
% Epsilon_g= 0.809016994374947-0.802607911978213=0.006409082396735= yaklasık % 0.6 ‘dır.
% Yani seride iki terim kullanıldığı durumda hata değeri, tek terime göre daha düşük olarak elde edilmiştir. Buna göre daha fazla terim kullanılması durumunda hatanın gittikçe düşeceği söylenebilir.
%
%% KAYNAKÇA
% [1] Karaboğa N., Sayısal Yöntemler ve Matlab Uygulamaları, 2.Basım, Ankara, 13-22, Mart 2015
%
%