משוואות לינאריות ומטריצות הפוכות
מטריצות סימטריות ואורתוגונליות
Symmetric Matrices and Orthogonal Matrices
לומדים טרנספוזיציה, מכפלה פנימית ואורתונורמליות, ומוכיחים שמטריצה אורתוגונלית משמרת אורכים וזוויות.
- 1נקודת פתיחהמה כבר ידוע ומה השאלה?
- 2ניבוימה יקרה במקרה הפשוט?
- 3המחשהמה באמת משתנה בתמונה?
- 4ניסוח והצדקהשם, נוסחה ולמה היא נכונה
- 5בדיקהדוגמה, תרגול ומשוב
- 6העברהמקרה חדש והמשך המסלול
שאלה לפני נוסחה
מה אנחנו מנסים לראות?
להפריד בין שתי תכונות שונות — סימטריות ואורתוגונליות — ולגזור מן התנאי QᵀQ=I מדוע מטריצה אורתוגונלית ריבועית שומרת אורכים, זוויות ומרחקים.
סימטריות ואורתוגונליות עונות על שאלות שונות. סימטריות בודקת כיצד המספרים מסודרים סביב האלכסון; אורתוגונליות בודקת מה הפעולה עושה לגאומטריה. מטריצה עשויה לקיים אחת מהן, את שתיהן או אף אחת.
לפני ההמחשה: קראו רק את הכותרת “סידור המספרים מול שמירת הצורה”. מה לדעתכם ישתנה, מה יישאר קבוע, ואיזה סימן בתמונה יוכל להפריך את הניבוי?
לראות לפני שמחשבים · המקרה הפשוט ביותר
סידור המספרים מול שמירת הצורה
ההמחשה משווה את מעגל היחידה ואת שתי עמודות המטריצה: Q מסובבת את המעגל ומשאירה אותו מעגל, ואילו S סימטרית מותחת אותו לצורה אליפטית.
מה כדאי לגלות: בצד Q אורכי שתי העמודות הם 1 והמכפלה הפנימית שלהן 0. בצד S האורכים והמכפלה משתנים; לכן Sᵀ=S לבדו אינו מבטיח שימור גאומטרי.
אחרי שראינו
בסוף השיעור תוכלו
- לחשב טרנספוזיציה ולבדוק אם מטריצה סימטרית באמצעות Sᵀ=S.
- לחשב מכפלות פנימיות ונורמות ולזהות אוסף עמודות אורתונורמלי.
- להוכיח עבור Q ריבועית ש־QᵀQ=I גורר Q⁻¹=Qᵀ ושימור מכפלות פנימיות.
- להבחין בין סיבוב, השתקפות ומתיחה סימטרית ולפרש מטריצת Householder.
נותנים שמות למה שראינו
מושגים שנשתמש בהם
- טרנספוזיציה
- הפעולה Aᵀ שמחליפה שורות בעמודות, כך שהאיבר (i,j) עובר למקום (j,i).
- מטריצה סימטרית
- מטריצה ריבועית S שמקיימת Sᵀ=S; האיברים משני צדי האלכסון שווים בזוגות.
- מכפלה פנימית
- המספר xᵀy=Σᵢxᵢyᵢ, שמודד את הקשר בין כיווני שני וקטורים.
- נורמה
- אורך הווקטור: ‖x‖=√(xᵀx).
- וקטורים אורתוגונליים
- וקטורים שמכפלתם הפנימית אפס; גאומטרית הם מאונכים.
- אורתונורמליים
- וקטורים שמאונכים זה לזה וכל אחד מהם באורך 1.
- מטריצה אורתוגונלית
- במובן הרגיל: מטריצה ריבועית Q שמקיימת QᵀQ=I, ולכן Q⁻¹=Qᵀ.
- סיבוב והשתקפות
- העתקות קשיחות ששומרות אורכים וזוויות. סיבוב מסובב את כל המישור, ואילו השתקפות יוצרת תמונת ראי.
- השתקפות Householder
- מטריצה מן הצורה H=I−2uuᵀ עבור וקטור יחידה u; היא הופכת את הרכיב בכיוון u ומשאירה את הרכיב המאונך לו.
מהמילים אל הסימנים
כותבים את הפעולה שכבר ראינו
פתחו את הנוסחה רק אחרי שאתם יכולים לומר במילים מה כל פעולה אמורה לעשות. בשלב הבא נצדיק אותה צעד אחר צעד.
להצגת נוסחת המפתח
קראו כל סימן כפעולה, לא כמשהו שצריך לשנןQᵀQ = Iמרכיבים את הפעולות
מהתמונה אל הנוסחה — הגזירה, בלי לדלג על הצעדים
חלק א: בודקים סימטריות
הטרנספוזיציה מחליפה שורות ועמודות והופכת את סדר הכפל. מטריצה סימטרית חייבת להיות ריבועית וכל זוג איברים משני צדי האלכסון חייב להתאים.
(AB)ᵀ=BᵀAᵀ, Sᵀ=Sסימטריות אינה מבטיחה קשיחות
הבדיקה Sᵀ=S עוסקת בסידור האיברים בלבד. למשל [[2,0],[0,1]] סימטרית אך מכפילה אורכים בכיוון האופקי פי 2, ולכן אינה אורתוגונלית.
S=[[2,0],[0,1]], ‖S(1,0)‖=2≠1חלק ב: עוברים לגאומטריה של עמודות
המכפלה הפנימית קובעת זווית והנורמה קובעת אורך. עמודות אורתונורמליות הן עמודות באורך 1 שמכפלת כל זוג שונה מהן היא 0.
qᵢᵀqⱼ=0 אם i≠j, qᵢᵀqᵢ=1QᵀQ מרכזת את כל הבדיקות
האיבר (i,j) של QᵀQ הוא בדיוק qᵢᵀqⱼ. לכן QᵀQ=I אומר בבת אחת שהעמודות אורתונורמליות.
(QᵀQ)ᵢⱼ=qᵢᵀqⱼבמקרה הריבועי מתקבלת הפוכה פשוטה
מטריצה אורתוגונלית במובן הרגיל היא ריבועית. אם Qx=0, אז ‖x‖²=xᵀQᵀQx=0 ולכן x=0. מבחן ה־pivots של שיעור 4.4 אומר שמטריצה ריבועית שאינה מאבדת כיוון היא הפיכה; מכיוון ש־Qᵀ כבר מבטלת אותה משמאל, ההפוכה היחידה היא Qᵀ ולכן גם QQᵀ=I.
Q⁻¹=Qᵀמוכיחים שימור אורך וזווית
מעבירים את הטרנספוזיציה דרך המכפלה ומשתמשים ב־QᵀQ=I. המכפלה הפנימית נשמרת לכל x,y, ולכן נשמרים גם אורכים, מרחקים והזוויות שנקבעות מהם.
(Qx)ᵀ(Qy)=xᵀQᵀQy=xᵀyהרחבה מוגדרת: עמודות אורתונורמליות במטריצה מלבנית
אם Q היא m×n עם m>n ו־QᵀQ=Iₙ, לא קוראים לה כאן מטריצה אורתוגונלית ריבועית אלא שיכון בעל עמודות אורתונורמליות. היא עדיין שומרת אורכים מ־ℝⁿ אל ℝᵐ. המכפלה QQᵀ היא הטלה: פעולה שמחזירה מכל וקטור את הרכיב שאפשר לבנות מעמודות Q. המושגים הפורמליים יפותחו בפרק 5.
QᵀQ=Iₙ, אך בדרך כלל QQᵀ≠Iₘ
עכשיו רואים את השיטה בפעולה
דוגמאות פתורות, צעד אחר צעד
ארבע אפשרויות לסיווג
סווגו את S=[[2,1],[1,2]], R=[[0,−1],[1,0]] ו־F=[[1,0],[0,−1]] כסימטריות ו/או אורתוגונליות.
Sᵀ=S ולכן S סימטרית. אבל עמודתה הראשונה באורך √5 ולא 1, ולכן S אינה אורתוגונלית.
עבור R מתקבל RᵀR=I, ולכן R אורתוגונלית. אולם Rᵀ≠R, ולכן אינה סימטרית; זהו סיבוב ב־90°.
עבור F מתקיים גם Fᵀ=F וגם FᵀF=I. היא גם סימטרית וגם אורתוגונלית; זוהי השתקפות ביחס לציר x.
מכאן שאין גרירה אוטומטית בין שתי התכונות.
סימטריות נבדקת מול הטרנספוזיציה; אורתוגונליות נבדקת מול המכפלה QᵀQ.
S: סימטרית בלבד; R: אורתוגונלית בלבד; F: שתיהןהשתקפות Householder מספרית
עבור u=(3/5,4/5), בנו H=I−2uuᵀ ובדקו מה היא עושה ל־u ולווקטור המאונך v=(−4/5,3/5).
מחשבים uuᵀ=[[9/25,12/25],[12/25,16/25]].
לכן H=[[7/25,−24/25],[−24/25,−7/25]]. המטריצה סימטרית מפני Hᵀ=H.
כיוון ש־uᵀu=1, מתקבל Hu=u−2u(uᵀu)=−u.
מכיוון uᵀv=0, מתקבל Hv=v−2u(uᵀv)=v.
לבסוף H²=I, ולכן HᵀH=H²=I: ההשתקפות אורתוגונלית.
H הופכת את הרכיב בכיוון u ומשאירה את הכיוון המאונך; זו השתקפות ולא מתיחה.
H=[[7/25,−24/25],[−24/25,−7/25]]איפה זה פוגש את העולם
יישום
ברובוטיקה ובגרפיקה, Q מעבירה קואורדינטות בין מסגרות בלי לעוות גוף, והפעולה ההפוכה היא פשוט Qᵀ. מטריצות סימטריות מופיעות באנרגיה, אינרציה וקו־וריאנציה.
מלכודת נפוצה
מה כדאי לבדוק
לכנות כל Q מלבנית שמקיימת QᵀQ=I 'מטריצה אורתוגונלית' או להסיק שגם QQᵀ=I. במובן הרגיל המונח שמור למטריצה ריבועית; במקרה המלבני QQᵀ היא הטלה על הרכיבים שנבנים מעמודות Q. סימטריות גם אינה מבטיחה שמירת אורכים.
בודקים שהרעיון יושב
תרגול ומשוב
בדיקת הבנה
בחרו תשובה ורק אז בדקו את עצמכם
בחרו אחת מהאפשרויות כדי להמשיך.
עכשיו אתם
אתגר קצר
יהי u=(cosθ,sinθ) ו־H=I−2uuᵀ. כתבו את H בעזרת cos(2θ), sin(2θ), הוכיחו ש־H אורתוגונלית, ומצאו את פעולתה על u ועל v=(−sinθ,cosθ).
רמז ראשון
השתמשו בזהויות 1−2cos²θ=−cos(2θ), 1−2sin²θ=cos(2θ) ו־2sinθcosθ=sin(2θ). להוכחת האורתוגונליות חשבו H² ונצלו uᵀu=1.
הצגת דרך הפתרון
- פיתוח I−2uuᵀ נותן H=[[−cos(2θ),−sin(2θ)],[−sin(2θ),cos(2θ)]].
- H סימטרית. נוסף על כך H²=(I−2uuᵀ)²=I−4uuᵀ+4u(uᵀu)uᵀ=I, ולכן HᵀH=I.
- מאחר ש־uᵀu=1, מתקבל Hu=u−2u=−u. מאחר ש־uᵀv=0, מתקבל Hv=v.
- לכן H משקפת ביחס לקו המאונך ל־u: היא הופכת את הרכיב הניצב לקו ומשאירה את הרכיב שעל הקו.
מימוש הנושא
קוד שאפשר לקחת לניסוי
הקוד מיישם את אותו רעיון מתמטי. ב־JavaScript אפשר להריץ אותו כאן; גרסת Python זמינה להשוואה ולהעתקה.
הקוד בונה סיבוב Q והשתקפות H, מחשב QᵀQ ו־HᵀH ומשווה מכפלות פנימיות לפני ואחרי ההעתקה.
שתי המכפלות יהיו קרובות ל־I; המכפלה הפנימית של x,y תישמר תחת Q; ו־H תשלח את u ל־−u ואת v לעצמו.
החליפו עמודה אחת של Q בכפולה פי 2. בדקו כיצד משתנים QᵀQ, אורכי הווקטורים והמכפלות הפנימיות.
מהרעיון אל הקוד
מימוש חישובי
const transpose = (A) =>
A[0].map((_, j) => A.map((row) => row[j]));
const multiply = (A, B) => A.map((row) =>
B[0].map((_, j) =>
row.reduce((sum, value, k) => sum + value*B[k][j], 0),
),
);
const matVec = (A, x) =>
A.map((row) =>
row.reduce((sum, value, j) => sum + value*x[j], 0),
);
const dot = (x, y) =>
x.reduce((sum, value, i) => sum + value*y[i], 0);
const outer = (x, y) => x.map((a) => y.map((b) => a*b));
const identity = (n) => Array.from(
{ length: n },
(_, i) => Array.from({ length: n }, (_, j) => Number(i === j)),
);
const theta = Math.PI/5;
const Q = [
[Math.cos(theta), -Math.sin(theta)],
[Math.sin(theta), Math.cos(theta)],
];
const x = [2, -1];
const y = [1, 3];
const u = [3/5, 4/5];
const v = [-4/5, 3/5];
const uuT = outer(u, u);
const H = identity(2).map((row, i) =>
row.map((value, j) => value - 2*uuT[i][j]),
);
console.table({ Q, H });
console.table(multiply(transpose(Q), Q));
console.table(multiply(transpose(H), H));
console.log({
before: dot(x, y),
after: dot(matVec(Q, x), matVec(Q, y)),
Hu: matVec(H, u),
minusU: u.map((value) => -value),
Hv: matVec(H, v),
});from math import cos, pi, sin
def transpose(A):
return [list(column) for column in zip(*A)]
def multiply(A, B):
return [
[
sum(a*b for a, b in zip(row, column))
for column in zip(*B)
]
for row in A
]
def mat_vec(A, x):
return [sum(a*b for a, b in zip(row, x)) for row in A]
def dot(x, y):
return sum(a*b for a, b in zip(x, y))
def outer(x, y):
return [[a*b for b in y] for a in x]
def identity(n):
return [[float(i == j) for j in range(n)] for i in range(n)]
theta = pi/5
Q = [[cos(theta), -sin(theta)], [sin(theta), cos(theta)]]
x, y = [2, -1], [1, 3]
u, v = [3/5, 4/5], [-4/5, 3/5]
uu_t = outer(u, u)
H = [
[value - 2*uu_t[i][j] for j, value in enumerate(row)]
for i, row in enumerate(identity(2))
]
print(Q, H)
print(multiply(transpose(Q), Q))
print(multiply(transpose(H), H))
print(dot(x, y), dot(mat_vec(Q, x), mat_vec(Q, y)))
print({
"Hu": mat_vec(H, u),
"minus_u": [-value for value in u],
"Hv": mat_vec(H, v),
})לפני שממשיכים
מה לוקחים מהשיעור
- סימטריות Sᵀ=S מתארת סידור איברים; אורתוגונליות QᵀQ=I מתארת שמירת גאומטריה.
- האיברים של QᵀQ הם כל המכפלות הפנימיות בין עמודות Q, ולכן I פירושה עמודות אורתונורמליות.
- עבור Q ריבועית אורתוגונלית מתקיים Q⁻¹=Qᵀ והיא שומרת מכפלות פנימיות, אורכים וזוויות.
- מטריצת Householder היא השתקפות שהיא גם סימטרית וגם אורתוגונלית; המקרה המלבני QᵀQ=I הוא שיכון שומר אורכים, לא מטריצה אורתוגונלית ריבועית.
משימת מעבדה לשיעור הזה
תחנה 4 — מתיחה לעומת תנועה קשיחה
השוו מטריצה סימטרית מותחת לסיבוב ולהשתקפות. מדדו אורכים וזוויות לפני ואחרי ונסחו איזו תכונה מנבאת את השימור.
מקורות להעמקה בלבד — השיעור עומד בפני עצמו
מדריך המרצים: עמ׳ 123–130
ספר הלימוד: עמ׳ 238–250