פירוק אינטרפולטיבי

באנליזה נומרית פירוק אינטרפולטיבי (Interpolative decomposition) מציג מטריצה כמכפלה של שתי מטריצות; האחת בנויה מחלק מהעמודות של המטריצה המקורית, והשנייה מכילה תת-מטריצת יחידה וכל שאר האיברים שלה קטנים מ-2 בגודלם.

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

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

את הפירוק אפשר באופן דומה לבצע על שורות במקום עמודות.

== הגדרה ==

תהי <math> A </math> מטריצה בגודל <math> m \times n </math> מדרגה <math> r </math>, אז ניתן להציג את <math> A </math> כ:
:<math> A = A_{(:,J)} X \, </math>
כאשר:
* <math> J </math> היא תת-קבוצה של אינדקסים בגודל <math> r </math> מתוך <math> 1 ,\ldots, n </math>.
* המטריצה <math> A_{(:,J)} </math> היא מטריצה בגודל <math> m \times r </math> שמכילה את העמודות באינדקס <math> J</math> של <math> A </math>.
* <math> X </math> היא מטריצה בגודל <math> r \times n </math> שכל ערכיה בעלי נורמה קטנה מ-2. ל <math> X </math> יש תת-מטריצת יחידה בגודל <math> r \times r </math> .

==דוגמה==
אם <math> A </math> היא מטריצה בגודל <math> 3 \times 3 </math> מדרגה 2 :
<math>
A = 
 \begin{bmatrix}
 34 & 58 & 52 \\
 59 & 89 & 80 \\
 17 & 29 & 26 \\
 \end{bmatrix} 
</math>

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

:<math>
A = 
 \begin{bmatrix}
 58 & 34 \\
 89 & 59 \\
 29 & 17 \\
 \end{bmatrix} 
 \begin{bmatrix}
 0 & 1 & 0.8788 \\
 1 & 0 & 0.0303 \\
 \end{bmatrix} 
</math>
ולפי שורות:
:<math>
A = 
 \begin{bmatrix}
 0 & 1 \\
 1 & 0 \\
 0 & 0.5 \\
 \end{bmatrix}
 \begin{bmatrix}
 59 & 89 & 80 \\
 34 & 58 & 52
 \end{bmatrix} 
 
</math>

==אלגוריתם לחישוב הפירוק==
עבור מטריצה <math>A</math> בגודל <math>m \times n</math>, נחשב באופן הבא את הפירוק האינטרפולטיבי שלה מסדר <math>k</math>:
 נחשב פירוק QR של A עם פרמוטצית עמודות: AP=QR
 נסמן: <math> R = \left[\begin{array}{c|c}R_{11}&R_{12} \\ \hline 0&R_{22} \end{array} \right]</math> כאשר <math>R_{11}</math> היא מטריצה <math>k \times k</math>, <math>R_{12}</math> היא מטריצה בגודל<math>k \times (n-k)</math>, ו <math>R_{22}</math> היא מטריצה <math>(m-k) \times (n-k)</math>
 נסמן: <math>Q = \left[\begin{array}{c|c}Q_1& Q_2 \end{array} \right] </math> כאשר <math>Q_1</math> היא מטריצה <math>m \times k</math> ו <math>Q_2</math> היא מטריצה <math>m \times (m-k)</math>
 נחשב: <math>B = Q_1 R_{11}</math> ונשים לב שקיימים <math>K</math> אינדקסים <math>J</math> כך ש <math>B = A_{(:,J)}</math>
 נחשב: <math>X = \left[\begin{array}{c|c}I_k&R_{11}^{-1}R_{12}\end{array}\right]P^T</math> כאשר <math>I_k</math> היא מטריצת היחידה בגודל <math>k \times k</math>
 ונקבל: <math>A = BX</math>

== לקריאה נוספת ==
<div class="mw-content-ltr">
* Cheng, Hongwei, Zydrunas Gimbutas, Per-Gunnar Martinsson, and Vladimir Rokhlin. "[https://amath.colorado.edu/faculty/martinss/Pubs/2004_skeletonization.pdf On the compression of low rank matrices.]" SIAM Journal on Scientific Computing 26, no. 4 (2005): 1389-1404.
* Liberty, E., Woolfe, F., Martinsson, P. G., Rokhlin, V., & Tygert, M. (2007). [http://www.pnas.org/content/104/51/20167.full.pdf+html Randomized algorithms for the low-rank approximation of matrices]. Proceedings of the National Academy of Sciences, 104(51), 20167-20172.
</div>

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