חזור לתיקייה: 02340125 - אלגוריתמים נומריים

4 - ערכים עצמיים וסינגולריים

חיפוש בתיקיה
Ctrl K
לחץ כאן או הקש Ctrl K כדי לחפש בכל התיקיה
  • ערכים עצמיים
  • פירוק שור(Schur)
  • מטריצות סימטריות וחיוביות מוגדרות
  • מטריצות סימטריות
  • עכשיו גם חיובית מוגדרת
  • תכונת רילי-ריץ: ע"ע כפתרון לבעיית אופטימיזציה
  • דרך הסתכלות נוספת
  • מוצאים את כל הע"ע
  • ערכים ע"ע מוכללים
  • פירוק SVD
  • ערכים סינגולריים
  • מפרקים מטריצות
  • סיכום בניית ה-SVD
  • עבור מטריצות ללא דרגה מלאה
  • עכשיו גם מטריצות רחבות
  • הפירוק באופן כללי
  • פירוק SVD אל מול פירוק ספקטרלי
  • שימושי הפירוק
  • פתרון מערכת משווואות
  • מטריצה ריבועית והפיכה
  • יותר שורות מעמודות
  • יותר עמודות משורות
  • מקסנה
  • פתרון בעיית ריבועים פחותים
  • קירוב מטריצות עם אילוץ דרגה

4 - ערכים עצמיים וסינגולריים

02340125

אלגוריתמים נומריים

רשימות הרצאה לקריאה בשבת

ערכים עצמיים וסינגולריים

הופק מתוך תקיית התואר של שקד

uni-folder.vercel.app

בלב הסיפור שלנו עומד עוד פעם פירוק. הפירוק הפעם הוא אחד מהחשובים ביותר באלגברה ליניארית והוא פירוק ה-SVDSVDSVD.

A=UΣVtA=U\Sigma V^tA=UΣVt

זה לא לכסון אך זה כן דומה ללכסון.

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

ערכים עצמיים

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

הגדרה 1 (ערך עצמי ווקטור עצמי)

בהינתן מטריצה ריבועית וממשית בגודל n×nn \times nn×n, הסקלר λ\lambdaλ נקרא ערך עצמי אם קיים ווקטור v‾≠0\underline{v} \neq 0v​=0 אשר יקרא וקטור עצמי המקיים:

Av‾=λv‾A\underline{v}=\lambda \underline{v}Av​=λv​

נשים לב שאם נמצא וקטור עצמי שאינו טריוויאלי v‾\underline{v}v​ אזי הכפלתו בסקלר מותירה אותו פתרון ראוי למערכת Av‾=λv‾A\underline{v}=\lambda \underline{v}Av​=λv​.
לכן מקובל לדרוש שהו"ע יהיו מנורמלים ∥v‾∥2=1\left\lVert \underline{v} \right\rVert_{2}=1∥v​∥2​=1.

כדי למצוא את הע"ע נעשה דבר מאוד פשוט:

Av‾=λv‾  ⟹  Av‾=λIv‾  ⟹  (A−λI)v‾=0A\underline{v}=\lambda \underline{v} \implies A\underline{v}=\lambda I\underline{v} \implies (A-\lambda I)\underline{v}=0Av​=λv​⟹Av​=λIv​⟹(A−λI)v​=0

לכן, על הע"ע להיות כאלה שיגרמו למטריצה A−λIA-\lambda IA−λI להיות לא הפיכה. כלומר, עלינו לדרוש:

∣A−λI∣=∣λI−A∣=0\left| A-\lambda I \right|=\left| \lambda I-A \right|=0∣A−λI∣=∣λI−A∣=0

ביטוי זה מוביל לפולינום ב-λ\lambdaλ מדרגה nnn. זהו הפולינום האופייני.

משפט

λ=a+ib\lambda=a+ibλ=a+ib ע"ע של AAA אם ורק אם λ=a−ib\lambda=a-ibλ=a−ib הינו גם ע"ע של AAA.

הגדרה 2 (ריבוי אלגברי)

כשערך עצמי מופיע kkk פעמים כשורש של הפולינום האופייני נאמר כי לערך עצמי זה ריבוי אלגברי ra=kr_{a}=kra​=k.

הגדרה 3 (ריבוי גיאומטרי)

לערך עצמי בריבוי אלגברי ra=kr_{a}=kra​=k יש ת"מ של ו"ע ממימד 1≤rg≤ra=k1\leq r_{g}\leq r_{a}=k1≤rg​≤ra​=k הקרוי ריבוי גיאומטרי.

דוגמה

ישנה מטריצה שנקראת מטריצת ג'ורדן והיא נראית כך:

A=(λ0100…00λ010…000λ01…0000λ0…0⋮⋮⋮⋮⋱⋮0000…λ0)A=\begin{pmatrix} \lambda_{0} & 1 & 0 & 0 & \dots & 0 \\ 0 & \lambda_{0} & 1 & 0 & \dots & 0 \\ 0 & 0 & \lambda_{0} & 1 & \dots & 0 \\ 0 & 0 & 0 & \lambda_{0} & \dots & 0 \\ \vdots & \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & 0 & \dots & \lambda_{0} \end{pmatrix}A=​λ0​000⋮0​1λ0​00⋮0​01λ0​0⋮0​001λ0​⋮0​…………⋱…​0000⋮λ0​​​

למטריצה משולשת הדרטרמיננטה היא מכפלת איברי האלכסון ולכן p(λ)=(λ−λ0)np(\lambda)=(\lambda-\lambda_{0})^np(λ)=(λ−λ0​)n.
כאשר אנו נחפש את הו"ע ונחסיר את λ0\lambda_{0}λ0​ מהמטריצה נקבל:

(A−λ0I)v‾=(010…00001…00⋮⋮⋮⋱⋮⋮000…10000…01)(A-\lambda_{0}I)\underline{v}=\begin{pmatrix} 0 & 1 & 0 & \dots & 0 & 0 \\ 0 & 0 & 1 & \dots & 0 & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\ 0 & 0 & 0 & \dots & 1 & 0 \\ 0 & 0 & 0 & \dots & 0 & 1 \end{pmatrix}(A−λ0​I)v​=​00⋮00​10⋮00​01⋮00​……⋱……​00⋮10​00⋮01​​

הפתרון למערכת זו הוא הוקטור v‾t=(1000…0)\underline{v}^t=\begin{pmatrix}1 & 0 & 0 & 0 & \dots & 0\end{pmatrix}v​t=(1​0​0​0​…​0​).
במקרה הזה לע"ע ר"א של nnn ור"ג של 111.

משפט

יהיו λ1,…,λn∈R\lambda_{1},\dots,\lambda_{n} \in \mathbb{R}λ1​,…,λn​∈R ע"ע של המטריצה AAA. אזי:

∣A∣=λ1⋅λ2⋯λn|A|=\lambda_{1}\cdot\lambda_{2}\cdots\lambda_{n}∣A∣=λ1​⋅λ2​⋯λn​

הוכחה: באלגברה אמ.

משפט

יהיו λ1,…,λn∈R\lambda_{1},\dots,\lambda_{n} \in \mathbb{R}λ1​,…,λn​∈R ע"ע של המטריצה AAA. אזי:

λ1+λ2+⋯+λn=trace⁡(A)\lambda_{1}+\lambda_{2}+\dots+\lambda_{n}=\operatorname{trace}(A)λ1​+λ2​+⋯+λn​=trace(A)

הוכחה: באותו המשפט של ההוכחה הקודמת.

משפט

בהינתן מטריצה AAA עם שני ע"ע בר"א=ר"ג=1 ושונים זה מזה λ1≠λ2\lambda_{1} \neq \lambda_{2}λ1​=λ2​ הו"ע המיוחסים לע"ע הללו v‾1,v‾2\underline{v}_{1},\underline{v}_{2}v​1​,v​2​ הינם בהכרח בת"ל.

הוכחה: גם כן באלגברה אמ'.

משפט

בהינתן מטריצה AAA עם ע"ע שונים זה מזה, הו"ע התואמים להם הינם בהכרח בת"ל ולכן מהווים בסיס למרחב ה-nnn מימדי.

הגדרה 4 (מטריצה לכסינה)

מטריצה ריבועית AAA נקראת לכסינה אם קיימת מטריצה הפיכה SSS ומטריצה אלכסונית DDD כך שמתקיים:

S−1AS=DS^{-1}AS=DS−1AS=D
משפט

בהנתן מטריצה ריבועית AAA כלשהי ומטריצה הפיכה GGG באותו גודל, המטריצה G−1AGG^{-1}AGG−1AG תהיה בעלת אותם ע"ע כשל AAA.

הוכחה:
נניח כי λ\lambdaλ ע"ע של AAA. אזי, קיים ו"ע v‾\underline{v}v​ כך ש-Av‾=λv‾A\underline{v}=\lambda \underline{v}Av​=λv​.
נכפול מערכת זו משמאל ב-G−1G^{-1}G−1 ונקבל: G−1Av‾=λG−1v‾G^{-1}A\underline{v}=\lambda G^{-1}\underline{v}G−1Av​=λG−1v​.
נגדיר z‾=G−1v‾\underline{z}=G^{-1}\underline{v}z​=G−1v​ ונקבל כי Gz‾=v‾G\underline{z}=\underline{v}Gz​=v​ ולכן G−1AGz‾=λz‾G^{-1}AG\underline{z}=\lambda \underline{z}G−1AGz​=λz​.
לכן, λ\lambdaλ ע"ע של G−1AGG^{-1}AGG−1AG עם ו"ע אשר לא מובטח להיות זהה.
∎

פירוק שור(SchurSchurSchur)

משפט

בהינתן מטריצה ריבועית AAA לכסינה, ניתן למצוא מטריצה אורתונורמלית QQQ ומטריצה משולשת עליונה TTT ממשיות כך שיתקיים:

QtAQ=TQ^tAQ=TQtAQ=T

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

הוכחה:
כיוון שהמטריצה לכסינה, קיימים SSS ו-DDD עבורם S−1ASS^{-1}ASS−1AS.
נקח את המטריצה SSS ונפעיל עליה פירוק QRQRQR. נקבל S=QRS=QRS=QR. בשל היות SSS הפיכה RRR הפיכה גם כן.
נציב את הפירוק למשוואת הלכסון ונקבל:

S−1AS=(QR)−1A(QR)=R−1QtAQR=DS^{-1}AS=(QR)^{-1}A(QR)=R^{-1}Q^tAQR=DS−1AS=(QR)−1A(QR)=R−1QtAQR=D

נעביר את ההכפלות של RRR והיפוכו לאגף השני ונקבל

QtAQ=RDR−1=TQ^tAQ=RDR^{-1}=TQtAQ=RDR−1=T

נשים לב כי TTT אכן משולשת עליונה כי היא מכפלה של מטריצות משולשות עליונות.
∎

מטריצות סימטריות וחיוביות מוגדרות

מטריצות סימטריות

כעת, נצמצם את הדיון למטריצות סימטריות בלבד.

משפט

אם המטריצה AAA ריבועית ממשית וסימטרית אזי:

  • המטריצה בהכרח לכסינה
  • כל הע"ע והו"ע שלה ממשיים
  • הו"ע שלה מהווים סט אורתונורמלי ולכן היא ניתנת ללכסון אורתונורמלי ע"י QtAQ=DQ^tAQ=DQtAQ=D.
הערה

  • הפירוק A=QDQtA=QDQ^tA=QDQt נקרא הפירוק הספקטרלי וכלל הערכים העצמיים של מטריצה נקראים הספקטרום שלה.
  • אין שום קשר בין הפירוק הנ"ל לפירוק LDLtLDL^tLDLt.
דוגמה

נסתכל על המטריצה הסימטרית הבאה:

A=(5−42−45222−1)A=\begin{pmatrix} 5 & -4 & 2 \\ -4 & 5 & 2 \\ 2 & 2 & -1 \end{pmatrix}A=​5−42​−452​22−1​​

הע"ע והו"ע נתונים ע"י:

λ1=9,v‾1=(1−10)λ2=3,v‾2=(111)λ3=−3,v‾3=(11−2)\lambda_{1}=9,\underline{v}_{1}=\begin{pmatrix} 1 \\ -1 \\ 0 \end{pmatrix} \qquad \lambda_{2}=3,\underline{v}_{2}=\begin{pmatrix} 1 \\ 1 \\ 1 \end{pmatrix} \qquad \lambda_{3}=-3,\underline{v}_{3}=\begin{pmatrix} 1 \\ 1 \\ -2 \end{pmatrix}λ1​=9,v​1​=​1−10​​λ2​=3,v​2​=​111​​λ3​=−3,v​3​=​11−2​​

ניכר שהווקטורים אנכיים זה לזה.
פירוק שור יראה כך:

A=(121316−121316013−26)(90003000−3)(121316−121316013−26)A=\begin{pmatrix} \frac{1}{\sqrt{ 2 }} & \frac{1}{\sqrt{ 3 }} & \frac{1}{\sqrt{ 6 }} \\ -\frac{1}{\sqrt{ 2 }} & \frac{1}{\sqrt{ 3 }} & \frac{1}{\sqrt{ 6 }} \\ 0 & \frac{1}{\sqrt{ 3 }} & -\frac{2}{\sqrt{ 6 }} \end{pmatrix}\begin{pmatrix} 9 & 0 & 0 \\ 0 & 3 & 0 \\ 0 & 0 & -3 \end{pmatrix}\begin{pmatrix} \frac{1}{\sqrt{ 2 }} & \frac{1}{\sqrt{ 3 }} & \frac{1}{\sqrt{ 6 }} \\ -\frac{1}{\sqrt{ 2 }} & \frac{1}{\sqrt{ 3 }} & \frac{1}{\sqrt{ 6 }} \\ 0 & \frac{1}{\sqrt{ 3 }} & -\frac{2}{\sqrt{ 6 }} \end{pmatrix}A=​2​1​−2​1​0​3​1​3​1​3​1​​6​1​6​1​−6​2​​​​900​030​00−3​​​2​1​−2​1​0​3​1​3​1​3​1​​6​1​6​1​−6​2​​​

לפירוק הספקטרלי A=QDQtA=QDQ^tA=QDQt יש פרשנות מעניינת:

Ax‾=QDQtx‾A\underline{x}=QDQ^t\underline{x}Ax​=QDQtx​

למה זה מעניין? כי ככה מיקי אלעד החליט.

עוד דבר מעניין שניתן לראות הוא:

A=QDQt=(∣∣v‾1…v‾n∣∣)(λ1⋱λn)(−v‾1t−⋮−v‾nt−)=∑k=1nλkv‾kv‾kt{\Large A}=QDQ^t=\begin{pmatrix} \vert & & \vert \\ \underline{v}_{1} & \dots & \underline{v}_{n} \\ \vert & & \vert \end{pmatrix}\begin{pmatrix} \lambda_{1} \\ & \ddots \\ & & \lambda_{n} \end{pmatrix}\begin{pmatrix} - & \underline{v}_{1}^t & - \\ & \vdots \\ - & \underline{v}_{n}^t & - \end{pmatrix}=\Large \sum_{k=1}^n \lambda_{k}\underline{v}_{k}\underline{v}_{k}^tA=QDQt=​∣v​1​∣​…​∣v​n​∣​​​λ1​​⋱​λn​​​​−−​v​1t​⋮v​nt​​−−​​=k=1∑n​λk​v​k​v​kt​

מטריצה סימטרית היא תמיד סכום של מטריצות סימטריות מדרגה 111 והן המטריצות שנוצרות מהו"ע וכל אחת מושקלת מהע"ע המותאם לה.
זוהי דרך אחרת לראות מהי המטריצה AAA.

עכשיו גם חיובית מוגדרת

כיוון ש-KKK סימטרית קיים לה פירוק פקטרלי. נשתמש בו בהגדרת החיוביות מוגדרת ונקבל:

∀x‾≠0:  x‾tKx‾=x‾tQDQtx‾=(Qtx‾)tD(Qtx‾)>0z‾:=Qtx‾∀z‾≠0:  x‾tKx‾=z‾tDz‾=∑k=1nλkzk2>0\begin{align*} \forall \underline{x} \neq0:\; & \underline{x}^tK\underline{x}=\underline{x}^tQDQ^t\underline{x}=(Q^t\underline{x})^tD(Q^t\underline{x})>0 \\ & \underline{z}:=Q^t\underline{x} \\ \forall \underline{z} \neq 0:\; & \underline{x}^tK\underline{x}=\underline{z}^tD\underline{z}=\sum_{k=1}^n \lambda_{k}z_{k}^2 >0 \end{align*}∀x​=0:∀z​=0:​x​tKx​=x​tQDQtx​=(Qtx​)tD(Qtx​)>0z​:=Qtx​x​tKx​=z​tDz​=k=1∑n​λk​zk2​>0​

מה זה דורש על DDD? נדרש שכל איברי אלכסון DDD יהיו חיוביים.
כלומר, כל הע"ע חיוביים.

משפט

אם KKK סימטרית וחיובית מוגדרת, כל הע"ע שלה חיוביים.
אם היא חיובית חצי מוגדרת, כל ערכיה העצמיים אי-שליליים.

תכונת רילי-ריץ: ע"ע כפתרון לבעיית אופטימיזציה

ראינו ב2 - ריבועים פחותים כיצד אנו לוקחים בעיית שוויון Ax‾=b‾A\underline{x}=\underline{b}Ax​=b​ והופכים אותה לבעיית אופטימיזציה min⁡x‾∥Ax‾−b‾∥22\underset{\underline{x}}{\min}\left\lVert A\underline{x}-\underline{b} \right\rVert_{2}^2x​min​∥Ax​−b​∥22​.
בפרק זה נראה שגם את המשוואה Av‾=λv‾A\underline{v}=\lambda \underline{v}Av​=λv​ ניתן לקחת ולהפוך לבעיית אופטימיזציה. לזה קוראים תכונת ריילי-ריץ ואותה נראה כעת.

נניח כי בידינו מטריצה אלכסונית DDD עם ערכים ממשיים ואי שליליים באלכסון הראשי. ברור כי אלו גם הע"ע של מטריצה זו.

D=(d10…00d2…0⋮⋮⋱⋮00…dn)d1≥d2≥d3≥⋯≥dn≥0D=\begin{pmatrix} d_{1} & 0 & \dots & 0 \\ 0 & d_{2} & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \dots & d_{n} \end{pmatrix} \qquad \qquad d_{1}\geq d_{2} \geq d_{3}\geq \dots \geq d_{n}\geq 0D=​d1​0⋮0​0d2​⋮0​……⋱…​00⋮dn​​​d1​≥d2​≥d3​≥⋯≥dn​≥0

נניח כי ברצוננו להביא למקסימום את התבנית הבאה:

max⁡z‾q(z‾)=max⁡z‾z‾tDz‾=max⁡z‾∑k=1ndkzk2\underset{\underline{z}}{\max}q(\underline{z})=\underset{\underline{z}}{\max }\underline{z}^tD\underline{z}=\underset{\underline{z}}{\max} \sum_{k=1}^n d_{k}z_{k}^2z​max​q(z​)=z​max​z​tDz​=z​max​k=1∑n​dk​zk2​

נשים לב כי הביטוי הזה אינו חסום.
נרצה לקבל משהו חסום ולשם כך נוכל לקבוע אילוץ על הוקטור z‾\underline{z}z​ להימצא על כדור היחידה. כלומר, z‾tz‾=1\underline{z}^t\underline{z}=1z​tz​=1.
הבעיה שנקבל חסומה שכן d1d_{1}d1​ הוא הגדול באיברי האלכסון של DDD ואז הפונקציה מקבלת את החסם מלמעלה הבא:

∑k=1ndkzk2≤∑k=1nd1zk2=d1∑k=1nzk2=d1\sum_{k=1}^n d_{k}z^2_{k}\leq \sum_{k=1}^n d_{1}z_{k}^2=d_{1}\sum_{k=1}^n z_{k}^2=d_{1}k=1∑n​dk​zk2​≤k=1∑n​d1​zk2​=d1​k=1∑n​zk2​=d1​

הפונקציה חסומה ובנוסף, ניתן למצוא את הוקטור z‾\underline{z}z​ שיביא אותנו לסופרמום ובכך הוא יהיה מקסימום:

z‾t=(1000…0)\underline{z}^t=\begin{pmatrix} 1 & 0 & 0 & 0 & \dots & 0 \end{pmatrix}z​t=(1​0​0​0​…​0​)

נשים לב כי זהו הו"ע שמתייחס לע"ע d1d_{1}d1​ במטריצה DDD.

כעת, אם נחליף את בעיית המקסימיזציה שלנו לבעיית מנימיזציה כאשר במקום d1d_{1}d1​ נקח את dnd_{n}dn​ כך:

∀z‾tz‾=1:      min⁡z‾z‾tDz‾≤dn\forall \underline{z}^t\underline{z}=1:\;\;\; \underset{\underline{z}}{\min}\underline{z}^tD\underline{z}\leq d_{n}∀z​tz​=1:z​min​z​tDz​≤dn​

האם דבר זה נכון גם למטריצות חיוביות מוגדרות שהן לאו דווקא אלכסוניות?
תהי AAA מטריצה סימטרית וחיובית חצי מוגדרת. אזי קיים לה פירוק ספקטרלי A=QDQtA=QDQ^tA=QDQt.
נתבונן בבעיה arg⁡max⁡∥x‾∥2=1x‾tAx‾\arg \underset{\left\lVert \underline{x} \right\rVert_{2}=1}{\max} \underline{x}^tA\underline{x}arg∥x​∥2​=1max​x​tAx​. נוכל לפרק זאת עם הפירוק:

arg⁡max⁡∥x‾∥2=1x‾tAx‾=argmax⁡∥x‾∥2=1(Qtx‾)tD(Qtx‾)=argmax⁡∥z‾∥2=1z‾tDz‾\arg \underset{\left\lVert \underline{x} \right\rVert_{2}=1}{\max} \underline{x}^tA\underline{x}=arg \underset{\left\lVert \underline{x} \right\rVert_{2}=1 }{\max} (Q^t\underline{x})^tD(Q^t\underline{x})=arg \underset{\left\lVert \underline{z} \right\rVert_{2}=1 }{\max} \underline{z}^tD\underline{z}arg∥x​∥2​=1max​x​tAx​=arg∥x​∥2​=1max​(Qtx​)tD(Qtx​)=arg∥z​∥2​=1max​z​tDz​

ברור שהמקסימום של הבעיה שהתקבלה הוא λ1\lambda_{1}λ1​ שהוא הע"ע הגדול ביותר של AAA (וגם איבר האלכסון הגדול ביותר של DDD)

משפט

למטריצה חיובית חצי מוגדרת AAA בגודל nnn על nnn בעלת ע"ע λ1≥λ2≥⋯≥λn≥0\lambda_{1}\geq \lambda_{2}\geq \dots\geq \lambda_{n}\geq 0λ1​≥λ2​≥⋯≥λn​≥0 וו"ע תואמים להם v‾1,…,v‾n\underline{v}_{1},\dots,\underline{v}_{n}v​1​,…,v​n​ מתקבל כי:

max⁡∥x‾∥2=1x‾tAx‾=λ1arg ⁣ ⁣max⁡∥x‾∥2=1x‾tAx‾=v‾1min⁡∥x‾∥2=1x‾tAx‾=λnarg ⁣ ⁣min⁡∥x‾∥2=1x‾tAx‾=v‾n\begin{matrix} \underset{\left\lVert \underline{x} \right\rVert_{2}=1 }{\max}\underline{x}^tA\underline{x}=\lambda_{1} & arg \!\!\underset{\left\lVert \underline{x} \right\rVert_{2}=1 }{\max} \underline{x}^tA\underline{x}=\underline{v}_{1} \\ \underset{\left\lVert \underline{x} \right\rVert_{2}=1 }{\min}\underline{x}^tA\underline{x}=\lambda_{n} & arg \!\!\underset{\left\lVert \underline{x} \right\rVert_{2}=1 }{\min} \underline{x}^tA\underline{x}=\underline{v}_{n} \end{matrix}∥x​∥2​=1max​x​tAx​=λ1​∥x​∥2​=1min​x​tAx​=λn​​arg∥x​∥2​=1max​x​tAx​=v​1​arg∥x​∥2​=1min​x​tAx​=v​n​​

ניתן לנסח את הבעיית האופטימיזציה בדרך אחרת:

x‾∗=argmax⁡∥x‾∥2=1x‾tAx‾=argmax⁡x‾≠0(x‾∥x‾∥2)tA(x‾∥x‾∥2)=argmax⁡x‾≠0x‾tAx‾∥x‾∥2=argmax⁡x‾≠0x‾tAx‾x‾tx‾\begin{align*} \underline{x}^*&=arg\underset{\left\lVert \underline{x} \right\rVert_{2}=1 }{ \max}\underline{x}^tA\underline{x}=arg\underset{\underline{x}\neq0}{\max} \left( \frac{\underline{x}}{\left\lVert \underline{x} \right\rVert_{2} } \right)^tA\left( \frac{\underline{x}}{\left\lVert \underline{x} \right\rVert_{2} } \right)=arg\underset{\underline{x}\neq0}{\max} \frac{\underline{x}^tA\underline{x}}{\left\lVert \underline{x} \right\rVert_{2} }=arg\underset{\underline{x}\neq0}{\max} \frac{\underline{x}^tA\underline{x}}{\underline{x}^t\underline{x}} \end{align*}x​∗​=arg∥x​∥2​=1max​x​tAx​=argx​=0max​(∥x​∥2​x​​)tA(∥x​∥2​x​​)=argx​=0max​∥x​∥2​x​tAx​​=argx​=0max​x​tx​x​tAx​​​

לדבר הזה קוראים מנת ריילי ובתרגול נראה שימוש שלה.

דרך הסתכלות נוספת

נשכח את כל מה שעשינו עד כה ונתבונן בביטוי הבא:

f(x‾)=x‾tAx‾x‾tx‾f(\underline{x})=\frac{\underline{x}^tA\underline{x}}{\underline{x}^t\underline{x}}f(x​)=x​tx​x​tAx​​

נגזור כפי שראינו בריבועים הפחותים ונקבל:

∇x‾f(x‾)=2Ax‾(x‾tx‾)−x‾(x‾tAx‾)(x‾tx‾)2=0\nabla_{\underline{x}}f(\underline{x})=2 \frac{A\underline{x}(\underline{x}^t\underline{x})-\underline{x}(\underline{x}^tA\underline{x})}{(\underline{x}^t\underline{x})^2}=0∇x​​f(x​)=2(x​tx​)2Ax​(x​tx​)−x​(x​tAx​)​=0 Ax‾=x‾tAx‾x‾tx‾x‾A\underline{x}=\frac{\underline{x}^tA\underline{x}}{\underline{x}^t\underline{x}}\underline{x}Ax​=x​tx​x​tAx​​x​

נשים לב כי הגענו לאותה המסקנה בדרך מאוד שונה.

מוצאים את כל הע"ע

ראינו עד כה כלי למציאת הע"ע הקיצוניים - הגדול ביותר והקטן ביותר. נרצה כעת למצוא את שאר הע"ע.
נניח כי מצאנו את kkk הע"ע הגדולים ביותר ואת הו"ע שלהם ורצוננו בע"ע הבא ובו"ע שלו.
נאסוף את kkk הו"ע הללו כעמודותיה של המטריצה UUU ונגדיר בעיה חדשה:

arg⁡min⁡x‾≠0,    Utx‾=0x‾tAx‾x‾tx‾\underset{\underline{x}\neq0,\;\; U^t\underline{x}=0}{\arg \min} \frac{\underline{x}^tA\underline{x}}{\underline{x}^t\underline{x}}x​=0,Utx​=0argmin​x​tx​x​tAx​​

כיוון שהו"ע למטריצות חיוביות חצי מוגדרות מהווים בסיס אורתונורמלי, האילוץ יכווץ את הבעיה לו"ע הבא המתייחס ל-λk+1\lambda_{k+1}λk+1​.

ערכים ע"ע מוכללים

כעת, נכליל את בעיית האופטימיזציה ע"י שינוי הביטוי במכנה כך:

x‾∗=arg⁡max⁡x‾≠0x‾tAx‾x‾tBx‾\underline{x}^*=\underset{\underline{x} \neq 0}{\arg \max} \frac{\underline{x}^tA\underline{x}}{\underline{x}^tB\underline{x}}x​∗=x​=0argmax​x​tBx​x​tAx​​

כאשר BBB חיובית מוגדרת על מנת להבטיח שהמכנה לא מתאפס.

נפתור בעיה זו ע"י גזירה והשוואה לאפס כך:

∇f(x‾)=∇x‾tAx‾x‾tBx‾=2(Ax‾)(x‾tBx‾)−(Bx‾)(x‾tAx‾)(x‾tBx‾)2=0\nabla f(\underline{x})=\nabla \frac{\underline{x}^tA\underline{x}}{\underline{x}^tB\underline{x}}=2 \frac{(A\underline{x})(\underline{x}^tB\underline{x})-(B\underline{x})(\underline{x}^tA\underline{x})}{(\underline{x}^tB\underline{x})^2}=0∇f(x​)=∇x​tBx​x​tAx​​=2(x​tBx​)2(Ax​)(x​tBx​)−(Bx​)(x​tAx​)​=0

אזי נקבל:

Ax‾=x‾tAx‾x‾tBx‾Bx‾  ⟹  Ax‾=λBx‾A\underline{x}=\frac{\underline{x}^tA\underline{x}}{\underline{x}^tB\underline{x}}B\underline{x} \implies A\underline{x}=\lambda B\underline{x}Ax​=x​tBx​x​tAx​​Bx​⟹Ax​=λBx​

זוהי בעיית ערכים עצמיים מוכללת או בעיית עפרון.
הבעיה מציגה לנו מצב בו הפעלה של AAA על x‾\underline{x}x​ זהה להפעלה של BBB על x‾\underline{x}x​ ואז כפולה בסקלר.
השוני העיקרי בבעיה זו ממה שראינו הוא שהאילוץ שלנו על x‾\underline{x}x​ שונה. מקודם x‾tx‾\underline{x}^t\underline{x}x​tx​ נבע מעובדה שדרשנו ⟨x‾,x‾⟩=1\langle \underline{x},\underline{x}\rangle =1⟨x​,x​⟩=1 אך כעת, האילוץ יהיה x‾tBx‾=1\underline{x}^tB\underline{x}=1x​tBx​=1 שזוהי סוג של מכפלה פנימית אחרת המוגדרת על Rn\mathbb{R}^nRn. הפיתוח של זה יראה זהה לפיתוח שראינו ממקודם רק עם x‾tBx‾\underline{x}^tB\underline{x}x​tBx​ במקום ∥x‾∥2\left\lVert \underline{x} \right\rVert_{2}∥x​∥2​.
האילוץ הזה יוצר סוג של אליפסואיד של ע"ע מתאימים.

הערה

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

Ax‾=λBx‾  ⟹  B−1Ax‾=λx‾A\underline{x}=\lambda B\underline{x} \implies B^{-1}A\underline{x}=\lambda \underline{x}Ax​=λBx​⟹B−1Ax​=λx​

פירוק SVD

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

ערכים סינגולריים

תהי Am×n\underset{m\times n}{A}m×nA​. נניח כי m≥nm\geq nm≥n ודרגת המטריצה מלאה.
נבנה את מטריצת הגרם AtAA^tAAtA שגודלה n×nn\times nn×n והיא חיובית מוגדרת.
למטריצה זו קיימים ע"ע וו"ע המקיימים:

AtAv‾k=λkv‾kA^tA\underline{v}_{k}=\lambda_{k}\underline{v}_{k}AtAv​k​=λk​v​k​

קבוצת כל הו"ע של AtAA^tAAtA מהווים בסיס אורתונורמלי למרחב ה-nnn מימדי. כמו כן, גם לכל ע"ע λ\lambdaλ מתקיים בהכרח λ>0\lambda>0λ>0.

נתסכל על תמונה של אחד הו"ע של AtAA^tAAtA כאשר אנו מפעילים עליו רק את AAA. אזי מתקבל וקטור ארוך יותר כך:
​4 - ערכים עצמיים וסינגולריים 2026-06-15 11.45.25.excalidraw.svg
כעת, נקח שני וקטורים שונים ונבצע עליהם את הנ"ל ונמצא את המכפלה הפנימית שלהם:

⟨Av‾j,Av‾k⟩=(Av‾j)t(Av‾k)=v‾jtAtAv‾k⏟λkv‾k=λkv‾jtv‾k\langle A\underline{v}_{j},A\underline{v}_{k}\rangle= (A\underline{v}_{j})^t(A\underline{v}_{k})=\underline{v}_{j}^t \underbrace{A^tA\underline{v}_{k}}_{\lambda_{k}\underline{v}_{k}}=\lambda_{k}\underline{v}_{j}^t\underline{v}_{k}⟨Av​j​,Av​k​⟩=(Av​j​)t(Av​k​)=v​jt​λk​v​k​AtAv​k​​​=λk​v​jt​v​k​

ראינו ממקודם כי הע"ע של AtAA^tAAtA הינם אורתונורמליים ולכן:

⟨Av‾j,Av‾k⟩={λkk=j0k≠j\langle A\underline{v}_{j},A\underline{v}_{k}\rangle=\begin{cases} \lambda_{k} & k=j \\ 0 & k\neq j \end{cases}⟨Av​j​,Av​k​⟩={λk​0​k=jk=j​

תוצאה זו בעצם מגלה לנו כי אנו יוצרים קבוצה של וקטורים אורתוגונליים במימד mmm.
נרצה כעת כמובן לנרמל אותם כדי לקבל וקטורים אורתונורמליים. את הערך הדורש לנרמול נסמן ב-σk2\sigma_{k}^2σk2​ ונקרא לא ערך סינגורלי.

הגדרה 5 (ערך סינגולרי)

תהי מטריצה A∈Rm×nA \in \mathbb{R}^{m\times n}A∈Rm×n.
יהי λi\lambda_{i}λi​ ע"ע של המטריצה AtAA^tAAtA. אזי, הערך הסינגולרי σi\sigma_{i}σi​ מוגדר להיות השורש הריבועי החיובי של λi\lambda_{i}λi​.

σi=λi\sigma_{i}=\sqrt{ \lambda_{i} }σi​=λi​​

הערה

נשים לב כי AtAA^tAAtA חיובית מוגדרת ולכן, לפי משפט, הע"ע שלה חיוביים ולכן, לא תהיה לנו בעיה עם השורש.

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

u‾k=Av‾k∥Av‾k∥2=Av‾kσk\underline{u}_{k}=\frac{A\underline{v}_{k}}{\left\lVert A\underline{v}_{k} \right\rVert_{2} }=\frac{A\underline{v}_{k}}{\sigma_{k}}u​k​=∥Av​k​∥2​Av​k​​=σk​Av​k​​

נסתכל על זה ויזואלית כדי להבין יותר טוב:
​4 - ערכים עצמיים וסינגולריים 2026-06-15 11.58.46.excalidraw.svg

∀1≤k≤n:        Av‾k=σku‾k\LARGE \forall 1\leq k\leq n:\;\;\;\; A\underline{v}_{k}=\sigma_{k}\underline{u}_{k}∀1≤k≤n:Av​k​=σk​u​k​

הקשר שקיבלנו פה הוא דומה מאוד לקשר בין ע"ע למטריצה(Av‾=λv‾A\underline{v}=\lambda \underline{v}Av​=λv​) אך יש הבדלים מהותיים ביניהם:

  1. המטריצה AAA יכולה להיות בכל צורה
  2. ערך סינגולרי הוא תמיד אי שלילי
  3. הוקטורים בשני האגפים מהווים בסיס אורתונורמלי אך למרחבים שונים

מפרקים מטריצות

הצעד הטבעי הבא יהיה לאחד את כל המשוואות לאחת:

{Av‾1=σ1u‾1Av‾2=σ2u‾2⋮Av‾n=σnu‾n}\left\{ \begin{matrix} A\underline{v}_{1}=\sigma_{1}\underline{u}_{1} \\ A\underline{v}_{2}=\sigma_{2}\underline{u}_{2} \\ \vdots \\ A\underline{v}_{n}=\sigma_{n}\underline{u}_{n} \end{matrix} \right\}⎩⎨⎧​Av​1​=σ1​u​1​Av​2​=σ2​u​2​⋮Av​n​=σn​u​n​​⎭⎬⎫​

נסתכל על אגף שמאל ונשים אותו בעמודות מטריצה כך:

(∣∣∣Av‾1Av‾2…Av‾n∣∣∣)=A(∣∣∣v‾1v‾2…v‾n∣∣…∣)=AV\begin{pmatrix} \vert & \vert & & \vert \\ A\underline{v}_{1} & A\underline{v}_{2} & \dots & A\underline{v}_{n} \\ \vert & \vert & & \vert \end{pmatrix}={\color{orange} A}{\color{red}\begin{pmatrix} \vert & \vert & & \vert \\ \underline{v}_{1} & \underline{v}_{2} & \dots & \underline{v}_{n} \\ \vert & \vert & \dots & \vert \end{pmatrix}}={\color{orange} A}{\color{red}V}​∣Av​1​∣​∣Av​2​∣​…​∣Av​n​∣​​=A​∣v​1​∣​∣v​2​∣​……​∣v​n​∣​​=AV

נשים לב כי המטריצה AAA מלבנית והמטריצה VVV החדשה הזו היא מטריצה אורתונורמלית וריבועית בגודל n×nn\times nn×n.

נעבוד באותה דרך עבור אגף ימין כך:

(∣∣∣σ1u‾1σ2u‾2…σnu‾n∣∣∣)=(∣∣∣u‾1u‾2…u‾n∣∣∣)(σ10…00σ2…0⋮⋮⋱⋮00…σn)=UΣ\begin{pmatrix} \vert & \vert & & \vert \\ \sigma_{1}\underline{u}_{1} & \sigma_{2}\underline{u}_{2} & \dots & \sigma_{n}\underline{u}_{n} \\ \vert & \vert & & \vert \end{pmatrix}={\color{blue}\begin{pmatrix} \\ \vert & \vert & & \vert \\ \underline{u}_{1} & \underline{u}_{2} & \dots & \underline{u}_{n} \\ \vert & \vert & & \vert \\ \\ \end{pmatrix}}{\color{purple}\begin{pmatrix} \sigma_{1} & 0 & \dots & 0 \\ 0 & \sigma_{2} & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \dots & \sigma_{n} \end{pmatrix}}={\color{blue}U}{\color{purple}\Sigma}​∣σ1​u​1​∣​∣σ2​u​2​∣​…​∣σn​u​n​∣​​=​∣u​1​∣​∣u​2​∣​…​∣u​n​∣​​​σ1​0⋮0​0σ2​⋮0​……⋱…​00⋮σn​​​=UΣ

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

  • UUU היא מטריצה גבוהה מאוד בגודל m×nm\times nm×n אשר עמודותיה אורתונורמלית(אך היא לא מטריצה אורתונורמלית שכן היא לא ריבועית)
  • Σ\SigmaΣ היא מטריצה אלכסונית בגודל n×nn\times nn×n.

מה קיבלנו?
עבור מטריצה AAA בגודל m×nm\times nm×n כאשר m≥nm\geq nm≥n מדרגה מלאה מתקבל:

AV=UΣ  ⟹  A=UΣVt\LARGE AV=U\Sigma \implies {\color{orange}A}={\color{blue}U}{\color{purple}\Sigma} {\color{red}V^t}AV=UΣ⟹A=UΣVt

(הטרנספוז הוא כי VVV אורתונורמלית)
​4 - ערכים עצמיים וסינגולריים 2026-06-15 12.14.13.excalidraw.svg

אנחנו לא אוהבים מטריצות שהם לא אורתונורמליות ולכן, נבצע השלמה למטריצה אורתונורמלית עם המשך רנדומלי לתהליך גרם שמידט.
​4 - ערכים עצמיים וסינגולריים 2026-06-15 12.19.30.excalidraw.svg
זהו פירוק ה-SVDSVDSVD והדבר היחיד שבגללו נבוא אליו בטענות הוא שהוא מוגבל.
מיד אנו נראה כי הוא תקף לכל מטריצה שהיא.

סיכום בניית ה-SVD
  1. חישוב המטריצה AtAA^tAAtA
  2. ביצוע פירוק ספקטרלי וקבלת {λk,v‾k}k=1n\left\{ \lambda_{k},\underline{v}_{k} \right\}_{k=1}^n{λk​,v​k​}k=1n​
  3. איסוף כל הו"ע הנ"ל כשורותיה של מטריצה וזוהי VtV^tVt
  4. הוצאת שורש לע"ע ואלה יאכלסו את אלכסונה של Σ\SigmaΣ
  5. חישוב u‾k=Av‾k\underline{u}_{k}=A\underline{v}_{k}u​k​=Av​k​ ונירמולם עבור k=1,…,nk=1,\dots,nk=1,…,n ואלה יהיו עמודותיה של UUU.
  6. השלמת UUU עם וקטורים אורתונורמליים נוספים מתאימים על פי האלגוריתם שלמדנו לפירוק QRQRQR.

עבור מטריצות ללא דרגה מלאה

עד כה הנחנו כי המטריצה AAA בעלת דרגה מלאה, אך זה לא עוד המצב. כעת נגיד כי r(A)=r<nr(A)=r<nr(A)=r<n.
במקרה זה יתקים כי בפירוק הספקטרלי של AtAA^tAAtA נקבל AtAv‾k=λkv‾kA^tA\underline{v}_{k}=\lambda_{k}\underline{v}_{k}AtAv​k​=λk​v​k​ אבל λr+1=⋯=λn=0\lambda_{r+1}=\dots=\lambda_{n}=0λr+1​=⋯=λn​=0 שכן יש לנו nnn וקטורים ב-null  Anull\;AnullA.
נזכר כי u‾k=Av‾kλk\underline{u}_{k}=\frac{A\underline{v}_{k}}{\sqrt{ \lambda_{k} }}u​k​=λk​​Av​k​​ אך פה אנו מחלקים ב-000 - זוהי בעיה רצינית. כדי לתקן אותה נחלק את הקבוצה שלנו ל-2:

{Av‾1=σ1u‾1⋮Av‾r=σru‾r−−−−−−−−Av‾r+1=σr+1u‾r+1⋮Av‾n=σnu‾n}\left\{ \begin{matrix} A\underline{v}_{1}=\sigma_{1}\underline{u}_{1} \\ \vdots \\ A\underline{v}_{r}=\sigma_{r}\underline{u}_{r} \\ -------- \\ A\underline{v}_{r+1}=\sigma_{r+1}\underline{u}_{r+1} \\ \vdots \\ A\underline{v}_{n}=\sigma_{n}\underline{u}_{n} \end{matrix} \right\}⎩⎨⎧​Av​1​=σ1​u​1​⋮Av​r​=σr​u​r​−−−−−−−−Av​r+1​=σr+1​u​r+1​⋮Av​n​=σn​u​n​​⎭⎬⎫​

עבור הקבוצה העליונה נטפל כרגיל ועבור הקבוצה התחתונה נקבע σk=0\sigma_{k}=0σk​=0. (לכל k∈[r+1,n]k \in[r+1,n]k∈[r+1,n])
זה נותן לנו להשלים את u‾k\underline{u}_{k}u​k​ במה שאנחנו רוצים כי הם בכל מקרה מוכפלים ל-000 ולכן, נבצע את אותו המשך לגרם-שמידט כמו ממקודם.
​4 - ערכים עצמיים וסינגולריים 2026-06-15 12.35.23.excalidraw.svg

עכשיו גם מטריצות רחבות

כעת יש לנו AAA בגודל m×nm\times nm×n כאשר m<nm<nm<n.
אם נשחלף את המטריצה נוכל לקבל את אותו הפירוק. הפעם נקרא למטריצות בשמות הפוכים:

At=VΣtUtA^t=V\Sigma^tU^tAt=VΣtUt

ואז:

A=UΣVtA=U\Sigma V^tA=UΣVt

כאשר המטריצות כעת מעט שונות:
​4 - ערכים עצמיים וסינגולריים 2026-06-15 12.40.52.excalidraw.svg
המטריצות שקיבלנו פה בעצם הפוכות בסדר שלהם עם טרנספוז בנוסף, אך עדיין נקרא להם בשמות שיתאימו לנו עבור הפירוק.

הפירוק באופן כללי

משפט

תהי A∈Rm×nA \in \mathbb{R}^{m\times n}A∈Rm×n כאשר m,n∈Rm,n \in \mathbb{R}m,n∈R.
אזי, AAA ניתנת לפירוק SV ⁣DSV\!DSVD מהצורה:

A=UΣVtA=U\Sigma V^tA=UΣVt

כאשר:

  • UUU מטריצה אורתונורמלית בגודל m×mm\times mm×m
  • VVV מטריצה אורתונורמלית בגודל n×nn\times nn×n
  • Σ\SigmaΣ מטריצה אלכסונית בגודל mmm על nnn כאשר איברי אלכסונה אי-שליליים ובמגמת ירידה הנקראים ערכים סינגולריים.
מסקנה

כל מטריצה AAA מדרגה rrr תהיה בעלת rrr ערכים סינגולריים שונים מאפס בדיוק.
כך נוכל למצוא את דרגת המטריצה באמצעות הפירוק.

ניתן לפרק מכפלה של וקטור במטריצה AAA באמצעות הפירוק Ax‾=UΣVtx‾A\underline{x}=U\Sigma V^t\underline{x}Ax​=UΣVtx​ כך:

  • תחילה אנו מבצעים סיבוב של הוקטור ע"י VtV^tVt
  • לאחר מכן, אנו מותחים אותו בכל ציר ואף יכולים לשנות את מימדו ע"י ההכפלה ב-Σ\SigmaΣ
  • לבסוף, אנו מסובבים אותו שוב פעם, הפעם במימד אחר ע"י UUU.
מסקנה

כל מטריצה AAA מדרגה rrr ניתנת לכתיבה כסכום משוקלל של מטריצות מדרגה אחת לפי:

A=UΣVt=∑k=1rσku‾kv‾ktA=U\Sigma V^t=\sum_{k=1}^r \sigma_{k}\underline{u}_{k}\underline{v}_{k}^tA=UΣVt=k=1∑r​σk​u​k​v​kt​
הערה

אנו לא נתעסק בשיטה הנומרית לבניית הפירוק. (כלומר, באיך באמת עושים את זה במחשב)
בנוסף, גם לא נתעסק בסיבוכיות התהליך שהינה n3n^3n3 מכפלות.

פירוק SVD אל מול פירוק ספקטרלי

נניח כי נתונה לנו מטריצה AAA ריבועית, סימטרית וחיובית חצי מוגדרת. נוכל לחשב עבורה פירוק ספקטרלי או פירוק SV ⁣DSV\!DSVD.

QDQt=A=UΣVtQDQ^t=A=U\Sigma V^tQDQt=A=UΣVt

נרצה למצוא מהו הקשר בין השניים.
נוכל לגרום להתלכדות בין שני הפירוקים אם מתקיים U=V=Q,  Σ=DU=V=Q,\;\Sigma=DU=V=Q,Σ=D. ⟸ במקרה זה הערכים הסינגולריים זהים לע"ע של AAA וגם הו"ע מתלכדים.

אם נתונה לנו מטריצה ריבועית וסימטרית שאינה חיובית חצי מוגדרת. נוכל לחשב עבורה פירוק ספקטרלי ופירוק SVDSVDSVD.
לא נוכל כעת להגיד כי Σ=D\Sigma=DΣ=D כי יכול להיות שב-DDD ערכים שליליים.
נניח ונקח λ∈R\lambda \in \mathbb{R}λ∈R ע"ע ממשי שקיים בהכרח מכיוון שהמטריצה סימטרית, אזי:

Ax‾=λx‾  ⟹  AtAx‾=λAtx‾=λAx‾=λ2x‾A\underline{x}=\lambda \underline{x}\implies A^tA\underline{x}=\lambda A^t\underline{x}=\lambda A\underline{x}=\lambda^2\underline{x}Ax​=λx​⟹AtAx​=λAtx​=λAx​=λ2x​

נשים לב כי הע"ע של AtAA^tAAtA הינם הע"ע בריבוע ⟸ הערכים הסינגולריים יהיו σ=λ2=∣λ∣\sigma=\sqrt{ \lambda^2 }=|\lambda|σ=λ2​=∣λ∣ ולכן הם יהיו הע"ע בערך מוחלט.
על מנת להשוות בין שני הפירוקים במצב זה, נקח שתי מטריצות יחידה, ובכל שורה בה במטריצה DDD הע"ע קטן מאפס, נהפוך את ה-111 ל-−1-1−1.
נקבל את המטריצות הבאות:

A=QDI∗I∗Qt=↓Q=UDI∗=ΣI∗Qt=VtUΣVtA=QDI^*I^*Q^t \underset{\begin{matrix} \downarrow \\ Q=U \\ DI^*=\Sigma \\ I^*Q^t=V^t \end{matrix}}{=}U\Sigma V^tA=QDI∗I∗Qt↓Q=UDI∗=ΣI∗Qt=Vt​=​UΣVt

כך הגענו מהפירוק הספקטרלי ל-SV ⁣DSV\!DSVD.

שימושי הפירוק

פתרון מערכת משווואות

תהי מערכת משוואות Ax‾=b‾A\underline{x}=\underline{b}Ax​=b​. נוכל להשתמש בפירוק SV ⁣DSV\!DSVD על מנת לפתור אותה. נסתכל על שלושה מקרים:

  1. AAA ריבועית והפיכה
  2. AAA מלבנית עם יותר שורות מעמודות
  3. AAA מלבנית עם יותר עמודות משורות

נניח כי בכל אחד מהמקרים קיים פתרון וננסה לנסח אותו במונחים של SV ⁣DSV\!DSVD.

מטריצה ריבועית והפיכה

נתחיל בפירוק SV ⁣DSV\!DSVD ל-AAA כך:

Ax‾=b‾=UΣVtx‾A\underline{x}=\underline{b}=U\Sigma V^t\underline{x}Ax​=b​=UΣVtx​

המטריצות UUU ו-VVV אורתונורמליות ולכן נוכל להכפיל ב-UtU^tUt ו-VtV^tVt בהתאמה. בנוסף, המטריצה Σ\SigmaΣ היא אלכסונית אז להפוך אותה זו לא בעיה ולכן:

x‾=VΣ−1Utb‾\underline{x}=V\Sigma^{-1}U^t\underline{b}x​=VΣ−1Utb​

נשים לב כי הפירוק שקיבלנו כעת VΣ−1UtV\Sigma^{-1}U^tVΣ−1Ut הוא הפירוק עבור A−1A^{-1}A−1. כלומר, גם ל-A−1A^{-1}A−1 יש פירוק SV ⁣DSV\!DSVD.
ישנו פגם אחד בפירוק הזה הוא שב-Σ−1\Sigma^{-1}Σ−1 הע"ע אינם בסדר יורד כפי שאנו רוצים.
(מיקי אלעד: "בתי הכלא מלאים באנשים שהפכו מטריצות. קיבלנו מערכת משוואות הפכו מטריצות. הם אנשים רשעים והם משלמים מחיר")

יותר שורות מעמודות

פה המטריצה גבוהה ולכן, יש יותר משוואות מאשר פתרונות. נבצע פירוק SV ⁣DSV\!DSVD גם כן:

Ax‾=b‾=UΣVtx‾A\underline{x}=\underline{b}=U\Sigma V^t\underline{x}Ax​=b​=UΣVtx​

נכפיל את b‾\underline{b}b​ ב-UtU^tUt ונקבל וקטור b^‾\underline{\hat{b}}b^​ שמקיים:

b^‾=Utb‾=ΣVtx‾\underline{\hat{b}}=U^t\underline{b}=\Sigma V^t\underline{x}b^​=Utb​=ΣVtx​

בחלק התחתון של Σ\SigmaΣ יש אפסים כפי שראינו ממקודם ולכן בהכרח השורות התחתונות של b^‾\underline{\hat{b}}b^​ חייבות להיות אפסים על מנת שיהיה פתרון.
נניח כרגע כי יש אפסים בחלק התחתון של b^‾\underline{\hat{b}}b^​. ממקודם הכפלנו ב-Σ−1\Sigma^{-1}Σ−1 אבל פה לא נוכל לעשות זאת שכן הגודל לא מתאים. נתקן את Σ−1\Sigma^{-1}Σ−1 ע"י הוספת עמודות אפסים אליה. נקרא למטריצה החדשה "Σ−1"\text{"}\Sigma^{-1}\text{"}"Σ−1" ואז:

x‾=V  "Σ−1"  Utb‾\underline{x}=V\;\text{"}\Sigma^{-1}\text{"}\;U^t\underline{b}x​=V"Σ−1"Utb​

[להוסיף ציור אם יש לי זמן]

יותר עמודות משורות

במצב זה בהכרח יש לנו ∞\infty∞ פתרונות שכן יש דרגות חופש.

b‾=Ax‾=UΣVtx‾\underline{b}=A\underline{x}=U\Sigma V^t\underline{x}b​=Ax​=UΣVtx​

נגדיר z‾=Vtx‾\underline{z}=V^t\underline{x}z​=Vtx​ ואז:

Utb‾=b^‾=Σz‾U^t\underline{b}=\underline{\hat{b}}=\Sigma \underline{z}Utb​=b^​=Σz​

פה פשוא אפשר למצוא את b^‾\underline{\hat{b}}b^​ ואז למצוא את z‾\underline{z}z​ ובכך למצוא את x‾\underline{x}x​.

מכל האפשרויות לבחירת z‾\underline{z}z​ נרצה להסתכל על z‾\underline{z}z​ הקצר ביותר ב-L2L_{2}L2​. כלומר, זה שתחתיתו אפסים.
נשים לב כי הפתרון הקצר ביותר עבור z‾\underline{z}z​ מוביל לפתרון x‾\underline{x}x​ הקצר ביותר כי הקשר בין שניהם הוא x‾=Vz‾\underline{x}=V\underline{z}x​=Vz​ כאשר VVV אותרתונורמלית.
נרצה למצוא נוסחה קומפקטית ל-z‾\underline{z}z​ הקטן ביותר:

  • נתחיל בלהכפיל את b‾\underline{b}b​ ב-UtU^tUt ואז להכפיל ב-Σ−1\Sigma^{-1}Σ−1 עם הוספת שורות אפסים ללמטה של Σ−1\Sigma^{-1}Σ−1 ואז: x‾=V  "Σ−1"  Utb‾\underline{x}=V\;\text{"}\Sigma^{-1}\text{"}\;U^{t}\underline{b}x​=V"Σ−1"Utb​

נשים לב כי אנו הגענו בדיוק לאותה נוסחה כל פעם, למעט שינויים קטנים ל-Σ−1\Sigma^{-1}Σ−1.

מקסנה

נזכר כי הסיבוכיות של פתרון מערכת משוואות בעזרת פירוק LU הוא n36\frac{n^3}{6}6n3​ ולכן, לפתרון מערכת משוואות הוא עדיף על ה-SV ⁣DSV\!DSVD.
אך במה הפירוק החדש כן עדיף? תכף נראה בריבועים פחותים איך נוכל להשתמש בו ביעילות.

פתרון בעיית ריבועים פחותים

נתונה לנו min⁡x‾∥Ax‾−b‾∥22\underset{\underline{x}}{\min}\left\lVert A\underline{x}-\underline{b} \right\rVert_{2}^2x​min​∥Ax​−b​∥22​ ונניח כי היא בעלת פתרון יחיד.
אזי, הפתרון למשוואה נתון ע"י המשוואה הנורמלית: x‾=A†b‾=(AtA)−1Atb‾\underline{x}=A^{\dagger}\underline{b}=(A^tA)^{-1}A^t\underline{b}x​=A†b​=(AtA)−1Atb​.
כעת, נבנה את ההפיכוך המוכלל של AAA באמצעות פירוק ה-SV ⁣DSV\!DSVD כך:

A†=(AtA)−1At=(VΣtUtUΣVt)−1VΣtUt=(VΣtΣVt)−1VΣtUtA^{\dagger}=(A^tA)^{-1}A^t=(V\Sigma^tU^tU\Sigma V^t)^{-1}V\Sigma^tU^t=(V\Sigma^t\Sigma V^t)^{-1}V\Sigma^{t}U^tA†=(AtA)−1At=(VΣtUtUΣVt)−1VΣtUt=(VΣtΣVt)−1VΣtUt

המטריצות V,VtV,V^tV,Vt ו-ΣtΣ\Sigma^t\SigmaΣtΣ הינן ריבועיות והפיכות ולכן:

A†=V(Σ−1Σ)−1VtVΣtUt=V(ΣtΣ)−1ΣtUtA^{\dagger}=V(\Sigma^{-1}\Sigma)^{-1}V^tV\Sigma^tU^t=V(\Sigma^t\Sigma)^{-1}\Sigma^tU^tA†=V(Σ−1Σ)−1VtVΣtUt=V(ΣtΣ)−1ΣtUt

נשים לב כי נוצר לנו ביטוי באמצע שהוא מעניין (ΣtΣ)−1Σt(\Sigma^t\Sigma)^{-1}\Sigma^t(ΣtΣ)−1Σt. נשים לב כי בעצם Σ†=(ΣtΣ)−1Σt\Sigma ^{\dagger}=(\Sigma^t\Sigma)^{-1}\Sigma^tΣ†=(ΣtΣ)−1Σt ולכן:

A†=VΣ†UtA^{\dagger}=V\Sigma ^{\dagger}U^tA†=VΣ†Ut

קיבלנו בעצם כי:

x‾=A†b‾=VΣ†Utb‾\underline{x}=A^{\dagger}\underline{b}=V\Sigma ^{\dagger}U^t\underline{b}x​=A†b​=VΣ†Utb​
מסקנה

היפוך מוכלל של AAA אינו אלא היפוך הערכים הסינגולריים ושינוי סדר המכפלה וקל מאוד לקבלו מפירוק ה-SV ⁣DSV\!DSVD של AAA.

כעת, בבעית הריבועים הפחותים שלנו יש ∞\infty∞ פתרונות (כלומר, AAA בעלת דרגה r<nr<nr<n)
כל הפתרונות נדרשים לקיים את המשוואה הנורמלית: AtAx‾=Atb‾A^tA\underline{x}=A^t\underline{b}AtAx​=Atb​. נשתמש בפירוק ונראה לאן אנו מגיעים:

VΣtUtUΣVtx‾=VΣtUtb‾V\Sigma^tU^tU\Sigma V^t\underline{x}=V\Sigma ^tU^t\underline{b}VΣtUtUΣVtx​=VΣtUtb​ VΣtΣVtx‾=VΣtUtb‾V\Sigma^t\Sigma V^t\underline{x}=V\Sigma^tU^t\underline{b}VΣtΣVtx​=VΣtUtb​

נכפיל ב-VtV^tVt משני הצדדים ונזכור שהיא אורתונורמלית ואז:

ΣtΣVtx‾=ΣtUtb‾\Sigma^t\Sigma V^t\underline{x}=\Sigma^tU^t\underline{b}ΣtΣVtx​=ΣtUtb​

נסמן z‾=Vtx‾\underline{z}=V^t\underline{x}z​=Vtx​ ובנוסף b^‾=Utb‾\underline{\hat{b}}=U^t\underline{b}b^​=Utb​ ואז:

ΣtΣz‾=ΣtUtb‾=Σtb^‾\Sigma^t\Sigma \underline{z}=\Sigma^tU^t\underline{b}=\Sigma^t \underline{\hat{b}}ΣtΣz​=ΣtUtb​=Σtb^​ (σ12⋱σr20⋱0)(z1⋮zrzr+1⋮zn)=(σ1⋱σr0⋱00)(b^1b^2b^3⋮b^m)\begin{pmatrix} \sigma_{1}^2 \\ & \ddots \\ & & \sigma^2_{r} \\ & & & 0 \\ & & & & \ddots \\ & & & & & 0 \end{pmatrix}\begin{pmatrix} z_{1} \\ \vdots \\ z_{r} \\ z_{r+1} \\ \vdots \\ z_{n} \end{pmatrix}=\left(\begin{array}{c:c} \begin{matrix} \sigma_{1} \\ & \ddots \\ & & \sigma_{r} \\ & & & 0 \\ & & & & \ddots \\ & & & & & 0 \end{matrix} & \LARGE \quad 0 \quad \end{array}\right)\begin{pmatrix} \hat{b}_{1} \\ \hat{b}_{2} \\ \hat{b}_{3} \\ \\ \\ \vdots \\ \\ \\ \hat{b}_{m} \end{pmatrix}​σ12​​⋱​σr2​​0​⋱​0​​​z1​⋮zr​zr+1​⋮zn​​​=​σ1​​⋱​σr​​0​⋱​0​​0​​​b^1​b^2​b^3​⋮b^m​​​

האם ניתן לומר מהו z1z_{1}z1​? נוכל לקבל אותו לפי משוואה פשוטה z1=b^1σ1z_{1}=\frac{\hat{b}_{1}}{\sigma_{1}}z1​=σ1​b^1​​. משוואה זו מתקיימת עבור rrr הרכיבים הראשונים:

σ2zr=σrb^r  ⟹  zr=b^rσr\sigma^2z_{r}=\sigma _r\hat{b}_{r}\implies z_{r}=\frac{\hat{b}_{r}}{\sigma_{r}}σ2zr​=σr​b^r​⟹zr​=σr​b^r​​

עבור zr+1,…,znz_{r+1},\dots,z_{n}zr+1​,…,zn​ הם נפגשים עם אפסים ולכן הם יכולים להיות מה שאנחנו רוצים. לכן, נבחר 000 כדי שיהיה לנו את הוקטור הקצר ביותר.

הערה

למה ברור כי למערכת AtAx‾=Atb‾A^tA\underline{x}=A^t\underline{b}AtAx​=Atb​ יש פתרון?

  • ל-rrr המשוואות הראשונות תמיד יהיה פתרון שכן לא יכול להיות מצב בו σk=0\sigma_{k}=0σk​=0 לפי הגדרת הערכים הסינגולריים.
  • שאר המשוואות הן פשוט פסוקי אמת 0=00=00=0 ולכן הן לא משנות לנו דבר

בואו נרכיב את הפתרון במונחים של SV ⁣DSV\!DSVD:

x‾=V(σ1−1⋱σr−10⋱00)Utb‾\underline{x}=V\left(\begin{array}{c:c} \begin{matrix} \sigma_{1}^{-1} \\ & \ddots \\ & & \sigma_{r}^{-1} \\ & & & 0 \\ & & & & \ddots \\ & & & & & 0 \end{matrix} & \LARGE \quad 0 \quad \end{array}\right)U^t\underline{b}x​=V​σ1−1​​⋱​σr−1​​0​⋱​0​​0​​Utb​

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

הגדרה 6 (הרחבה להיפוך מוכלל למטריצות אלכסוניות)

ההיפוך המוכלל של מטריצה אלכסונית ע"י שחלוף והיפוך איברי האלכסון הראשי שאינם אפס.

ואז נקבל:

x‾=A†b‾=VΣ†Utb‾\underline{x}=A^{\dagger}\underline{b}=V\Sigma ^{\dagger}U^t\underline{b}x​=A†b​=VΣ†Utb​

והיא תהיה המשוואה המתאימה לכל המצבים.

הערה

ראינו בעבר את בעיית הרגולריזציה וראינו שהיא נותנת את הפתרון הקצר ביותר אך הוא לאו דווקא בתוך אוסף הפתרונות של המשוואה הנורמלית המקורית.
עם פירוק ה-SV ⁣DSV\!DSVD אנו מקבלים תמיד את הוקטור הקצר ביותר אשר פותר את המשוואה הנורמלית המקורית ופה נמצא הייתרון של פירוק זה על פני המשוואה הנורמלית המקורית או ה-QRQRQR שראינו ממקודם.

קירוב מטריצות עם אילוץ דרגה

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

A=UΣVt=∑k=1rσku‾kv‾ktA=U\Sigma V^t=\sum_{k=1}^r \sigma_{k}\underline{u}_{k}\underline{v}_{k}^tA=UΣVt=k=1∑r​σk​u​k​v​kt​

אנו נרצה למצוא מטריצה BBB באותו גודל של AAA כך שתהיה הקרובה ביותר ל-AAA כאשר דרגתה מוגבלת להיות k0<rk_{0}<rk0​<r.
כלומר, אנו מבקשים פתרון לבעיה: min⁡Bdist(A,B)    s.t.    rank(B)=k0≤r\underset{B}{\min}dist(A,B)\;\; s.t.\;\; rank(B)=k_{0}\leq rBmin​dist(A,B)s.t.rank(B)=k0​≤r.
הדבר הראשון שאנו צריכים לעשות זה להגדיר מרחק בין מטריצות והוא:

הגדרה 7 (נורמת פורביניוס)

תהי מטריצה AAA.

∥A∥F2=∑k=1m∑j=1nakj2=trace(AtA)=trace(AAt)\left\lVert A \right\rVert_{F}^{2}=\sum_{k=1}^m \sum_{j=1}^n a_{kj}^2=trace(A^tA)=trace(AA^t)∥A∥F2​=k=1∑m​j=1∑n​akj2​=trace(AtA)=trace(AAt)

הגדרה 8 (מרחק בין מטריצות)

יהיו מטריצות A,BA,BA,B. אזי:

dist(A,B)=∥A−B∥F2=∑k=1m∑j=1n(akj−bkj)2dist(A,B)=\left\lVert A-B \right\rVert _{F}^{2}=\sum_{k=1}^m \sum_{j=1}^n (a_{kj}-b_{kj})^2dist(A,B)=∥A−B∥F2​=k=1∑m​j=1∑n​(akj​−bkj​)2

נוכל עכשיו למצוא פתרון לבעיה.

משפט

עבור מטריצה AAA בעל פירוק SV ⁣DSV\!DSVD מהצורה A=UΣVt=∑k=1rσku‾kv‾ktA=U\Sigma V^t=\displaystyle \sum_{k=1}^r \sigma_{k}\underline{u}_{k}\underline{v}_{k}^tA=UΣVt=k=1∑r​σk​u​k​v​kt​ עם ערכים סינגולריים בסדר יורד σ1≥σ2≥σ3≥⋯≥σr>0\sigma_{1}\geq\sigma_{2}\geq\sigma_{3}\geq\dots\geq \sigma_{r}>0σ1​≥σ2​≥σ3​≥⋯≥σr​>0.
פתרון הבעיה min⁡Bdist(A,B)    s.t.    rank(B)=k0≤r\underset{B}{\min}dist(A,B)\;\; s.t.\;\; rank(B)=k_{0}\leq rBmin​dist(A,B)s.t.rank(B)=k0​≤r הינו:

B=∑k=1k0σku‾kv‾ktB=\sum_{k=1}^{k_{0}} \sigma_{k}\underline{u}_{k}\underline{v}_{k}^tB=k=1∑k0​​σk​u​k​v​kt​

הוכחה: בתרגול

מהי השגיאה שמתקבלת?

∥A−B∥F2=∥∑k=k0+1rσku‾kv‾kt∥F2=trace{(∑j=k0+1rσjv‾ju‾jt)(∑k=k0+1rσku‾kv‾kt)}=trace{∑j=k0+1r∑k=k0+1rσjσkv‾jv‾ku‾jtu‾kv‾kt}=∑j=k0+1r∑k=k0+1rσjσktrace{v‾ju‾jtu‾kv‾kt}\begin{align*} \left\lVert A-B \right\rVert _{F}^{2}=\left\lVert \sum_{k=k_{0}+1}^r \sigma_{k}\underline{u}_{k}\underline{v}_{k}^t \right\rVert _{F}^2&=trace\left\{ \left( \sum_{j=k_{0}+1}^r \sigma_{j}\underline{v}_{j}\underline{u}_{j}^t \right) \left( \sum_{k=k_{0}+1}^r\sigma_{k}\underline{u}_{k}\underline{v}_{k}^t \right)\right\} \\ &=trace \left\{ \sum_{j=k_{0}+1}^r \sum_{k=k_{0}+1}^r \sigma_{j}\sigma_{k}\underline{v}_{j}\underline{v}_{k}\underline{u}_{j}^t\underline{u}_{k}\underline{v}_{k}^t \right\} \\ &=\sum_{j=k_{0}+1}^r \sum_{k=k_{0}+1}^r \sigma_{j}\sigma_{k}trace \left\{ \underline{v}_{j}\underline{u}_{j}^t\underline{u}_{k}\underline{v}_{k}^t \right\} \end{align*}∥A−B∥F2​=​k=k0​+1∑r​σk​u​k​v​kt​​F2​​=trace⎩⎨⎧​​j=k0​+1∑r​σj​v​j​u​jt​​(k=k0​+1∑r​σk​u​k​v​kt​)⎭⎬⎫​=trace⎩⎨⎧​j=k0​+1∑r​k=k0​+1∑r​σj​σk​v​j​v​k​u​jt​u​k​v​kt​⎭⎬⎫​=j=k0​+1∑r​k=k0​+1∑r​σj​σk​trace{v​j​u​jt​u​k​v​kt​}​

נזכר כי לאור u‾\underline{u}u​-ים אורתונורמליים מתקיים כי u‾jtu‾j=1\underline{u}_{j}^t\underline{u}_{j}=1u​jt​u​j​=1 וכנ"ל עם v‾kv‾kt\underline{v}_{k}\underline{v}_{k}^tv​k​v​kt​ לאור העובדה ש-Tr(EtE)=Tr(EEt)\mathrm{Tr}(E^tE)=\mathrm{Tr}(EE^t)Tr(EtE)=Tr(EEt) ולכן:

∥A−B∥F2=∑k=k0+1rσk2\left\lVert A-B \right\rVert _{F}^2=\sum_{k=k_{0}+1}^r \sigma_{k}^2∥A−B∥F2​=k=k0​+1∑r​σk2​
הגדרה 9 (מספר מצב)

תהי AAA מטריצה ריבועית בגודל n×nn\times nn×n. אזי, מספר המצב שלה הינו:

κ{A}=σ1σn\kappa \left\{ A \right\}=\frac{\sigma_{1}}{\sigma_{n}}κ{A}=σn​σ1​​

הערה

המושג הזה הומצא ע"י אלן טיורינג.

מספר המצב מספר כמה המטריצה נוטה להיות לא הפיכה.
⟸ נשים לב כי זה מספר גדול או שווה ל-111. כשהוא 111 מדובר במטריצה אורתונורמלית עד כדי קבוע וכשהוא נוטה ל-∞\infty∞ מדובר במטריצה לא הפיכה.