שגיאות מחשב ופתרון משוואות לא-לינאריות
שגיאות מחשב ופתרון משוואות לא-לינאריות
פרק 1 - למידה מודרכת ותרגול מעמיק
מטרות למידה מרכזיות:
1. אריתמטיקה של נקודה צפה ושגיאות מחשב
כאשר אנו עוברים ממתמטיקה תיאורטית מופשטת לחישוב נומרי מעשי במחשב, עלינו לזכור שחומרת המחשב אינה פועלת בשדה המספרים הממשיים האינסופי, אלא בתת-קבוצה סופית ודיסקרטית של מספרים בשיטת הנקודה הצפה (תקן IEEE 754). שברים פשוטים כגון עשירית אינם ניתנים לייצוג בינארי מדויק, ופעולות חשבון אלמנטריות עלולות לגרום לביטול קטסטרופלי של ספרות משמעותיות כאשר מחסרים שני מספרים קרובים מאוד. הבנת מקורות השגיאה - שגיאת קיצוץ תיאורטית לעומת שגיאת עיגול חישובית - היא התנאי ההכרחי הראשון לכל ניתוח נומרי אמין.
כל מספר ממשי x מיוצג במחשב כמספר נקודה צפה fl(x). השגיאה המוחלטת מוגדרת כ-eabs = |x - fl(x)|, והשגיאה היחסית מוגדרת כ-erel = |x - fl(x)| / |x|. דיוק המכונה epsilonmach הוא החסם העליון לשגיאה היחסית בייצוג יחיד.
תרגיל 1
רמת קושי: בסיסינתון הביטוי f(x) = sqrt(x + 1) - sqrt(x). כאשר x גדול מאוד, חישוב ישיר גורם לאובדן ספרות משמעותיות. בצעו מניפולציה אלגברית למניעת ביטול קטסטרופלי וחשבו עבור x=10^6 בדיוק של 6 ספרות:
שלב 1: נזהה כי עבור x גדול מאוד, שני השורשים קרובים ביותר, והחיסור ביניהם גורם לאובדן דיוק קריטי עקב ביטול ספרות משמעותיות.
שלב 2: נכפיל ונחלק בצמוד: f(x) = (sqrt(x+1) - sqrt(x)) (sqrt(x+1) + sqrt(x)) / (sqrt(x+1) + sqrt(x)).
שלב 3: במונה מתקבל: (x + 1) - x = 1, ולכן הביטוי השקול והיציב נומרית הוא: f(x) = 1 / (sqrt(x+1) + sqrt(x)).
שלב 4: נציב x = 10^6: sqrt(10^6) = 1000, ו-sqrt(1000001) ~ 1000.000499999.
שלב 5: נחשב את המכנה: 1000.0005 + 1000 = 2000.0005, ולכן f(10^6) ~ 1 / 2000 = 0.0005 (בדיוק 5 10^-4).