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

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

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

אינטרפולציה ליניארית בין שתי נקודות ידועות

קובץ:Linear interpolation visualisation.svg
בהמחשה הגאומטריות שלמעלה, הערך על העיגול הירוק כפול המרחק בין העיגול הכחול לאדום, שווה לסכום הערך בעיגול האדום כפול המרחק בין העיגול הירוק לכחול, והערך בעיגול הכחול כפול המרחק בין העיגול הירוק לאדום.

אם שתי נקודות ידועות ניתנות על ידי הקואורדינטות הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle (x_0,y_0)} ו הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle (x_1,y_1)} , האינטרפונט הליניארי הוא קו ישר בין נקודות אלה. עבור ערך x במרווח הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle (x_0, x_1)} את הערך y לאורך קו ישר ניתן למצוא על ידי המשוואה:

אשר יכול להיות נגזר גאומטרית מן האיור משמאל. זהו מקרה מיוחד של אינטרפולציה פולינומית עם n = 1.

פתרון המשוואה עבור y, כאשר ידוע ערך x, נותן:

הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle y = y_0 + (y_1-y_0)\frac{x - x_0}{x_1-x_0} }

וזו הנוסחה של אינטרפולציה ליניארית במרווח הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle (x_0,x_1)} . מחוץ למרווח זה, הנוסחה זהה לאקסטרפולציה.

נוסחה זו יכולה גם להיות מובנת כממוצע משוקלל. המשקלים תלויים ביחס הפוך למרחק בין נקודות הקצה לנקודה ידועה; לנקודה קרובה יותר יש השפעה רבה יותר מאשר לנקודה רחוקה. לפיכך, המשקולות הם הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\textstyle \frac{x-x_0}{x_1-x_0}} ו הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\textstyle \frac{x_1-x}{x_1-x_0}} אשר הן מרחקים מנורמלים בין הנקודה הלא ידועה, ונקודות הקצה הידועות. מכיוון שאלו נסכמות ל-1:

הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle y = y_0 \left(1-\frac{x - x_0}{x_1-x_0}\right) + y_1 \left(1-\frac{x_1 - x}{x_1-x_0}\right) = y_0 \left(1-\frac{x - x_0}{x_1-x_0}\right) + y_1 \left(\frac{x - x_0}{x_1-x_0}\right) }

אשר מניב את נוסחת האינטרפולציה הליניארית הנתונה לעיל.

אינטרפולציה של קבוצת נתונים

קובץ:Interpolation example linear.svg
אינטרפולציה ליניארית על מערך נתונים (נקודות אדומות) מורכב ממקטעים של אינטרפולנטים ליניאריים (קווים כחולים).

אינטרפולציה ליניארית על קבוצה של נקודות נתונים הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle (x_0,y_0), (x_1,y_1), (x_2,y_2) ... (x_n,y_n)} מוגדר כשרשור אינטרפולנטים ליניאריים בין כל זוג של נקודות נתונות. התוצאה היא עקומה רציפה, בדרך כלל עם נגזרת בלתי-רציפה, היינו פונקציה חלקה - הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle C^0} .

אינטרפולציה ליניארית כקירוב

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

הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle R_T = f(x) - p(x) \,\!}

כאשר p מציין את פולינום האינטרפולציה הליניארית שהוגדר לעיל

הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle p(x) = f(x_0) + \frac{f(x_1)-f(x_0)}{x_1-x_0}(x-x_0). \,\!}

ניתן להוכיח באמצעות משפט רול שאם ל- f נגזרת שנייה רציפה, השגיאה תחומה על ידי:

הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle |R_T| \leq \frac{(x_1-x_0)^2}{8} \max_{x_0 \leq x \leq x_1} |f''(x)|. \,\!}

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

יישומים

אינטרפולציה ליניארית משמשת לעיתים קרובות כדי למלא פערים בטבלה. נניח שיש טבלה שמכילה אוכלוסיית ארץ מסוימת ב-1970, 1980, 1990 ו-2000, ורוצים להעריך את האוכלוסייה ב-1994. אינטרפולציה ליניארית היא דרך קלה לעשות את זה.

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

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

הרחבות

קובץ:Bilininterp.png
דוגמה אינטרפולציה ביליניארית על מרובע היחידה עם z-הערכים 0, 1, 1, 0.5, כמצוין. ערך האינטרפולציה בכל נקודה מיוצג על ידי הצבע באותה נקודה
קובץ:Piecewise linear function2D.svg
חיבור משטחים של פונקציה ליניארית בשני ממדים (למעלה) ו מצולעים קמורים שבהם הוא ליניארי (למטה).

דיוק

אם פונקציית C0 אינה מספיקה, למשל אם התהליך הזה הפיק נקודות נתונים הידועות כחלקות יותר מ - C0, מקובל להחליף אינטרפולציה ליניארית עם "אינטרפולציית שֶׁגֶם" (spline interpolation), או אפילו אינטרפולציה פולינומית במקרים מסוימים.

רב משתנים

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

ראו גם

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

הערך באדיבות ויקיפדיה העברית, קרדיט,
רשימת התורמים
רישיון cc-by-sa 3.0

אינטרפולציה ליניארית33798102Q2266329