7.1

מתמטיקה שימושית ו־AᵀA

ריבועים פחותים כהקרנה

Least Squares and Projections

כאשר Ax=b אינה פתירה, מחליפים את b בהיטל p=Ax̂ הקרוב ביותר בתוך C(A). השארית e=b−p מאונכת לכל עמודה, ומכאן נובעות המשוואות הנורמליות.

יחידת לימוד עצמאיתשיעור 1 מתוך 5כ־70 דקות כולל תרגול3 מטרות למידה
  1. 1
    נקודת פתיחהמה כבר ידוע ומה השאלה?
  2. 2
    ניבוימה יקרה במקרה הפשוט?
  3. 3
    המחשהמה באמת משתנה בתמונה?
  4. 4
    ניסוח והצדקהשם, נוסחה ולמה היא נכונה
  5. 5
    בדיקהדוגמה, תרגול ומשוב
  6. 6
    העברהמקרה חדש והמשך המסלול

שאלה לפני נוסחה

מה אנחנו מנסים לראות?

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

דמיינו שמרחב העמודות הוא רצפה ו־b מרחף מעליה. אין x שמגיע בדיוק אל b, לכן מורידים אנך אל הנקודה הקרובה p. הווקטור e=b−p הוא האנך; הדרישה שהוא מאונך לכל כיוון ברצפה קובעת את x̂.

לפני ההמחשה: קראו רק את הכותרת “הנתונים, הקו והשאריות”. מה לדעתכם ישתנה, מה יישאר קבוע, ואיזה סימן בתמונה יוכל להפריך את הניבוי?

לראות לפני שמחשבים · המקרה הפשוט ביותר

הנתונים, הקו והשאריות

קו הריבועים הפחותים יוצר שאריות שסכומן והמומנט שלהן סביב x שווים לאפסyxp: y=3−xe=(1,−1,−1,1) · Aᵀe=(0,0)b=p+e, p∈C(A), e∈N(Aᵀ), SSE=‖e‖²=4
עקבו מהצורה הראשונית אל התוצאה

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

מה כדאי לגלות: במינימום לא כל שארית נעלמת; במקום זאת השאריות מתאזנות כך שסכומן וגם הסכום המשוקלל ב־x הם אפס.

אחרי שראינו

בסוף השיעור תוכלו

  • לבנות את A ואת b מבעיית התאמה ולזהות מדוע Ax=b אינה פתירה בדיוק.
  • לגזור AᵀA x̂=Aᵀb מגאומטריה, מחישוב נגזרות ומפירוק אורתוגונלי.
  • לחשב תחזיות, שאריות ו־SSE ולאמת Aᵀe=0.

נותנים שמות למה שראינו

מושגים שנשתמש בהם

ריבועים פחותים
בחירת x̂ שממזערת את סכום ריבועי השאריות ‖b−Ax‖².
היטל p
הווקטור p=Ax̂ בתוך C(A) הקרוב ביותר ל־b.
שארית e
ההפרש e=b−p; בפתרון האופטימלי הוא שייך ל־N(Aᵀ).
משוואות נורמליות
המערכת AᵀA x̂=Aᵀb המתקבלת מן האורתוגונליות Aᵀe=0.
SSE
סכום ריבועי השאריות, SSE=Σeᵢ²=‖e‖².
מטריצת תכנון
המטריצה A ששורותיה מתארות כיצד פרמטרי המודל יוצרים כל תחזית.

מהמילים אל הסימנים

כותבים את הפעולה שכבר ראינו

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

להצגת נוסחת המפתחקראו כל סימן כפעולה, לא כמשהו שצריך לשנןAᵀ(b−Ax̂)=0 ⇔ AᵀA x̂=Aᵀb

מרכיבים את הפעולות

מהתמונה אל הנוסחה — הגזירה, בלי לדלג על הצעדים

  1. מתרגמים מודל למערכת

    בקו C+Dx כל מדידה מספקת שורה [1,xᵢ]. אם אין קו שעובר בכל הנקודות, b אינו במרחב העמודות של A.

    A[C,D]ᵀ≈b; p=A x̂∈C(A)
  2. מגדירים את השגיאה

    לכל x, הווקטור e(x)=b−Ax אוסף את השאריות. המרחק הריבועי הוא פונקציה לא־שלילית של הפרמטרים.

    E(x)=‖b−Ax‖²=eᵀe
  3. דורשים אנך

    אם e מחזיק רכיב בתוך C(A), אפשר להזיז את p בכיוון הזה ולהתקרב ל־b. לכן במינימום e מאונך לכל עמודה של A.

    e⊥C(A) ⇔ Aᵀe=0
  4. מגיעים למשוואות הנורמליות

    מציבים e=b−Ax̂ ומפזרים את Aᵀ. זו מערכת ריבועית במספר הפרמטרים, גם כאשר למערכת המקורית יש יותר משוואות מנעלמים.

    Aᵀ(b−Ax̂)=0 ⇔ AᵀA x̂=Aᵀb
  5. אותה תוצאה מחשבון

    הגרדיאנט של E הוא −2Aᵀ(b−Ax). נקודת האפס של הגרדיאנט נותנת בדיוק את תנאי האורתוגונליות.

    ∇E(x)=2Aᵀ(Ax−b)=0
  6. מפרקים את b לשני מרחבים

    בפתרון מתקבל פירוק יחיד b=p+e עם p∈C(A) ו־e∈N(Aᵀ). משפט פיתגורס מוכיח שכל בחירה אחרת רחוקה יותר.

    ‖b−Ax‖²=‖e‖²+‖p−Ax‖²
  7. מתי הפתרון יחיד?

    אם עמודות A בלתי תלויות, AᵀA הפיכה ו־x̂ יחיד. אם הן תלויות, ההיטל p עדיין יחיד אך ייתכנו כמה וקטורי מקדמים שמייצרים אותו.

    N(A)={0} ⇔ AᵀA הפיכה

עכשיו רואים את השיטה בפעולה

דוגמאות פתורות, צעד אחר צעד

דוגמה 1

קו ההתאמה של דוגמת העוגן

התאימו קו לנקודות (0,4),(1,1),(2,0),(3,1).

  1. בונים A=[[1,0],[1,1],[1,2],[1,3]] ו־b=(4,1,0,1).

  2. מחשבים AᵀA=[[4,6],[6,14]] ו־Aᵀb=(6,4).

  3. פתרון המערכת נותן C=3,D=−1, ולכן הקו הוא 3−x.

  4. התחזיות הן p=(3,2,1,0), והשאריות e=b−p=(1,−1,−1,1).

  5. בודקים Aᵀe=(Σeᵢ,Σxᵢeᵢ)=(0,0), ו־SSE=1+1+1+1=4.

התוצאה ומה היא אומרת

x̂=(3,−1), p=(3,2,1,0), e=(1,−1,−1,1), SSE=4.

דוגמה 2

הממוצע כהיטל

מצאו את הקבוע v הקרוב למדידות הדופק 70,120,80.

  1. כאן A היא העמודה a=(1,1,1), וכל התחזיות שוות v.

  2. ההיטל על הישר span{a} הוא p=a(aᵀb)/(aᵀa).

  3. מחשבים aᵀb=270 ו־aᵀa=3, ולכן v̂=90.

  4. השארית היא (−20,30,−10), וסכומה אפס: היא מאונכת ל־a.

התוצאה ומה היא אומרת

הקבוע הטוב ביותר הוא הממוצע v̂=90.

איפה זה פוגש את העולם

יישום

התאמת מגמה, כיול חיישנים, רגרסיה ומודלים מדעיים מתחילים מאותה הקרנה. גם כאשר המודל אינו מדויק, תנאי Aᵀe=0 מספק תשובה שניתנת לבדיקה ולא רק קו שנראה טוב לעין.

מלכודת נפוצה

מה כדאי לבדוק

לדרוש שהשאריות עצמן יהיו כולן אפס. זה אפשרי רק כאשר b∈C(A). בריבועים פחותים הדרישה היא חלשה ומדויקת יותר: השארית הכוללת מאונכת לכל כיוון שהמודל מסוגל לשנות.

בודקים שהרעיון יושב

תרגול ומשוב

בדיקת הבנה

בחרו תשובה ורק אז בדקו את עצמכם

איזה וקטור חייב להיות ב־N(Aᵀ) בפתרון ריבועים פחותים?

בחרו אחת מהאפשרויות כדי להמשיך.

עכשיו אתם

אתגר קצר

התאימו קו לנקודות (−1,7),(1,7),(2,21), חשבו את p ואת e, ואמתו את שני רכיבי Aᵀe.

רמז ראשון

בנו A עם שורות [1,t]. תקבלו AᵀA=[[3,2],[2,6]] ו־Aᵀb=(35,42).

הצגת דרך הפתרון
  1. פתרון [[3,2],[2,6]](C,D)=(35,42) הוא C=9,D=4.
  2. התחזיות הן p=(5,13,17).
  3. השארית היא e=(2,−6,4).
  4. Σeᵢ=0 וגם Σtᵢeᵢ=−2−6+8=0, ולכן Aᵀe=0.

מימוש הנושא

קוד שאפשר לקחת לניסוי

הקוד מיישם את אותו רעיון מתמטי. ב־JavaScript אפשר להריץ אותו כאן; גרסת Python זמינה להשוואה ולהעתקה.

הקשר למתמטיקה

הקוד מחשב ממוצעים, שיפוע וחיתוך, ואז בונה במפורש את השאריות ואת שני רכיבי Aᵀe.

פלט צפוי

יתקבל intercept=3, slope=−1, residuals=(1,−1,−1,1), normalResidual=(0,0), ו־SSE=4.

ניסוי המשך

שנו את המדידה האחרונה מ־1 ל־3. כיצד משתנים הקו, השאריות ו־SSE, ואילו שני סכומים נשארים אפס?

מהרעיון אל הקוד

מימוש חישובי

function fitLine(points) {
  const meanX = points.reduce((sum, [x]) => sum+x, 0)/points.length;
  const meanY = points.reduce((sum, [, y]) => sum+y, 0)/points.length;
  const denominator = points.reduce((sum, [x]) => sum+(x-meanX)**2, 0);
  const slope = points.reduce((sum, [x,y]) => sum+(x-meanX)*(y-meanY), 0)/denominator;
  const intercept = meanY-slope*meanX;
  const predicted = points.map(([x]) => intercept+slope*x);
  const residuals = points.map(([, y], i) => y-predicted[i]);
  return { intercept, slope, predicted, residuals,
    normalResidual: [
      residuals.reduce((sum,e)=>sum+e,0),
      residuals.reduce((sum,e,i)=>sum+points[i][0]*e,0),
    ],
    sse: residuals.reduce((sum,e)=>sum+e*e,0) };
}

console.log(fitLine([[0,4],[1,1],[2,0],[3,1]]));

לפני שממשיכים

מה לוקחים מהשיעור

  • ריבועים פחותים מחליפים יעד בלתי נגיש בהיטל הקרוב ביותר בתוך C(A).
  • המשוואות הנורמליות הן פשוט תנאי האורתוגונליות Aᵀe=0.
  • ההיטל p והשארית e מפרקים את b בין C(A) ובין N(Aᵀ).
  • עמודות בלתי תלויות מבטיחות מקדמים יחידים; ההיטל עצמו יחיד גם כאשר המקדמים אינם.

משימת מעבדה לשיעור הזה

תחנה 1 — להזיז קו ולראות את ההיטל

נבאו את הקו, שנו שיפוע וחיתוך, והשוו את SSE ואת Aᵀe לקו האופטימלי.

לפתיחת התחנה
מקורות להעמקה בלבד — השיעור עומד בפני עצמו

מדריך המרצים: עמ׳ 191–197

ספר הלימוד: עמ׳ 386–395