אינטרפולציה

אִינְטֶרְפּוֹלַצְיָה (באנגלית: Interpolation; בעברית: בִּיּוּן) היא שם כולל לשיטות בתחום האנליזה הנומרית. הרעיון המרכזי העומד מאחורי גישה זו היא האפשרות לייצר מידע חדש מאוסף נתונים סופי. בפרט, היכולת לשחזר או ליצור פונקציה שערכה או נגזרותיה ידועים בנקודות מסוימות.

בשימושים ההנדסיים, פיזיקליים וכדומה, מטרת האינטרפולציה היא להתאים פונקציה שתקרב בצורה הטובה ביותר את התנהגותו של אובייקט הניסוי. לדוגמה, נניח שבמסגרת ניסוי פיזיקלי נדגום מיקום של גוף במרחב בכל 5 שניות, כשהניסוי נמשך דקה. נקבל 13 נתונים: מיקומו של הגוף בזמן ההתחלה, מיקומו כעבור 5 שניות וכן הלאה. ברור כי אוסף מידע זה אינו מספק את כל המידע על התנהגות הגוף בכל נקודת זמן שהיא במהלך דקת הניסוי. בשלב זה נכנס כלי האינטרפולציה לפעולה ומאפשר ליצור פונקציה המגדירה את המיקום המשוער לכל אורך הניסוי על פי מסד הנתונים שנדגמו.

== הגדרה ==
בהינתן סדרה של <math> n </math> נקודות מקור <math> x_k </math> הנקראות צמתים (nodes) ו-<math> n </math> נקודות יעד <math> y_k </math>, אזי הפונקציה <math>f(x)</math>:

<math> f(x) : f(x_i) = y_i \quad \forall i=1 \ldots n </math> נקראת אינטרפולציה של הנקודות <math> (x_i,y_i), x\in R^m, y\in R^l,i=1,\dots,n</math>. 

== דוגמה ==
נקודות מידע לאינטרפולציה
נניח כי נתונות 6 נקודות המידע הבאות, המייצגות למשל תוצאות מדידה כלשהי:
{| bgcolor="#ccccff"; align="center"; border="2"; cellpadding="3"
|-
|<math>x</math>|| <math>\ f(x) </math>
|-
|0 || 0
|-
|1 || 0.8415
|-
|2|| 0.9093
|-
|3|| 0.1411
|-
|4|| 0.7568-
|-
|5 || 0.9589-
|-
|6 || 0.2794-
|}

נרצה לדעת מה ערך הפונקציה הנעלמת בנקודה <math> x=2.5 </math> - לשם כך נוכל להיעזר באינטרפולציה.

אינטרפולציה היא שם למגוון רחב של כלים נומריים אשר מטרתם לאפשר קירוב של פונקציה שאינה ידועה, או לקרב על ידי עקום נקודות במישור או במרחב (או שילוב של שני האלמנטים הללו). לכל שיטת אינטרפולציה יש יתרונות וחסרונות, ולפני בחירת שיטה זו או אחרת יש להתייחס לכמה בחינות, כגון מידת החלקות של הפונקציה המבוקשת, מספר נקודות המידע העומדות לרשותנו, מידת הדיוק הדרושה, כמות משאבי החישוב הנדרשים כדי לעמוד בדרישותינו ועוד. לאחר התייחסות לשאלות מסוג זה ניתן לבחור שיטה לביצוע אינטרפולציה. בדרך כלל ננסה לדעת בנוגע לכל שיטת אינטרפולציה מהי מידת החלקות של הפונקציה המתקבלת מחד, ומאידך לחקור את ה"טעות" המתקבלת מחישוב ערכים חדשים על ידי הפונקציה המתקבלת מהאינטרפולציה.

===אינטרפולציה ליניארית===

אינטרפולציה ליניארית של הנקודות מהדוגמה
בשיטה זו, שהיא הפשוטה ביותר לחישוב, נחבר בקו ישר כל שתי נקודות מידע עוקבות. באופן כללי, בהינתן: <math> (x_a,y_a),(x_b,y_b) </math> שתי נקודות מידע עוקבות, אזי הפונקציה הליניארית המחברת אותן היא:

<math> f(x) = \frac{x-x_b}{x_a-x_b} y_a - \frac{x-x_a}{x_a-x_b} y_b </math>

כעת נוכל לענות על השאלה מה ערכה של הפונקציה בנקודה <math> x=2.5</math>. נעשה זאת על ידי בחירת <math> x_a = 2, x_b = 3 </math> והצבת הערך המבוקש בפונקציה המתקבלת.

ברור כי מחד גישה זו קלה לחישוב, אך מאידך תוצאתה אינה מדויקת על פי רוב.

חיסרון נוסף בשיטה זו היא שהפונקציה המתקבלת אינה גזירה בנקודות <math> x_k </math> (הצמתים).

===אינטרפולציה באמצעות פולינום===
אינטרפולציה פולינומית של הנקודות מהדוגמה
אינטרפולציה באמצעות פולינום היא הכללה של האינטרפולציה הליניארית. בהינתן אוסף נקודות <math> (x_k,y_k),k=1\ldots n </math> קיים פולינום אחד ויחיד ממעלה שאינה עולה על <math>\ n-1 </math> אשר עובר דרך כל הנקודות הנתונות, וכל שנותר הוא לחשב אותו.

====צורת לגראנז'====
דרך אחת לחשב פולינום לאינטרפולציה היא באמצעות צורת לגראנז' . מגדירים:
:<math>P_j = \prod_{k=1;k \neq j}^{n} \frac{x-x_k}{x_j-x_k} = \frac{(x-x_1)}{(x_j-x_1)} \cdots \frac{(x-x_{j-1})}{(x_j-x_{j-1})} \frac{(x-x_{j+1})}{(x_j-x_{j+1})} \cdots \frac{(x-x_n)}{(x_j-x_n)},</math>
כך שלכל <math>q \neq j</math> מתקיים <math>P_j(x_q) = 0 </math>, וכן <math>P_j(x_j) = 1 </math>.

מכאן נובע שהפולינום בצורת לגראנז',
:<math>p(x) = \sum_{j=1}^n y_j P_j(x)=\sum_{j=1}^{n} y_j \prod_{k=1;k \neq j}^{n} \frac{x-x_k}{x_j-x_k} </math>
מקיים <math>p(x_k) = y_k </math>, לכל
<math>k</math>. במילים אחרות, הפולינום שהוגדר בצורת לגראנז' אכן עובר דרך הנקודות הנתונות.

====צורת ניוטון====
דרך נוספת לחשב את הפולינום היא באמצעות צורת ניוטון. לשיטה זו יתרונות על פני השיטה הקודמת בכך שהיא דורשת פחות פעולות חישוב, וקל להוסיף לפולינום הקיים נקודות נוספות, בעוד שבשיטת לגראנז' יש לחשב הכול מחדש.

צורת ניוטון מחושבת כך:

<math>\ p(x) = \sum_{i=1}^{n} [x_1,x_2,\dots,x_i]\prod_{k=1}^{i-1}\left(x-x_k\right) </math>

כאשר הביטוי <math> [x_1,x_2,\dots,x_i]</math> נקרא "הפרש מחולק", והוא מוגדר בצורה הרקורסיבית הבאה:

<math> \ [x_k]=y_k </math>

<math> [x_1,x_2,\dots,x_k]=\frac{[x_2,\dots,x_k]-[x_1,x_2,\dots,x_{k-1}]}{x_k-x_1} </math>

בשל יחידות פולינום האינטרפולציה, שיטה זו מניבה את אותו הפולינום שהניבה שיטת לגראנז', אך ביתר יעילות. בשיטת ניוטון, כדי להוסיף נקודה נוספת לאינטרפולציה די לחשב את האיבר החדש שמוסיפים לסכום, ואין צורך לחשב את הסכום כולו מחדש. בנוסף לכך, הצגת לגראנז' מורכבת מפעולות כפל וחילוק רבות יותר, שכרוכות בשגיאות עיגול. אי לכך, מבחינה חישובית, שיטת ניוטון עשויה להיות מוצלחת יותר.

== ראו גם ==
* אקסטרפולציה
* שיטות חלוקה
* אינטרפולציה ביליניארית

==קישורים חיצוניים==

* 
* , כולל הדרכה איך לבצע אינטרפולציה ל-3 נקודות בעזרת מחשבון מדעי.
* 
* 

==הערות שוליים==

*
קטגוריה:אנליזה נומרית