אנליזה נומרית/שגיאות
שגיאות אנוש
עריכה- אלגוריתם שגוי (למשל תנאי עצירה לקויים אשר גורמים ללולאה אינסופית או אשר מפסיקים את החיפוש מוקדם מדי, וכדומה).
- שימוש באלגוריתם אשר לא מתאים לאופי הבעיה.
שגיאות בלתי נמנעות בנתוני הקלט
עריכה- אם למשל יש צורך להשתמש בערך , לא נוכל להזין את כל הספרות הידועות לנו, אלא קירוב בלבד.
- כאשר מבצעים מדידה, טלמטרית למשל, קיימת השגיאה של מכשיר המדידה אשר נכנסת גם היא לחישוב.
שגיאות עיגול (Round-off error)
עריכהמספרים ממשיים מיוצגים במחשב על ידי מספר סופי של ספרות ולכן כל מספר אשר חורג ממגבלת המחשב מיוצג למעשה עם שגיאה מסוימת. ניקח לדוגמה מחשב אשר מסוגל לאחסן רק 4 ספרות אחרי הנקודה העשרונית. אם אז אבל במחשב נקבל: . השגיאה במקרה הזה היא .
ניתן להראות שאם נבצע קיצוץ במקום עיגול, השגיאה המתקבלת עלולה לגדול עד פי 2, כלומר חסם השגיאה יגדל פי 2.
שגיאות קיטוע (Truncation error)
עריכההמחשבון נותן ערכים של פונקציות על-ידי שימוש בקירוב לטור טיילור. מכיון שערך הפונקציה המדויק מתקבל מטור אינסופי, מתקבלת שגיאה כאשר קוטעים את הטור לפולינום ממעלה סופית כלשהיא.
שגיאות מצטברות
עריכהנניח שאנו מעוניינים בערך הפונקציה בנקודה , בעלת יצוג עשרוני אינסופי (למשל ). במחשב, יהיה מיוצג על-ידי מסוים. נגדיר את השגיאה הבאה:
אם הפונקציה מחושבת על-ידי טור אינסופי שקוצץ לפולינום, הפונקציה במחשב תייוצג על-ידי כלשהי. כעת נגדיר את השגיאה הבאה:
נניח שהמחשב ביצע שגיאת עיגול. נגדיר, לבסוף, את השגיאה הבאה:
השגיאה המצטברת שהתקבלה בחישוב היא:
יש לשים לב כי אין אנו יודעים את השגיאה, אלא מנסים לתת חסם לשגיאה. אילו ידענו את השגיאה, היינו יכולים לקבל את הפתרון המדויק.
כמו-כן, כאשר אנו מחפשים חסם לשגיאה, אנו מסכמים את כל הערכים המוחלטים של השגיאות, כך שמתקבל חסם מחמיר. אך בחישובים בדרך כלל שגיאות יכולות לבטל אחת את השניה, כך שהשגיאה שתתקבל תהיה הרבה יותר קטנה מן החסם שמצאנו. באנליזת שגיאות מתקדמת משתמשים בניתוח סטטיסטי ובתוחלת השגיאה על מנת להגמיש את החסם.
מספר המצב כמדד לרגישות השגיאה
עריכהמספר המצב מוגדר כיחס בין השגיאה היחסית בתוצאה לבין השגיאה היחסית בנתון (בקלט). אם נסמן ב- את הנתון וב- את התוצאה, אז:
מצב אשר בו נקרא ill-conditioned, כלומר ישנה רגישות גבוהה לשגיאה, ומצב אשר בו נקרא well-posed ובמקרה זה הרגישות לשגיאה אינה גבוהה, והיא אף יכולה לקטון בכל שלב בחישוב.
איבוד ספרות משמעותיות (Significant digits)
עריכהספרות משמעותיות הן כל הספרות השונות מאפס. לדוגמא, במספר 0.0123 יש 3 ספרות משמעותיות, במספר 0.123 יש גם 3 ספרות משמעותיות, במספר 100.123 יש 6 ספרות משמעותיות. מספר זה תלוי כמובן במספר הספרות העשרוניות אליה עיגלנו את הנתונים. איבוד ספרות משמעותיות מגדילה את השגיאה בהמשך החישוב.
התבטלות (Cancellation)
עריכהתופעת ההתבטלות מופיעה כאשר מחסירים שני מספרים הקרובים מאוד זה לזה, כלומר בחישוב תתרחש תופעת ההתבטלות כאשר .
דרך אחת להתמודד עם התופעה היא הגדלת דיוק החישוב. דרך אחרת היא על-ידי פיתוח לטור טיילור ושימוש בנוסחת ויאטה, נוכל לחשב בדיוק טוב יותר שורש שאיבד ספרות משמעותיות, באמצעות השורשים האחרים.
צמצום תחום (Range reduction)
עריכהמתרחש כאשר חישוב של פונקציה מתבצע על-ידי מעבר לזהויות. למשל כאשר מחסירים מארגומנט של פונקצית סינוס כפולות של , ומתרחשת התבטלות. כאן מספר מצב הוא מסדר גודל של הארגומנט.
ראו גם
עריכהקישורים חיצוניים
עריכה
הפרק הקודם: מבוא |
שגיאות | הפרק הבא: שיטת חציית האינטרוולים |