תהי E E E מטריצה אשר כל איברי האלכסון שלה שווים ל-1 1 1 ויתר האיברים הם אפסים, מלבד האיבר ה-i j ij ij במשולש התחתון(i > j i>j i > j ) שערכו α \alpha α .
הכפלת המטריצה A A A במטריצה E E E משמאל(כלומר E A EA E A ) שקולה להוספת השורה i i i לשורה j j j ב-A A A כאשר היא מוכפלת ב-α \alpha α .
עבור המטריצה A = ( 1 3 1 2 8 1 1 10 4 ) A=\begin{pmatrix}1&3&1\\2&8&1\\1&10&4\end{pmatrix} A = 1 2 1 3 8 10 1 1 4 , הוספת השורה הראשונה כפול 3 לשורה השלישית שקולה ל:
E A = ( 1 0 0 0 1 0 3 0 1 ) ( 1 3 1 2 8 1 1 10 4 ) = ( 1 3 1 2 8 1 4 19 7 ) EA=\begin{pmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
3 & 0 & 1
\end{pmatrix}\begin{pmatrix}
1 & 3 & 1 \\
2 & 8 & 1 \\
1 & 10 & 4
\end{pmatrix}=\begin{pmatrix}
1 & 3 & 1 \\
2 & 8 & 1 \\
4 & 19 & 7
\end{pmatrix} E A = 1 0 3 0 1 0 0 0 1 1 2 1 3 8 10 1 1 4 = 1 2 4 3 8 19 1 1 7
וזה שקול ל:
( 1 3 1 2 8 1 1 10 4 ) R 3 = R 3 + 3 R 1 → ( 1 3 1 2 8 1 4 19 7 ) \begin{pmatrix}
1 & 3 & 1 \\
2 & 8 & 1 \\
1 & 10 & 4
\end{pmatrix}\overrightarrow{R_{3}=R_{3}+3R_{1}}\begin{pmatrix}
1 & 3 & 1 \\
2 & 8 & 1 \\
4 & 19 & 7
\end{pmatrix} 1 2 1 3 8 10 1 1 4 R 3 = R 3 + 3 R 1 1 2 4 3 8 19 1 1 7
היפוך של E E E שהוצגה קודם אף הוא בעל אותו מבנה(משולש תחתון, 1 באלכסון הראשי ואיבר יחיד שונה מאפס מתחת לאלכסון)
למעשה, בהינתן E E E , ההיפוך שלה נתון ע"י מטריצה זהה לה בצורתה אך עם סימן הפוך על האיבר ה-i j ij ij .
באופן כללי:
A → R i = R i + α R j E A → R i = R i − α R j E − 1 ( E A ) = A A \xrightarrow{R_{i}=R_{i}+\alpha R_{j}}EA \xrightarrow{R_{i}=R_{i}-\alpha R_{j}}E^{-1}(EA)=A A R i = R i + α R j E A R i = R i − α R j E − 1 ( E A ) = A
באופן נורמלי מאוד למטריצות, אם נכפיל את אותן מטריצות E E E נקבל תוצאה שונה על בסיס סדר ההכפלה. הסדר שמעניין אותנו יהיה הסדר E 1 E 2 E 3 … E_{1}E_{2}E_{3}\dots E 1 E 2 E 3 … - הסדר ההפוך מדירוג.
בסדר הזה, נקבל כי:
E 1 E 2 = ( 1 0 0 2 1 0 0 0 1 ) ( 1 0 0 0 1 0 0 3 1 ) = ( 1 0 0 2 1 0 0 3 1 ) E_{1}E_{2}=\begin{pmatrix}
1 & 0 & 0 \\
2 & 1 & 0 \\
0 & 0 & 1
\end{pmatrix}\begin{pmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 3 & 1
\end{pmatrix}=\begin{pmatrix}
1 & 0 & 0 \\
2 & 1 & 0 \\
0 & 3 & 1
\end{pmatrix} E 1 E 2 = 1 2 0 0 1 0 0 0 1 1 0 0 0 1 3 0 0 1 = 1 2 0 0 1 3 0 0 1
מסקנה (אני לא הולך לצייר את כל הציורים - שכן אין לי כח, וזו לא הוכחה)
אם ההכפלה פועלת מימין לשמאל, אין השפעה הדדית בין הערכים מתחת לאלכסון ולכן חישוב המכפלה קל למדי.
ישנן מטריצות מסויימות שניתן לפרקן לשתי מטריצות L L L ו-U U U כאשר L L L משולשת תחתונה ו-U U U משולשת עליונה.
E k … E 2 E 1 A = U ⟹ A = ( E k … E 2 E 1 ) − 1 U = ( E 1 ) − 1 ( E 2 ) − 1 … ( E k ) − 1 U = L 1 L 2 … L k U = L U E_{k}\dots E_{2}E_{1}A=U \implies A=(E_{k}\dots E_{2}E_{1})^{-1}U=(E_{1})^{-1}(E_{2})^{-1}\dots(E_{k})^{-1}U=L_{1}L_{2}\dots L_{k}U=LU E k … E 2 E 1 A = U ⟹ A = ( E k … E 2 E 1 ) − 1 U = ( E 1 ) − 1 ( E 2 ) − 1 … ( E k ) − 1 U = L 1 L 2 … L k U = LU
הפירוק הזה מגיע מהדירוג של גאוס
מטריצה ריבועית A A A תקרא רגילה אם היא ניתנת לפירוק מהצורה A = L U A=LU A = LU כאשר:
L L L היא מטריצה משולשת תחתונה בסיסית
U U U מטריצה משולשת עליונה עם איברי אלכסון שונים מאפס.
מטריצה רגילה היא מטריצה הפיכה.
הפירוק הנ"ל הוא יחיד.
אלגוריתם למציאת פירוק L U LU LU
נניח כי A A A ריבועית ורגילה וברצוננו לבנות עבורה פירוק L U LU LU מהצורה:
( a 1 , 1 a 1 , 2 … a 1 , n − 1 a 1 , n a 2 , 1 a 2 , 2 … a 2 , n − 1 a 2 , n ⋮ ⋮ ⋱ ⋮ ⋮ a n − 1 , 1 a n − 1 , 2 … a n − 1 , n − 1 a n − 1 , n a n , 1 a n , 2 … a n , n − 1 a n , n ) A = ( 1 0 0 … 0 ℓ 2 , 1 1 0 … 0 ℓ 3 , 1 ℓ 3 , 2 1 … 0 ⋮ ⋮ ⋮ ⋱ ⋮ ℓ n , 1 ℓ n , 2 ℓ n , 3 … 1 ) L ( u 1 , 1 u 1 , 2 u 1 , 3 … u 1 , n 0 u 2 , 2 u 2 , 3 … u 2 , n 0 0 u 3 , 3 … u 3 , n ⋮ ⋮ ⋮ ⋱ ⋮ 0 0 0 … u n , n ) U \underset{A}{\begin{pmatrix}
a_{1,1} & a_{1,2} & \dots & a_{1,n-1} & a_{1,n} \\
a_{2,1} & a_{2,2} & \dots & a_{2,n-1} & a_{2,n} \\
\vdots & \vdots & \ddots & \vdots & \vdots \\
a_{n-1,1} & a_{n-1,2} & \dots & a_{n-1,n-1} & a_{n-1,n} \\
a_{n,1} & a_{n,2} & \dots & a_{n,n-1} & a_{n,n}
\end{pmatrix}}=\underset{L}{\begin{pmatrix}
1 & 0 & 0 & \dots & 0 \\
\ell_{2,1} & 1 & 0 & \dots & 0 \\
\ell_{3,1} & \ell_{3,2} & 1 & \dots & 0 \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
\ell_{n,1} & \ell_{n,2} & \ell_{n,3} & \dots & 1
\end{pmatrix}}\underset{U}{\begin{pmatrix}
u_{1,1} & u_{1,2} & u_{1,3} & \dots & u_{1,n} \\
0 & u_{2,2} & u_{2,3} & \dots & u_{2,n} \\
0 & 0 & u_{3,3} & \dots & u_{3,n} \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
0 & 0 & 0 & \dots & u_{n,n}
\end{pmatrix}} A a 1 , 1 a 2 , 1 ⋮ a n − 1 , 1 a n , 1 a 1 , 2 a 2 , 2 ⋮ a n − 1 , 2 a n , 2 … … ⋱ … … a 1 , n − 1 a 2 , n − 1 ⋮ a n − 1 , n − 1 a n , n − 1 a 1 , n a 2 , n ⋮ a n − 1 , n a n , n = L 1 ℓ 2 , 1 ℓ 3 , 1 ⋮ ℓ n , 1 0 1 ℓ 3 , 2 ⋮ ℓ n , 2 0 0 1 ⋮ ℓ n , 3 … … … ⋱ … 0 0 0 ⋮ 1 U u 1 , 1 0 0 ⋮ 0 u 1 , 2 u 2 , 2 0 ⋮ 0 u 1 , 3 u 2 , 3 u 3 , 3 ⋮ 0 … … … ⋱ … u 1 , n u 2 , n u 3 , n ⋮ u n , n
נראה כעת אלגוריתם קל לתכנות אשר ישיג את הפירוק הזה:
נתחיל במציאת העמודה הראשונה של L L L והשורה הראשונה של U U U .
אנו נראה שבתהליך סדרתי פשוט שנשען על גילוי עמודה ושורה מהפירוק כל פעם נוכל לחשוף את מלוא הפירוק
הכפלת השורה הראשונה ב-L L L ב-U U U מבינה את השורה הראשונה מ-U U U וזו חייבת להיות זהה לשורה הראשונה מ-A A A .
( a 1 , 1 a 1 , 2 a 1 , 3 … a 1 , n ) = ( 1 0 0 … 0 ) ( u 1 , 1 u 1 , 2 u 1 , 3 … u 1 , n 0 u 2 , 2 u 2 , 3 … u 2 , n 0 0 u 3 , 3 … u 3 , n ⋮ ⋮ ⋮ ⋱ ⋮ 0 0 0 … u n , n ) = ( u 1 , 1 u 1 , 2 u 1 , 3 … u 1 , n ) \begin{align*}
\begin{pmatrix}
a_{1,1} & a_{1,2} & a_{1,3} & \dots & a_{1,n}
\end{pmatrix}&=\begin{pmatrix}
1 & 0 & 0 & \dots & 0
\end{pmatrix}\begin{pmatrix}
u_{1,1} & u_{1,2} & u_{1,3} & \dots & u_{1,n} \\
0 & u_{2,2} & u_{2,3} & \dots & u_{2,n} \\
0 & 0 & u_{3,3} & \dots & u_{3,n} \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
0 & 0 & 0 & \dots & u_{n,n}
\end{pmatrix} \\
& =\begin{pmatrix}
u_{1,1} & u_{1,2} & u_{1,3} & \dots & u_{1,n}
\end{pmatrix}
\end{align*} ( a 1 , 1 a 1 , 2 a 1 , 3 … a 1 , n ) = ( 1 0 0 … 0 ) u 1 , 1 0 0 ⋮ 0 u 1 , 2 u 2 , 2 0 ⋮ 0 u 1 , 3 u 2 , 3 u 3 , 3 ⋮ 0 … … … ⋱ … u 1 , n u 2 , n u 3 , n ⋮ u n , n = ( u 1 , 1 u 1 , 2 u 1 , 3 … u 1 , n )
לכן, נוכל בקלות למצוא את השורה הראשונה של U U U . כעת, נראה כי גם נוכל בקלות למצוא את L L L :
הכפלת L L L בעמודה הראשונה של U U U תיתן את העמודה הראשונה של A A A ומכיוון ש-u 1 , 1 = a 1 , 1 u_{1,1}=a_{1,1} u 1 , 1 = a 1 , 1 נוכל לחלץ את כל איברי העמודה הראשונה של L L L .
( a 1 , 1 a 2 , 1 a 3 , 1 ⋮ a n , 1 ) = ( 1 0 0 … 0 ℓ 2 , 1 1 0 … 0 ℓ 3 , 1 ℓ 3 , 2 1 … 0 ⋮ ⋮ ⋮ ⋱ ⋮ ℓ n , 1 ℓ n , 2 ℓ n , 3 … 1 ) ( u 1 , 1 0 0 ⋮ 0 ) = ( u 1 , 1 ⋅ 1 u 1 , 1 ℓ 2 , 1 u 1 , 1 ℓ 3 , 1 ⋮ u 1 , 1 ℓ n , 1 ) \begin{pmatrix}
a_{1,1} \\
a_{2,1} \\
a_{3,1} \\
\vdots \\
a_{n,1}
\end{pmatrix}=\begin{pmatrix}
1 & 0 & 0 & \dots & 0 \\
\ell_{2,1} & 1 & 0 & \dots & 0 \\
\ell_{3,1} & \ell_{3,2} & 1 & \dots & 0 \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
\ell_{n,1} & \ell_{n,2} & \ell_{n,3} & \dots & 1
\end{pmatrix}\begin{pmatrix}
u_{1,1} \\
0 \\
0 \\
\vdots \\
0
\end{pmatrix}=\begin{pmatrix}
u_{1,1}\cdot 1 \\
u_{1,1}\ell_{2,1} \\
u_{1,1}\ell_{3,1} \\
\vdots \\
u_{1,1}\ell_{n,1}
\end{pmatrix} a 1 , 1 a 2 , 1 a 3 , 1 ⋮ a n , 1 = 1 ℓ 2 , 1 ℓ 3 , 1 ⋮ ℓ n , 1 0 1 ℓ 3 , 2 ⋮ ℓ n , 2 0 0 1 ⋮ ℓ n , 3 … … … ⋱ … 0 0 0 ⋮ 1 u 1 , 1 0 0 ⋮ 0 = u 1 , 1 ⋅ 1 u 1 , 1 ℓ 2 , 1 u 1 , 1 ℓ 3 , 1 ⋮ u 1 , 1 ℓ n , 1
⟹ ∀ 2 ≤ k ≤ n : ℓ k , 1 = a k , 1 a 1 , 1 \implies \forall 2\leq k\leq n:\; \ell_{k,1}=\frac{a_{k,1}}{a_{1,1}} ⟹ ∀2 ≤ k ≤ n : ℓ k , 1 = a 1 , 1 a k , 1
כך, נוכל בקלות למצוא את העמודה הראשונה של L L L .
כעת, לאחר שמצאנו את העמודה הראשונה של L L L והשורה הראשונה של U U U , נציג את המכפלה הזו כמכפלת בלוקים 2 × 2 2\times2 2 × 2 :
כאשר נותר לנו למצוא את הדברים הצבועים בכחול.
B = A 2 − ℓ ‾ 1 u ‾ 1 t = L 2 U 2 B=A_{2}-\underline{\ell}_{1}\underline{u}_{1}^t=L_{2}U_{2} B = A 2 − ℓ 1 u 1 t = L 2 U 2
אנו שוב מול פירוק L U LU LU עבור מטריצה קטנה יותר ונחזור על אותו התהליך של בניית העמודה הראשונה של L 2 L_{2} L 2 והשורה הראשונה של U 2 U_{2} U 2 (רקורסיה יהיה מאוד נחמד פה)
כך הלאה עד שנגיע לבלוק בגודל 1 × 1 1\times1 1 × 1 .
סיבוכיות האלגוריתם
∑ k = 1 n k ( k − 1 ) = n ( n + 1 ) ( 2 n + 1 ) 6 − n ( n + 1 ) 2 = n ( n + 1 ) ( n − 1 ) 3 ≈ n 3 3 = Θ ( n 3 ) \sum_{k=1}^n k(k-1)=\frac{n(n+1)(2n+1)}{6}-\frac{n(n+1)}{2}=\frac{n(n+1)(n-1)}{3} \approx \frac{n^3}{3}=\Theta(n^3) k = 1 ∑ n k ( k − 1 ) = 6 n ( n + 1 ) ( 2 n + 1 ) − 2 n ( n + 1 ) = 3 n ( n + 1 ) ( n − 1 ) ≈ 3 n 3 = Θ ( n 3 )
פירוק עם פרמוטציה
לפעמים, כפי שאנו זוכרים מההרצאה, ניתן לפרק כל מטריצה באמצעות פרמוטציות כך:
כל מטריצה A A A ניתנת לפירוק מהצורה P A = L U PA=LU P A = LU כאשר:
L L L מטריצה משולשת תחתונה בסיסית
U U U מטריצה משולשת עליונה כלשהי
P P P מטריצת פרמוטציות
אם מדובר במטריצה ריבועית ואיברי האלכסון הראשי של U U U כולם שונים מאפס, אזי A A A הפיכה ומכפלת האיברים הנ"ל היא הדטרמיננט של A A A עד כדי סימן! .
ניתן לפרק עם פרמוטציה בעזרת קוד המטלאב הבא(הערה: אני לא יודע מאטלב והמתרגל אמר שמאטלב זה לא בחומר)
function [P,L,U] = LU_PIV(A)
[m,n] = size (A);
P = eye(m,m);
L = eye(m,m);
U = zeros(m,n);
tol = sqrt(eps);
for k = 1:min(m, n)
r = findpiv(A (k:m,k),k);
if r ~= k
A([r k],1:n) = A([k r],1:n);
L([r k],1:k-1) = L([k r],1:k-1);
P([r k],:) = P([k r],:);
end
U(k, k:n) = A(k, k:n);
if abs(A(k,k)) >= tol
L(k+1:m,k) = A(k+1:m,k)/A(k,k);
A(k+1:m,k+1:n) = A (k+1:m,k+1:n)- ...
L(k+1:m, k) *U(k,k+1:n);
end
end
function [r] = findpiv(a, k)
pos=find(abs(a)==max(abs(a)));
r=pos(1)+k-1;
פתרון מערכת משוואות עם L U LU LU
A x ‾ = b ‾ ⟹ P b ‾ = P A x ‾ = L U x ‾ ⟹ P b ‾ = L ( U x ‾ ) = L y ‾ A\underline{x}=\underline{b} \implies P\underline{b}=PA\underline{x}=LU\underline{x}\implies P\underline{b}=L(U\underline{x})=L\underline{y} A x = b ⟹ P b = P A x = LU x ⟹ P b = L ( U x ) = L y
נפתור בשלבים בעזרת החלפה קדמית ואחורית:
שלב א': L y ‾ = P b ‾ L\underline{y}=P\underline{b} L y = P b
שלב ב': U x ‾ = y ‾ U\underline{x}=\underline{y} U x = y .
פתרון בדרך זו יעיל יותר מהיפוך מטריצה.
תרגול
מצאו את הפתרון למערכת המשוואות הבאה:
( 1 3 2 − 1 0 2 6 1 4 3 3 9 8 − 7 2 − 1 − 3 − 3 3 1 ) ( x 1 x 2 x 3 x 4 x 5 ) = ( a b c d ) \begin{pmatrix}
1 & 3 & 2 & -1 & 0 \\
2 & 6 & 1 & 4 & 3 \\
3 & 9 & 8 & -7 & 2 \\
-1 & -3 & -3 & 3 & 1
\end{pmatrix}\begin{pmatrix}
x_{1} \\
x_{2} \\
x_{3} \\
x_{4} \\
x_{5}
\end{pmatrix}=\begin{pmatrix}
a \\
b \\
c \\
d
\end{pmatrix} 1 2 3 − 1 3 6 9 − 3 2 1 8 − 3 − 1 4 − 7 3 0 3 2 1 x 1 x 2 x 3 x 4 x 5 = a b c d
ללא פרמוטציות
נשתמש באלגוריתם מעט אחר - בשיעורי הבית, לפי המתרגל, נוכל להנות מהאלגוריתם שראינו:
( 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 ) ( 1 0 0 0 0 1 0 0 − 3 0 1 0 0 0 0 1 ) ( 1 0 0 0 − 2 1 0 0 0 0 1 0 0 0 0 1 ) ( 1 3 2 − 1 0 2 6 1 4 3 3 9 8 − 7 2 − 1 − 3 − 3 3 1 ) = ( 1 3 2 − 1 0 0 0 − 3 6 3 0 0 2 − 4 2 0 0 − 1 2 1 ) \begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
{\color{red}1} & 0 & 0 & 1
\end{pmatrix}\begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
{\color{green}-3} & 0 & 1 & 0 \\
0 & 0 & 0 & 1
\end{pmatrix}\begin{pmatrix}
1 & 0 & 0 & 0 \\
{\color{blue}-2} & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1
\end{pmatrix}\begin{pmatrix}
1 & 3 & 2 & -1 & 0 \\
{\color{blue} 2} & 6 & 1 & 4 & 3 \\
{\color{green} 3} & 9 & 8 & -7 & 2 \\
{\color{red} -1} & -3 & -3 & 3 & 1
\end{pmatrix}=\begin{pmatrix}
1 & 3 & 2 & -1 & 0 \\
0 & 0 & -3 & 6 & 3 \\
0 & 0 & 2 & -4 & 2 \\
0 & 0 & -1 & 2 & 1
\end{pmatrix} 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 − 3 0 0 1 0 0 0 0 1 0 0 0 0 1 1 − 2 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 2 3 − 1 3 6 9 − 3 2 1 8 − 3 − 1 4 − 7 3 0 3 2 1 = 1 0 0 0 3 0 0 0 2 − 3 2 − 1 − 1 6 − 4 2 0 3 2 1
נשים לב כי העמודה השנייה כבר התאפסה ולכן נמשיך לעמודה השלישית:
( 1 0 0 0 0 1 0 0 0 0 1 0 0 − 1 3 0 1 ) ( 1 0 0 0 0 1 0 0 0 2 3 1 0 0 0 0 1 ) ( 1 3 2 − 1 0 0 0 − 3 6 3 0 0 2 − 4 2 0 0 − 1 2 1 ) = ( 1 3 2 − 1 0 0 0 − 3 6 3 0 0 0 0 4 0 0 0 0 0 ) \begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & {\color{red} -\frac{1}{3}} & 0 & 1
\end{pmatrix}\begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & {\color{blue} \frac{2}{3}} & 1 & 0 \\
0 & 0 & 0 & 1
\end{pmatrix}\begin{pmatrix}
1 & 3 & 2 & -1 & 0 \\
0 & 0 & -3 & 6 & 3 \\
0 & 0 & {\color{blue} 2 } & -4 & 2 \\
0 & 0 & {\color{red} -1} & 2 & 1
\end{pmatrix}=\begin{pmatrix}
1 & 3 & 2 & -1 & 0 \\
0 & 0 & -3 & 6 & 3 \\
0 & 0 & 0 & 0 & 4 \\
0 & 0 & 0 & 0 & 0
\end{pmatrix} 1 0 0 0 0 1 0 − 3 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 3 2 0 0 0 1 0 0 0 0 1 1 0 0 0 3 0 0 0 2 − 3 2 − 1 − 1 6 − 4 2 0 3 2 1 = 1 0 0 0 3 0 0 0 2 − 3 0 0 − 1 6 0 0 0 3 4 0
קיבלנו את המטריצה U U U שלנו. כעת, נמצא את L L L :
L = ( ( 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 ) ( 1 0 0 0 0 1 0 0 − 3 0 1 0 0 0 0 1 ) ( 1 0 0 0 − 2 1 0 0 0 0 1 0 0 0 0 1 ) ( 1 0 0 0 0 1 0 0 0 0 1 0 0 − 1 3 0 1 ) ( 1 0 0 0 0 1 0 0 0 2 3 1 0 0 0 0 1 ) ) − 1 = L=\left(
\begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
{\color{red}1} & 0 & 0 & 1
\end{pmatrix}\begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
{\color{green}-3} & 0 & 1 & 0 \\
0 & 0 & 0 & 1
\end{pmatrix}\begin{pmatrix}
1 & 0 & 0 & 0 \\
{\color{blue}-2} & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1
\end{pmatrix}\begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & {\color{orange} -\frac{1}{3}} & 0 & 1
\end{pmatrix}\begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & {\color{purple} \frac{2}{3}} & 1 & 0 \\
0 & 0 & 0 & 1
\end{pmatrix}
\right)^{-1}= L = 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 − 3 0 0 1 0 0 0 0 1 0 0 0 0 1 1 − 2 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 − 3 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 3 2 0 0 0 1 0 0 0 0 1 − 1 =
( 1 0 0 0 0 1 0 0 0 − 2 3 1 0 0 0 0 1 ) ( 1 0 0 0 0 1 0 0 0 0 1 0 0 1 3 0 1 ) ( 1 0 0 0 2 1 0 0 0 0 1 0 0 0 0 1 ) ( 1 0 0 0 0 1 0 0 3 0 1 0 0 0 0 1 ) ( 1 0 0 0 0 1 0 0 0 0 1 0 − 1 0 0 1 ) = ( 1 0 0 0 2 1 0 0 3 − 2 3 1 0 − 1 1 3 0 1 ) \begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & -\frac{2}{3} & 1 & 0 \\
0 & 0 & 0 & 1
\end{pmatrix}\begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & \frac{1}{3} & 0 & 1
\end{pmatrix}\begin{pmatrix}
1 & 0 & 0 & 0 \\
2 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1
\end{pmatrix}\begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
3 & 0 & 1 & 0 \\
0 & 0 & 0 & 1
\end{pmatrix}\begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
-1 & 0 & 0 & 1
\end{pmatrix}=\begin{pmatrix}
1 & 0 & 0 & 0 \\
2 & 1 & 0 & 0 \\
3 & -\frac{2}{3} & 1 & 0 \\
-1 & \frac{1}{3} & 0 & 1
\end{pmatrix} 1 0 0 0 0 1 − 3 2 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 3 1 0 0 1 0 0 0 0 1 1 2 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 3 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 − 1 0 1 0 0 0 0 1 0 0 0 0 1 = 1 2 3 − 1 0 1 − 3 2 3 1 0 0 1 0 0 0 0 1
ולכן:
A = ( 1 3 2 − 1 0 2 6 1 4 3 3 9 8 − 7 2 − 1 − 3 − 3 3 1 ) = ( 1 0 0 0 2 1 0 0 3 − 2 3 1 0 − 1 1 3 0 1 ) ( 1 3 2 − 1 0 0 0 − 3 6 3 0 0 0 0 4 0 0 0 0 0 ) = L U A=\begin{pmatrix}
1 & 3 & 2 & -1 & 0 \\
2 & 6 & 1 & 4 & 3 \\
3 & 9 & 8 & -7 & 2 \\
-1 & -3 & -3 & 3 & 1
\end{pmatrix}=\begin{pmatrix}
1 & 0 & 0 & 0 \\
2 & 1 & 0 & 0 \\
3 & -\frac{2}{3} & 1 & 0 \\
-1 & \frac{1}{3} & 0 & 1
\end{pmatrix}\begin{pmatrix}
1 & 3 & 2 & -1 & 0 \\
0 & 0 & -3 & 6 & 3 \\
0 & 0 & 0 & 0 & 4 \\
0 & 0 & 0 & 0 & 0
\end{pmatrix}=LU A = 1 2 3 − 1 3 6 9 − 3 2 1 8 − 3 − 1 4 − 7 3 0 3 2 1 = 1 2 3 − 1 0 1 − 3 2 3 1 0 0 1 0 0 0 0 1 1 0 0 0 3 0 0 0 2 − 3 0 0 − 1 6 0 0 0 3 4 0 = LU
כעת, נפתור את הממ"ל:
A x ‾ = L U x ‾ = L ( U x ‾ ) = L y ‾ = b ‾ = ( a b c d ) A\underline{x}=LU\underline{x}=L(U\underline{x})=L\underline{y}=\underline{b}=\begin{pmatrix}
a \\
b \\
c \\
d
\end{pmatrix} A x = LU x = L ( U x ) = L y = b = a b c d
( 1 0 0 0 2 1 0 0 3 − 2 3 1 0 − 1 1 3 0 1 ) ( y 1 y 2 y 3 y 4 ) = ( a b c d ) \begin{pmatrix}
1 & 0 & 0 & 0 \\
2 & 1 & 0 & 0 \\
3 & -\frac{2}{3} & 1 & 0 \\
-1 & \frac{1}{3} & 0 & 1
\end{pmatrix}\begin{pmatrix}
y_{1} \\
y_{2} \\
y_{3} \\
y_{4}
\end{pmatrix}=\begin{pmatrix}
a \\
b \\
c \\
d
\end{pmatrix} 1 2 3 − 1 0 1 − 3 2 3 1 0 0 1 0 0 0 0 1 y 1 y 2 y 3 y 4 = a b c d
{ y 1 = a y 2 = b − 2 y 1 = b − 2 a y 3 = c + 2 3 y 2 − 3 y 1 = c − 3 a + 2 3 ( b − 2 a ) y 4 = d + y 1 − 1 3 y 2 = d + a − b − 2 a 3 \begin{cases}
y_{1}=a \\
y_{2}=b-2y_{1}=b-2a \\
y_{3}=c+\frac{2}{3}y_{2}-3y_{1}=c-3a+\frac{2}{3}(b-2a) \\
y_{4}=d+y_{1}-\frac{1}{3}y_{2}=d+a-\frac{b-2a}{3}
\end{cases} ⎩ ⎨ ⎧ y 1 = a y 2 = b − 2 y 1 = b − 2 a y 3 = c + 3 2 y 2 − 3 y 1 = c − 3 a + 3 2 ( b − 2 a ) y 4 = d + y 1 − 3 1 y 2 = d + a − 3 b − 2 a
כעת, נפתור סופית:
( 1 3 2 − 1 0 0 0 − 3 6 3 0 0 0 0 4 0 0 0 0 0 ) ( x 1 x 2 x 3 x 4 x 5 ) = ( a b − 2 a c − 3 a + 2 3 ( b − 2 a ) d + a − b − 2 a 3 ) \begin{pmatrix}
1 & 3 & 2 & -1 & 0 \\
0 & 0 & -3 & 6 & 3 \\
0 & 0 & 0 & 0 & 4 \\
0 & 0 & 0 & 0 & 0
\end{pmatrix}\begin{pmatrix}
x_{1} \\
x_{2} \\
x_{3} \\
x_{4} \\
x_{5}
\end{pmatrix}=\begin{pmatrix}
a \\
b-2a \\
c-3a+\frac{2}{3}(b-2a) \\
d+a-\frac{b-2a}{3}
\end{pmatrix} 1 0 0 0 3 0 0 0 2 − 3 0 0 − 1 6 0 0 0 3 4 0 x 1 x 2 x 3 x 4 x 5 = a b − 2 a c − 3 a + 3 2 ( b − 2 a ) d + a − 3 b − 2 a
אם d + a − b − 2 a 3 d+a-\frac{b-2a}{3} d + a − 3 b − 2 a אינו 0 0 0 אזי, אין פתרון
אם ביטוי הנ"ל הוא 0 0 0 , אז x 5 x_{5} x 5 נקבע מתוך המשוואה השלישית ואילו ארבעת הנעלמים נותרים נקבעים עם 2 2 2 דרגות חופש בעזרת שתי המשוואות הראשונות.
אנו רוצים לקבל את התמונה הבאה אך בפועל אנו מקבלים גרסה מעט מטושטשת שלה:
איך נוכל מהתמונה המטושטשת לחזור לתמונה החדה?
תמונה היא מטריצה והמספרים המאכלסים אותה הם פיקסלים המייצגים "רמות האפור" (ערך בתחום [ 0 , 1 ] [0,1] [ 0 , 1 ] כאשר 0 0 0 הוא שחור ו-1 1 1 הוא לבן)
טשטוש מתקבל כאשר כל ערך של פיקסל מוחלף בממוצע משוקלל של סביבתו. (לכו לתואר בפיזיקה כדי לדעת למה זה קורה)
נמחיש את פעולת הטשטוש על עמודה בתמונה: y ‾ = H x ‾ \underline{y}=H\underline{x} y = H x כאשר המטריצה H H H מייצגת את פעולת הטשטוש - הכפלת עמודה בה יוצרת עמודה חדשה עם מריחת הערכים:
y 5 = x 3 + 2 x 4 + 3 x 5 + 2 x 6 + x 7 9 y_{5}=\frac{x_{3}+2x_{4}+3x_{5}+2x_{6}+x_{7}}{9} y 5 = 9 x 3 + 2 x 4 + 3 x 5 + 2 x 6 + x 7
סכום כל שורה במטריצה(למעט השוליים) הוא 1 על מנת לשמר ערך ממוצע - לכן החלוקה ב-9 9 9 .
( y 1 y 2 y 3 y 4 y 5 y 6 y 7 y 8 y 9 y 10 y 11 y 12 y 13 ) = ( 3 2 1 0 0 0 0 0 0 0 0 0 0 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 0 0 0 0 0 0 0 0 0 0 1 2 3 ) ( x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x 13 ) \begin{pmatrix}
y_{1} \\
y_{2} \\
y_{3} \\
y_{4} \\
y_{5} \\
y_{6} \\
y_{7} \\
y_{8} \\
y_{9} \\
y_{10} \\
y_{11} \\
y_{12} \\
y_{13}
\end{pmatrix}=\begin{pmatrix}
3 & 2 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
2 & 3 & 2 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
1 & 2 & 3 & 2 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
0 & 1 & 2 & 3 & 2 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 2 & 3 & 2 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 1 & 2 & 3 & 2 & 1 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 2 & 3 & 2 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 1 & 2 & 3 & 2 & 1 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 1 & 2 & 3 & 2 & 1 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 2 & 3 & 2 & 1 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 2 & 3 & 2 & 1 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 2 & 3 & 2 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 2 & 3
\end{pmatrix}\begin{pmatrix}
x_{1} \\
x_{2} \\
x_{3} \\
x_{4} \\
x_{5} \\
x_{6} \\
x_{7} \\
x_{8} \\
x_{9} \\
x_{10} \\
x_{11} \\
x_{12} \\
x_{13}
\end{pmatrix} y 1 y 2 y 3 y 4 y 5 y 6 y 7 y 8 y 9 y 10 y 11 y 12 y 13 = 3 2 1 0 0 0 0 0 0 0 0 0 0 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 2 0 0 0 0 0 0 0 0 0 0 1 2 3 x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x 13
נסתכל על תיאור מתמטי של פעולת הטשטוש:
Y = H X H t Y =HXH^t Y = H X H t
כאשר Y Y Y היא התמונה המטושטשת ו-X X X היא התמונה המקורית.
המטריצה H H H מטשטשת את העמודות והשורות בנפרד.
כעת, ברורה משימת השחזור שלפנינו: בהינתן Y Y Y ובידיעת H H H , ברצונינו לחלץ את X X X .
המשימה הזו היא בעצם פתרון של מלא ממ"לים כפי שראינו הנ"ל. אנו נוכל להקל על התהליך באמצעות פירוק L U LU LU למטריצה H H H .
הנה שלבי השחזור:
נסמן Z = X H t Z=XH^t Z = X H t . בשלב הראשון, עלינו לפתור את המשוואה Y = H Z Y=HZ Y = H Z .
נקבל את Z Z Z ואז נפתור את המשוואה Z t = H X t Z^t=HX^t Z t = H X t ועם זה נסיים.
בשני המקרים לא מדובר במשוואה אחת, אלא בסדרה שלהן.