MATLAB Floating-Point: Yuvarlama ve Numerical Stability

Floating-point sayı sistemi, machine epsilon, rounding, cancellation, overflow, conditioning ve numerical stability kavramlarını deneylerle öğrenin.

📅2026-08-28
Harun BüyükçolakHarun Büyükçolak, Full Stack Developer
MATLAB Floating-Point: Yuvarlama ve Numerical Stability

Yazı içeriği

Matematikte eşit olan iki ifade bilgisayarda farklı sonuç üretebilir. Çünkü bilgisayar gerçek sayıları sonsuz hassasiyetle değil, sınırlı bit sayısıyla temsil eder. Numerical computing’de güvenilir sonuç için yalnızca doğru formülü değil, kararlı hesaplama yolunu seçmek gerekir.
Websoftik Academy Floating-Point & Numerical Stability Lab; temsil, rounding, cancellation, overflow ve equivalent formula deneylerini gerçek hata ölçümleriyle birleştirir.

1. Bilgisayar Sayıları Neden Gerçek Sayılardan Farklıdır?

Gerçek sayılar süreklidir ve çoğu sayı sonsuz basamak gerektirir. Floating-point sistem ise sonlu sayıda representable value içerir. 0.1 gibi basit bir decimal değer bile binary tabanda sonlu biçimde yazılamayabilir.
Bu nedenle input, arithmetic operation ve output aşamalarında rounding oluşur. Hata genellikle küçüktür; fakat kötü condition edilmiş problem veya unstable algorithm bu küçük farkı büyütebilir.

2. Floating-Point & Numerical Stability Lab Nasıl Çalışıyor?

Floating-Point & Numerical Stability Lab, dokuz Polito uyumlu modülde bit decomposition, number line, exact/computed result ve error trace’i senkronize eder.
Precision ve rounding mode değiştiğinde representable komşular, arithmetic sonuç ve error göstergeleri güncellenir. Böylece “bilgisayar yanlış hesapladı” cümlesi yerine hatanın kaynağını sınıflandırabilirsiniz.

3. Floating-Point Modeli Nedir?

Normalized bir floating-point sayı kabaca ±m×βᵉ biçimindedir. β base, m significand ve e exponent’tır. Precision significand için ayrılan digit sayısıyla sınırlıdır.
IEEE 754 standardı binary32 ve binary64 gibi yaygın formatları, special values ve temel rounding davranışını tanımlar. MATLAB’ın varsayılan numeric type’ı çoğunlukla binary64 double precision’dır.

4. Sign, Exponent ve Fraction Alanları Ne Anlatır?

Sign bit işareti, exponent alanı ölçeği, fraction alanı significant digit’leri taşır. Normal sayılarda gizli leading bit precision’a katkı sağlar. Exponent’ın özel desenleri infinity ve NaN değerlerini temsil eder.
Lab decimal bir değerin sign–exponent–fraction alanlarını açar; tek bit değişikliğinin number line üzerindeki etkisini gösterir. Böylece büyük magnitude’da komşu sayı aralıklarının neden açıldığı anlaşılır.

5. Machine Epsilon Nedir?

Machine epsilon, 1 çevresinde 1’den ayırt edilebilen bir sonraki representable sayı farkıyla ilişkilidir. MATLAB’da eps bu yerel spacing’i incelemek için kullanılabilir; eps(x) magnitude’a göre değişir.
Epsilon “bütün hesapların absolute hatası” değildir. Relative rounding ölçeği için bir referanstır. Büyük veya küçük sayılarda absolute spacing farklıdır; Lab bunu logarithmic number line ile gösterir.

6. Rounding Nasıl Oluşur?

Exact sonuç representable değilse komşu floating-point değerlerden birine yuvarlanır. Round-to-nearest, ties-to-even yaygın varsayımdır ve uzun hesaplarda systematic bias’ı azaltmayı amaçlar.
Addition’da magnitude’ları çok farklı iki sayı toplandığında küçük operand etkisini kaybedebilir. Operation order bu yüzden sonucu değiştirebilir. Lab aynı terimleri soldan sağa, küçükten büyüğe ve compensated summation ile toplar.

7. Absolute ve Relative Error Nasıl Ayrılır?

Absolute error |x−x̂|, relative error ise bu farkın gerçek değerin büyüklüğüne oranıdır. Scale değişen problemleri karşılaştırmada relative ölçü daha anlamlı olabilir.
Gerçek değer sıfıra yakınsa relative error patlayabilir. Residual ise computed sonucun equation’ı ne kadar iyi sağladığını ölçer; forward error ile aynı değildir. Bu ayrımı Linear Systems rehberinde matrix conditioning üzerinden görebilirsiniz.

8. Catastrophic Cancellation Nedir?

Birbirine çok yakın iki sayı çıkarıldığında ortak leading digit’ler yok olur. Input’lardaki küçük relative hata, farkın relative error’unda büyük büyüme yaratabilir. Buna catastrophic cancellation denir.
sqrt(x+1)-sqrt(x) büyük x için cancellation yaşar. Rasyonelleştirilmiş 1/(sqrt(x+1)+sqrt(x)) algebraically aynı, numerically daha güvenlidir. Lab iki formülün error curve’ünü yan yana çizer.

9. Overflow ve Underflow Nedir?

Magnitude representable maximum’u aşarsa overflow oluşur ve sonuç infinity olabilir. Minimum normal değerin altındaki sayılar subnormal bölgede daha az relative precision ile temsil edilir; daha da küçüğü zero’ya underflow eder.
Ara değer taşsa bile final mathematical sonuç makul olabilir. Expression’ı yeniden ölçeklemek, log-domain hesaplamak veya stable library function kullanmak overflow riskini azaltır.

10. Algebraically Eşdeğer Formüller Neden Ayrılır?

Associativity floating-point arithmetic’te garanti değildir: (a+b)+c ile a+(b+c) farklı rounding yolları izler. Quadratic formula’nın bir kökü de yakın sayıların çıkarılması nedeniyle hassasiyet kaybedebilir.
Lab aynı mathematical quantity için direct, reformulated ve compensated seçenekleri çalıştırır. Exact reference’a göre ULP, absolute ve relative error karşılaştırması hangi formun daha güvenli olduğunu gösterir.

11. Stable Algorithm Nedir?

Backward stable bir algorithm, computed sonucu input’un küçük bir perturbation’ı için exact çözüm gibi yorumlatır. Bu, her problemde küçük forward error garantilemez; problem kötü conditioned ise küçük input farkı büyük output farkı doğurabilir.
Pairwise veya Kahan summation, naive toplama karşısında accumulated error’u azaltabilir. Matrix solve’da inverse üretmek yerine factorization tabanlı solver kullanmak da yaygın stability tercihidir.

12. Conditioning ve Stability Arasındaki Fark Nedir?

Conditioning problemle, stability algorithm’le ilgilidir. İyi conditioned bir problemi unstable yöntem bozabilir; kötü conditioned bir problemde stable yöntem dahi input belirsizliğini ortadan kaldıramaz.
Condition number, relative input perturbation’ının output’u ne kadar büyütebileceğini yaklaşık ölçer. Lab problem sensitivity ve algorithmic rounding’i ayrı katmanlarda göstererek iki hata kaynağının karıştırılmasını önler.

13. MATLAB’da Güvenli Hesaplama İçin Ne Yapılmalı?

  • Equality yerine probleme uygun absolute/relative tolerance kullanın.
  • inv(A)*b yerine A\b gibi solver tercih edin.
  • Magnitude farkı büyük toplamları ölçekleyin veya compensated yöntem kullanın.
  • isfinite, residual ve condition estimate ile sonucu denetleyin.
  • Tek precision’a geçmeden önce error budget belirleyin.

14. Floating-Point Lab Nasıl Çalışılmalı?

  1. Bir decimal sayının binary decomposition’ını inceleyin.
  2. Precision’ı azaltıp number spacing’i ölçün.
  3. Toplama sırasını değiştirerek rounding farkını görün.
  4. Cancellation örneklerini reformulated seçenekle kıyaslayın.
  5. Overflow ve underflow sınırlarında scale deneyin.
  6. Conditioning ile algorithm stability göstergelerini ayırın.
Floating-Point & Numerical Stability Lab’i açın ve exact ile computed arasındaki farkı ölçün. Bütün MATLAB rotası için 8 Academy Lab rehberine geçin.

Sonraki Adim: Bunlari da Oku

Bu yaziyi tamamladiysan, bir sonraki seviyeye gecmek icin su iceriklerle devam etmeni oneririz:

Ucretsiz Seviye Analizi ile Baslayalim

Mevcut seviyenizi hizlica analiz edip size en uygun ders planini birlikte cikaralim.

WhatsApp