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

באנליזה נומרית פירוק אינטרפולטיבי (Interpolative decomposition) מציג מטריצה כמכפלה של שתי מטריצות; האחת בנויה מחלק מהעמודות של המטריצה המקורית, והשנייה מכילה תת-מטריצת יחידה וכל שאר האיברים שלה קטנים מ-2 בגודלם. הרעיון של הפירוק, ומכאן גם שמו, הוא להציג מטריצה עם יתירות בעמודות (היתירות מתבטאת בדרגה נמוכה יותר ממספר העמודות) כהרחבה (או אינטרפולציה) של עמודות נבחרות מתוך המטריצה. באנליזה נומרית משתמשים בפירוק לא רק עבור המקרה שבו הדרגה נמוכה, אלא גם עבור המקרה שבו הדרגה הנומרית נמוכה, ואז הפירוק המתקבל מקרב את המטריצה המקורית בדיוק החישוב. את הפירוק אפשר באופן דומה לבצע על שורות במקום עמודות. תהי A {\displaystyle A} מטריצה בגודל m × n {\displaystyle m\times n} מדרגה r {\displaystyle r} , אז ניתן להציג את A {\displaystyle A} כ: A = A ( : , J ) X {\displaystyle A=A_{(:,J)}X\,} כאשר: J {\displaystyle J} היא תת-קבוצה של אינדקסים בגודל r {\displaystyle r} מתוך 1 , … , n {\displaystyle 1,\ldots ,n} . המטריצה A ( : , J ) {\displaystyle A_{(:,J)}} היא מטריצה בגודל m × r {\displaystyle m\times r} שמכילה את העמודות באינדקס J {\displaystyle J} של A {\displaystyle A} . X {\displaystyle X} היא מטריצה בגודל r × n {\displaystyle r\times n} שכל ערכיה בעלי נורמה קטנה מ-2. ל X {\displaystyle X} יש תת-מטריצת יחידה בגודל r × r {\displaystyle r\times r} . אם A {\displaystyle A} היא מטריצה בגודל 3 × 3 {\displaystyle 3\times 3} מדרגה 2 : A = [ 34 58 52 59 89 80 17 29 26 ] {\displaystyle A={\begin{bmatrix}34&58&52\\59&89&80\\17&29&26\\\end{bmatrix}}} אז הפירוק האינטרפולטיבי שלה ע"פ עמודות הוא: A = [ 58 34 89 59 29 17 ] [ 0 1 0.8788 1 0 0.0303 ] {\displaystyle A={\begin{bmatrix}58&34\\89&59\\29&17\\\end{bmatrix}}{\begin{bmatrix}0&1&0.8788\\1&0&0.0303\\\end{bmatrix}}} ולפי שורות: A = [ 0 1 1 0 0 0.5 ] [ 59 89 80 34 58 52 ] {\displaystyle A={\begin{bmatrix}0&1\\1&0\\0&0.5\\\end{bmatrix}}{\begin{bmatrix}59&89&80\\34&58&52\end{bmatrix}}} עבור מטריצה A {\displaystyle A} בגודל m × n {\displaystyle m\times n} , נחשב באופן הבא את הפירוק האינטרפולטיבי שלה מסדר k {\displaystyle k} : נחשב פירוק QR של A עם פרמוטצית עמודות: AP=QR נסמן: R = [ R 11 R 12 0 R 22 ] {\displaystyle R=\left[{\begin{array}{c|c}R_{11}&R_{12}\\\hline 0&R_{22}\end{array}}\right]} כאשר R 11 {\displaystyle R_{11}} היא מטריצה k × k {\displaystyle k\times k} , R 12 {\displaystyle R_{12}} היא מטריצה בגודל k × ( n − k ) {\displaystyle k\times (n-k)} , ו R 22 {\displaystyle R_{22}} היא מטריצה ( m − k ) × ( n − k ) {\displaystyle (m-k)\times (n-k)} נסמן: Q = [ Q 1 Q 2 ] {\displaystyle Q=\left[{\begin{array}{c|c}Q_{1}&Q_{2}\end{array}}\right]} כאשר Q 1 {\displaystyle Q_{1}} היא מטריצה m × k {\displaystyle m\times k} ו Q 2 {\displaystyle Q_{2}} היא מטריצה m × ( m − k ) {\displaystyle m\times (m-k)} נחשב: B = Q 1 R 11 {\displaystyle B=Q_{1}R_{11}} ונשים לב שקיימים K {\displaystyle K} אינדקסים J {\displaystyle J} כך ש B = A ( : , J ) {\displaystyle B=A_{(:,J)}} נחשב: X = [ I k R 11 − 1 R 12 ] P T {\displaystyle X=\left[{\begin{array}{c|c}I_{k}&R_{11}^{-1}R_{12}\end{array}}\right]P^{T}} כאשר I k {\displaystyle I_{k}} היא מטריצת היחידה בגודל k × k {\displaystyle k\times k} ונקבל: A = B X {\displaystyle A=BX} Cheng, Hongwei, Zydrunas Gimbutas, Per-Gunnar Martinsson, and Vladimir Rokhlin. "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). Randomized algorithms for the low-rank approximation of matrices. Proceedings of the National Academy of Sciences, 104(51), 20167-20172.