אלגוריתמים נומריים ()234125 Numerical Algorithms אורתוגונליות ופירוק QR מאת :מיקי אלעד המטרה של הרצאה זו אנו נעסוק במטריצות אורתונורמליות ונבין את חשיבותן נציג את פירוק QRלמטריצות ואת השימוש בו לפתרון בעיות LS = A = QR ❑ נבין מהן מטריצות אורתוגונליות ❑ נראה שפירוק זה אפשרי וכיצד ניתן לקבלו ❑ נראה שימושים של פירוק זה 2 תוכן העניינים ❑ אורתוגונליות ופירוק QR .1 .2 .3 .4 .5 .6 .7 3 בסיסים אורתונורמליים וחשיבותם מטריצות אורתונורמליות תהליך Gram-Schmidtווריאציות עליו רגישות נומרית של תהליך GS פירוק QR שימוש בפירוק QRלפתרון מערכות משוואות שימוש בפירוק QRלפתרון LS אורתוגונליות ופירוק QR = A = QR .1בסיסים אורתונורמליים וחשיבותם b ❑ נניח שנתונה לנו המטריצה ( Aבגודל n×mכאשר )n>mמדרגה מלאה ,ויחד עמה נתון גם וקטור שרירותי b A ❑ המשימה שלפנינו :פתרון בעיית הריבועים הפחותים המוגדרת מהצמד Aו b -ומציאת גובהה המינימלי של הפונקציה הריבועית 2 2 n min A x − b x m ❑ לכן ,יהיה עלינו לבצע את החישוב ה"-מייגע" הבא: x* = ( A A ) A T b −1 ) * A x * − b 2 = b b − ( x *) ( A T A ) ( x T 5 T T 2 .1בסיסים אורתונורמליים וחשיבותם ❑ נסמן את עמודות Aבאופן הבא: ❑ כעת נתמקד בשאלה הבאה :מה אם ידוע כי עמודות אלה אורתונורמליות? j=k j k 2 2 6 = 1 = ak 1 a ak = 0 T j =0 | | | A = a1 a 2 ... a m | | | בסיסים אורתונורמליים וחשיבותם.1 ❑ המטריצה שעלינו להפוך הינה AT A = − a1 − T − a2 − T − am − T a1T a1 a1T a 2 T T a 2 a1 a 2 a 2 = a 3T a1 a 3T a 2 T a m a1 a Tm a 2 | | a1 a 2 | | T a1 a 3 T a 2 a3 T a3 a3 T a m a3 | am | 1 a1 a m 0 T a2 am T a 3 a m = 0 T 0 a m a m T 0 0 1 0 0 1 0 0 0 0 0 = I m 1 7 .1בסיסים אורתונורמליים וחשיבותם ❑ לכן ,פתרון ה LS -המיוחל מתקבל בקלות ע"י a1T b T a2 b b = a Tm b − a1 − T − a2 − T − am − T = x* = ( A T A ) A T b = A T b −1 ❑ להזכירכם ,ביקשנו גם לדעת את גובה הביטוי של ה:LS - 2 2 p ( x *) = b b − ( x *) ( A A ) ( x *) = b 2 − A b T 2 T T T =I ❑ המסקנה (לעת עתה) :אם התמזל מזלנו ועמודות Aאורתונורמליות, אז חישובי פתרון ה LS-וגובה הפונקציה במינימום נעשים קלים יותר לאין ערוך. 8 .2מטריצות אורתונורמליות הגדרה :מטריצה Qנקראית אורתונורמלית אם היא ריבועית ועמודותיה מהוות בסיס אורתונורמלי n למלוא המרחב j=k j k 1 v vk = 0 T j | vn | | | Q = v1 v 2 | | ❑ לעתים נשתמש במושג מטריצה יוניטרית כשם נרדף למטריצה אורתונורמלית 9 מטריצות אורתונורמליות.2 QT Q = | | v1 v2 | | − v1 − T − v2 − T − vn − v1T v1 T v 2 v1 = v3T v1 T v n v1 T T v1 v3 T v 2 v3 T v3 v3 T v n v3 v1 v 2 v2 v2 v3 v 2 vn v2 T T T T | vn | v1 v n 1 T v 2 v n 0 T v3 v n = 0 T v n v n 0 T 0 0 1 0 0 1 0 0 ❑ ברור שמתקיים 0 0 0 = I n 1 10 .2מטריצות אורתונורמליות ❑ אבל הפעם יש לתוצאה זו משמעות רחבה יותר ,כי Qמטריצה ריבועית ,ולכן QTQ = I Q−1 = QT ❑ תכונה :0למשפחה זו של מטריצות יש תכונה ייחודית – היפוכן מתקבל בקלות וללא חישוב כלל ,ע"י פעולת השיחלוף ❑ תכונה :1מהנ"ל נובע שמתקבל כי , QQT = Iומזאת נובע שאם בידינו סידרת nוקטורים אורתונורמליים ואנו בונים מהם את עמודותיה של מטריצה ריבועית ואורתונורמלית ,הרי שגם שורותיה תהיינה אנכייות זו לזו ❑ תכונה det Q = 1 :2 11 = det Q 2 T det I = 1 = det QQ .2מטריצות אורתונורמליות ❑ תכונה :3מכפלתן של מטריצות כאלה אף היא אורתונורמלית ,כיוון ש- ( Q1Q2 ) ( Q1Q2 ) = QT2 Q1TQ1 Q2 = QT2 Q2 = I T =I ❑ תכונה :4הכפלת וקטור במטריצה אורתונורמלית לא משנה את אורכו בL2 - 2 2 T T T 2 Qx 2 = x Q Qx = x x = x ❑ שתי התכונות האחרונות ברורות גם מהבנת המשמעות הגיאומטרית של מטריצות אורתונורמליות – אלה הן מטריצות המסובבות וקטורים ביחס לראשית ,ולכן המרחק מהראשית נותר ללא שינוי ,והרכבת סיבובים היא סיבוב 12 .2מטריצות אורתונורמליות ❑ ניתן מספר דוגמאות למטריצות אורתונורמליות ▪ זוכרים את מטריצת הפרמוטציה מפירוק ?LUזו מטריצה ממשפחה זו! ▪ ניכר שעמודותיה של מטריצה זו מנורמלים ואנכיים זה לזה 0 0 0 0 1 13 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 −1 T 0 Q = Q = 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 Q = 1 0 0 מטריצות אורתונורמליות.2 ❑ ניתן מספר דוגמאות למטריצות אורתונורמליות : 2D -▪ מטריצת סיבוב ב 0, 2 − sin ( ) cos ( ) cos ( ) sin ( ) cos ( ) − sin ( ) Q= sin ( ) cos ( ) ) 0 − sin( ) Q = Q 10 = cos( sin( ) 1 cos( ) : 2D -▪ מטריצת שיקוף של הצירים ב 1 0 −1 0 Q= ; Q= 0 − 1 0 1 14 .2מטריצות אורתונורמליות ❑ ניתן מספר דוגמאות למטריצות אורתונורמליות ▪ מטריצת Givensמציעה סיבוב בין שני צירים בוקטור במימד גבוה 1 15 ) cos ( ) − sin ( 1 ) cos ( ) sin ( 1 G= .2מטריצות אורתונורמליות ❑ ניתן מספר דוגמאות למטריצות אורתונורמליות ▪ מטריצת השיקוף של – Householderנניח כי נתון וקטור vבאורך יחידה, .vTv=1המטריצה המוצעת הינה T H = I − 2vv נוכיח כי היא אורתונורמלית (אגב ,ניכר שהיא סימטרית!) = I − 4vv + 4v v v v = I T T =1 T ) T I − 2vv () T כשמכפילים מטריצה זו ב v -מקבלים שיקוף) v = −v : ובכל כיוון אחר wאנכי לוקטור זה ( )vTw=0נקבל: 16 ( HH T = I − 2vv T ( H v = I − 2vv )w = w T ( H w = I − 2vv .3תהליך Gram-Schmidtווריאציות עליו ❑ ראינו כמה נוח לעבוד עם בסיסים אורתונורמליים ,אם חלקיים ואם מלאים. ❑ השאלה בה נעסוק כעת היא – בהינתן בסיס שאינו כזה ,או אף סט וקטורים כלשהו שעבור ה span-שלו אנו מעוניינים בבסיס אורתונורמלי, כיצד נמצא כזה? ❑ תהליך )GS( Gram*-Schmidtמציע לנו תהליך מסודר להשגת יעד זה. ❑ כפי שנראה ,יש כמה דרכים לבנות תהליך זה ,ועל אף היותן תיאורטית דרכים זהות ,מבחינה נומרית התנהגותן יכולה להיות שונה בתכלית ❑ אנו נציג תהליך חישובי ולאחר מכן ניתן לו פרשנות של פירוק מטריצה, ממש בדומה לתהליך שלקח אותנו מאלימינציית גאוס לפירוק LU 17 * מדובר באותו ( Gramיורגן גראם מדנמרק) שעל שמו קראנו את מטריצות גראם .השיטה המוצעת פותחה לפני כמאה וחמישים שנה .3תהליך Gram-Schmidtווריאציות עליו ❑ נתון סט של וקטורי כניסה כלשהם w1, w2, … ,wLמהמרחב ה-n-מימדי ❑ תהליך GSיבנה מוקטורים אלה סידרת וקטורים אורתונורמלית עם Lאו פחות וקטוריםu1, u2, … ,uL , n w k k =1 L תהליך Gram-Schmidt ❑ התהליך סידרתי ומקיים את התכונה הבאה בכל איטרציה :k span w1 , w 2 , ... , w k = span u1 , u 2 , ... , u k n 18 u k k =1 L .3תהליך Gram-Schmidtווריאציות עליו אלגוריתם Gram-Schmidt ❑ צעד ראשון – מתקבל w1וברצוננו לייצר את u1 ❑ השיטה :נירמול וקטור הכניסה* 1 = u1 w1 w1 2 ❑ ברור שמתקיים כי span w1 = span u1 * 19 הערה :אנו נניח כי בסידרת וקטורי הכניסה לא נמצאים וקטורי אפס .אם יש כאלה ,יש להשמיטם בטרם התהליך כי אין להם השפעה עליו .3תהליך Gram-Schmidtווריאציות עליו אלגוריתם Gram-Schmidt ❑ צעד שני – מתקבל w2וברצוננו לייצר את u2 ❑ אנו רוצים שהוקטור u2יקיים שלוש תכונות: ▪ הנורמה שלו צריכה להיות 1 ▪ וקטור זה צריך להיות אנכי לu1 - ▪ יש לקיים את הדרישה span w1 , w 2 = span u1 , u 2 * אם הוקטור לפני נירמול מאופס ,פירוש הדבר שהוא נפרס מקודמו .במקרה כזה לא נבצע נירמול, ונשכח מקיומו של w2 – הוא לא תורם דבר לוקטורי המוצא נירמול * ❑ השיטה :קילוף u1מהוקטור w2להשגת אנכיות ,ואז T T T T 1. u 2 = w 2 − cu1 0 = u1 u 2 = u1 w 2 − c u1 u1 c = u1 w 2 =1 1 = 2. u 2 u2 ❑ באשר לתכונה השלישית ,היא מתקיימת כיוון u2 2 ש u2-ו u1-נבנו מצירופים ליניארים של w1ו,w2- ולכן . span w1 , w 2 span u1 , u 2 כיוון שהמימד של תת-המרחב 20המתקבל הוא ,2ישנו שוויון .3תהליך Gram-Schmidtווריאציות עליו אלגוריתם Gram-Schmidt ❑ צעד שלישי – מתקבל w3וברצוננו לייצר את u3 ❑ אנו רוצים שהוקטור u3יקיים שלוש תכונות כמקודם :הנורמה שלו צריכה להיות ,1וקטור זה צריך להיות אנכי ל u1 -ו ,u2-וכמו כן ,יש לקיים את הדרישה span w1 , w 2 , w 3 = span u1 , u 2 , u 3 ❑ השיטה :קילוף להשגת אנכיות ,ואז נירמול 0 = u1T u 3 = u1T w 3 − c1 c1 = u1T w 3 T T T 0 = u 2 u 3 = u 2 w 3 − c2 c2 = u 2 w 3 21 1. u 3 = w 3 − c1 u1 − c2 u 2 1 = 2. u 3 u3 u3 2 .3תהליך Gram-Schmidtווריאציות עליו אלגוריתם Gram-Schmidt ❑ צעד – kמתקבל wkוברצוננו לייצר את uk ❑ השיטה :כמקודם – יש לייצר וקטור באורך יחידה ,אנכי לקודמיו ,וכזה שפורס את אותו תת-מרחב ❑ השיטה :קילוף להשגת אנכיות ,ואז נירמול 0 = u1T u k = u1T w k − c1 c1 = u1T w k T T T c2 = u 2 w k 0 = u 2 u k = u 2 w k − c 2 0 = u T u = u T w − c c = u T w k −1 k k −1 k k −1 k k −1 k −1 22 k −1 1. u k = w k − c j u j j=1 1 = 2. u k uk uk 2 .3תהליך Gram-Schmidtווריאציות עליו אלגוריתם Gram-Schmidt n איתחול: קבע k=1 הבא את הוקטור w1איטרציה: T -קילוףu j w k u j : ) -נירמול: 2 ( k −1 uk = wk − j=1 w k k =1 L תהליך Gram-Schmidt uk = uk / uk קבע k=k+1 הבא את הוקטור wk23 n u k k =1 L .3תהליך Gram-Schmidtווריאציות עליו משפט :בהינתן סט וקטורים כלשהו בת"ל, n w k k =1 L המגדיר תת-מרחב ,קיים בסיס אורתונורמלי תחליפי L n u k k =1 אשר יפרוס את אותו תת-מרחב, span w1 , w 2 , ... , w L = span u1 , u 2 , ... , u L ❑ הוכחה :בבניה ,עפ"י תהליך ,GSהראינו זאת! ❑ האם מתקיימת יחידות? (סדר הוקטורים ,סימני הוקטורים הנוצרים) 24 .3תהליך Gram-Schmidtווריאציות עליו אלגוריתם Modified Gram-Schmidt ❑ אנו עוברים לתיאור של וריאציה אחרת של אלגוריתם GS ❑ שיטה זו שקולה לחלוטין לאלגוריתם שתואר קודם ,אם כי היא נראית אחרת ❑ תכליתה של שיטה זו יובהר בהמשך, כשנדון בכלי הקרוי פירוק QR ❑ יסוד השיטה :הישענות על המשוואות הבאות שקושרות בין וקטורי הכניסה לאלו שאנו יוצרים + rLL u L 25 w1 = r11 u 1 w 2 = r21 u 1 + r22 u 2 w 3 = r31 u 1 + r32 u 2 + r33 u 3 w L = rL1 u 1 + rL2 u 2 + rL3 u 3 + w1 = r11 u 1 w 2 = r21 u 1 + r22 u 2 w 3 = r31 u 1 + r32 u 2 + r33 u 3 .3תהליך GSווריאציות עליו + rLL u L w L = rL1 u 1 + rL2 u 2 + rL3 u 3 + אלגוריתם Modified Gram-Schmidt ❑ נתייחס למשוואה הראשונה: w1 = r11 u 1 ❑ ברור שאת המקדם r11נקבע על מנת לקבל נירמול של הוקטור u1ולכן w1 2 = r u 1 2 = r112 2 2 11 2 ❑ שימו לב – יש לנו חופש בבחירת סימנו של מקדם זה. ❑ שורה תחתונה :המשוואה הראשונה הינה w1 = w1 2 u 1 26 w1 = r11 u 1 w 2 = r21 u 1 + r22 u 2 w 3 = r31 u 1 + r32 u 2 + r33 u 3 .3תהליך GSווריאציות עליו + rLL u L w L = rL1 u 1 + rL2 u 2 + rL3 u 3 + אלגוריתם Modified Gram-Schmidt ❑ נתייחס למשוואה השניהw 2 = r21 u 1 + r22 u 2 : ❑ בשל האנכיות של u1ל u2 -נקבל כי r21ידוע 1 ) u 2 = ( w 2 − r21 u 1 r22 u w 2 = r u u 1 + r22 u u 2 = r21 T 1 T 1 T 21 1 ❑ את המקדם r22נקבע על מנת לקבל נירמול של הוקטור u2ולכן w 2 2 = r21 u 1 + r22 u 2 2 = r + r r22 = w 2 2 − r212 2 2 22 2 21 ❑ באופן זה שני המקדמים r21 ,ו ,r22 -ידועים 27 2 2 w1 = r11 u 1 w 2 = r21 u 1 + r22 u 2 w 3 = r31 u 1 + r32 u 2 + r33 u 3 ווריאציות עליוGS תהליך.3 w L = rL1 u 1 + rL2 u 2 + rL3 u 3 + + rLL u L Modified Gram-Schmidt אלגוריתם w k = rk1 u 1 + rk 2 u 2 + + rk,k −1 u k −1 + rkk u k :k-❑ נתייחס למשוואה ה המקדמיםk-1 ) נקבל כיj=1,2, … ,k-1( uj - לuk ❑ בשל האנכיות של הראשונים ידועים u w k = rk1 u u 1 + rk 2 u u 2 + T j T j + rkj u u j + T j + rkk u u k = rkj T j T j ולכןuk נקבע על מנת לקבל נירמול של הוקטורrkk ❑ את המקדם wk 2 2 = rk1 u 1 + rk 2 u 2 + rkk = + rkk u k k −1 w k 2 − rkj2 2 2 2 k = rkj2 j=1 כיצד מחושבים u הוקטורים ? בתהליך זה j=1 28 .3תהליך Gram-Schmidtווריאציות עליו אלגוריתם Stable Gram-Schmidt ❑ אנו עוברים לתיאור של וריאציה שלישית של אלגוריתם GS ❑ שיטה זו שקולה לחלוטין לשני האלגוריתמים שתוארו קודם ,אם כי היא נראית אחרת ❑ תכליתה של שיטה זו ,כשמה ,הוא לספק תהליך GSיציב מבחינה נומרית ,ואכן ,גירסה זו יציבה הרבה יותר משתי קודמותיה ❑ יסוד השיטה :שינוי סדר הפעולות שבאלגוריתם ,GSובשל כך, השגת יציבות טובה יותר 29 .3תהליך Gram-Schmidtווריאציות עליו אלגוריתם Stable Gram-Schmidt ❑ אנו עוברים לתיאור של וריאציה שלישית של אלגוריתם GS ❑ שיטה זו שקולה לחלוטין לשני האלגוריתמים שתוארו קודם ,אם כי היא נראית אחרת ❑ תכליתה של שיטה זו ,כשמה ,הוא לספק תהליך GSיציב מבחינה נומרית ,ואכן ,גירסה זו יציבה הרבה יותר משתי קודמותיה ❑ יסוד השיטה :שינוי סדר הפעולות שבאלגוריתם ,GSובשל כך, השגת יציבות טובה יותר 30 .3תהליך Gram-Schmidtווריאציות עליו אלגוריתם Stable Gram-Schmidt ❑ צעד ראשון – מתקבל w1וברצוננו לייצר את u1 1 = u1 ❑ השיטה :נירמול וקטור הכניסה w1 w1 2 ❑ עד כאן הטיפול זהה לשיטת ,GSוכעת בא ההבדל ... ❑ לפני שנעבור לוקטור הבא" ,ננקה" את כל וקטורי הנתונים ע"י קילוף u1מתוכם .ניקוי זה פירושו שאחריו הוקטורים אנכיים ל .u1 -זאת נעשה ע"י T j = 2,3, ,L w j w j − u1 w j u1 ) ( ❑ להזכירכם ,ניקוי זה הופעל גם בשיטת GSאם כי בשלב אחר 31 .3תהליך Gram-Schmidtווריאציות עליו אלגוריתם Stable Gram-Schmidt ❑ צעד שני – מתקבל w2וברצוננו לייצר את u2 ❑ קודם נדרשנו לנקות מוקטור זה את המרכיב של u1ורק אז לנרמל. כעת ניקוי זה כבר מאחורינו ולכן כל שנדרש לעשות הוא 1 = u2 w2 w2 2 ❑ כעת עלינו לנקות את כל הוקטורים הנותרים על מנת להופכם אנכיים ל ,u2 -וזאת ע"י ) ( ,L w j w j − u 2 w j u 2 32 T j = 3,4, .3תהליך Gram-Schmidtווריאציות עליו אלגוריתם Stable Gram-Schmidt ❑ צעד – kמתקבל wkוברצוננו לייצר את uk ❑ קודם נדרשנו לנקות מוקטור זה את המרכיבים של כל הוקטורים הקודמים ורק אז לנרמל .כעת ניקוי זה כבר מאחורינו ולכן כל שנדרש לעשות הוא 1 = uk wk wk 2 ❑ כעת עלינו לנקות את כל הוקטורים הנותרים על מנת להופכם אנכיים ל ,uk -וזאת ע"י T j = k + 1, ,L w j w j − u k w j u k ) 33 ( ווריאציות עליוGram-Schmidt תהליך.3 L n Stable Gram-Schmidt אלגוריתם w k k =1 :איתחול k=1 קבעwk הבא את הוקטור- תהליך Gram-Schmidt uk = wk / wk ( 2 :איטרציה : נירמול- ) w j w j − u k w j u k for k j L קילוף- u k k =1 L T k=k+1 קבעn wk הבא את הוקטור34 .3תהליך Gram-Schmidtווריאציות עליו הדגם נושא זה ע"י הרצת Demo-GS.m מה קרה כאן? אלגוריתם ה SGS -מתנהל טוב יותר עם שגיאות מצטברות ,בשל העובדה שכל קילוף פועל על וקטורים שכבר "זוככו" קודם ,ולכן אינו צובר את שגיאתם – עוד על כך בהמשך 35 .3תהליך Gram-Schmidtווריאציות עליו ❑ מהי הסיבוכיות החישובית של תהליך ?GSנניח כי אנו פועלים על L<nוקטורים בת"ל במימד n ❑ ננתח את אלגוריתם ה:SGS - W ▪ כל פעולת נירמול דורשת 2nפעולות 2 uk = wk / wk L ▪ כל פעולת קילוף דורשת 2nפעולות T w j w j − uk w j uk ) ( ❑ כמות הפעולות הכוללת הינה ,L2/2 וזאת יש להכפיל ב 2n -ולכן תהליך זה דורש nL2פעולות ❑ כאשר פועלים על nוקטורים (כלומר מטריצה ריבועית בגודל ,)nn 36הסיבוכיות תהיה n3 n צעד מספר פעולות נירמול מספר פעולות קילוף 1 1 L-1 2 1 L-2 L 1 0 סיכום: Lפעולות L(L-1)/2 פעולות .4רגישות נומרית של תהליך GS ❑ הצגנו שלוש שיטות לבניית סידרת וקטורים אורתונורמלית מתוך סט נתון של וקטורים: ▪ Gram Schmidt ▪ ,Modified Gram Schmidtו- ▪ Stable Gram Schmidt ❑ כאמור ,שלושת השיטות שהוצגו שקולות לחלוטין מבחינה תיאורטית ❑ בטיפול נומרי ,שתי השיטות הראשונות חלשות מאוד ורגישות לשגיאות העגלה ,בשעה ששיטת ה Stable Gram-Schmidt -חזקה יותר ❑ נראה זאת דרך דוגמה שתמחיש את שבריריות תהליך GSאם אינו נעשה בזהירות 37 .4רגישות נומרית של תהליך GS 1 0 ❑ נניח כי בידינו אוסף הוקטורים הבא: 0 e 1 0 e 0 1 e W= 0 0 ❑ אנו מניחים שהפרמטר eהינו ערך קטן מאוד – כזה בו המחשב נותן בשל דיוק סופי 1+ e = 1 ❑ המשימה שלפנינו :ביצוע תהליך אורתוגונליזציה על וקטורים אלו אנו נבחן את שיטות ה GS -והSGS - 38 1 e W= 0 0 1 0 e 0 1 0 0 e GS רגישות נומרית של תהליך.4 GS -שיטת ה :❑ בניית הוקטור הראשון 1 e w1 = 0 0 1 1 1 e e u1 = = 2 0 0 1+ e 0 0 39 1 e W= 0 0 1 e U= 0 0 1 0 e 0 1 0 0 e GS רגישות נומרית של תהליך.4 :❑ בניית הוקטור השני 1 0 w2 = e 0 v2 u2 = v2 2 GS -שיטת ה 1 1 0 0 e −e T v 2 = w 2 − u1 w 2 u 1 = − 1 = e 0 e 0 0 0 0 −1/ 2 = 1/ 2 0 ( ) 40 1 e W= 0 0 1 e U= 0 0 1 0 e 0 1 0 0 e 0 −1 −1 0 2 2 GS רגישות נומרית של תהליך.4 GS -שיטת ה 1 0 w3 = 0 e u3 = v3 v3 2 0 −1/ 2 = 0 1/ 2 :❑ בניית הוקטור השלישי ( ) ( ) v 3 = w 3 − u1 w 3 u 1 − u 2 w 3 u 2 T T 1 1 0 0 0 e −1/ 2 −e = = − 1 − 0 0 0 1/ 2 0 e 0 0 e 1 e U= 0 0 0 −1 2 −1 2 0 0 −1 2 0 1 2 41 1 e W= 0 0 1 0 e 0 1 0 0 e GS רגישות נומרית של תהליך.4 GS -שיטת ה ❑ נשים לב ששלושת הוקטורים שהתקבלו אינם מהוים סט אורתונורמלי 1 0 0 e −1/ 2 −1/ 2 , u3 = u1 = , u 2 = 0 1/ 2 0 0 0 1/ 2 u1T u1 u1T u 2 T T G = u 2 u1 u 2 u 2 T T u u u 3 u2 3 1 u1 u 3 1 −0.707e −0.707e 1 0 0 T u 2 u 3 = −0.707e 1 0.5 = 0 1 0.5 T 0.5 1 0 0.5 1 u 3 u 3 −0.707e T 42 1 e W= 0 0 1 0 e 0 1 0 0 e GS רגישות נומרית של תהליך.4 SGS -שיטת ה 1 e w1 = 0 0 1 1 1 e e u1 = = 2 0 0 1+ e 0 0 ( ) 1 0 e 0 ) 1 0 0 e w 2 = w 2 − u1 w 2 u1 = ( T w 3 = w 3 − u1 w 3 u1 = T − 1 1 e 0 0 − 1 1 e 0 0 = 0 − e e 0 = 0 − e 0 e ,❑ בניית הוקטור הראשון :ממש כמקודם ❑ וכעת עלינו לנקות w3 - וw2 את 43 GS רגישות נומרית של תהליך.4 ( T 1 ( T 1 ) 1 0 e 0 ) 1 0 0 e w 2 = w 2 − u w 2 u1 = w 3 = w 3 − u w 3 u1 = − 1 1 e 0 0 − 1 1 e 0 0 = 0 − e e 0 = 0 − e 0 e 0 −e w2 = e 0 0 0 −e −1/ 2 1 = u2 = e2 + e2 e 1/ 2 0 0 0 0 0 −e −1/ 2 − e/2 e T = w3 = w3 − u2 w3 u2 = − 0 2 1/ 2 − e/2 e 0 e ( ) SGS -שיטת ה ❑ בניית הוקטור השני :)(פשוט נרמול ❑ וכעת עלינו לנקות w3 את 44 0 − e/2 w3 = − e/2 e GS רגישות נומרית של תהליך.4 SGS -שיטת ה ❑ בניית הוקטור השלישי :)(שוב נרמול 0 −e / 2 w3 = −e / 2 e 0 0 1 −e / 2 −1/ 6 u3 = = 2 −e / 2 −1/ 6 1.5e e 2/ 6 45 1 e W= 0 0 1 0 e 0 1 0 0 e GS רגישות נומרית של תהליך.4 SGS -שיטת ה ... ❑ שלושת הוקטורים שהתקבלו הרבה יותר טובים 1 0 0 e −1/ 2 −1/ 6 , u3 = u1 = , u 2 = 0 1/ 2 −1/ 6 0 0 2/ 6 u1T u1 u1T u 2 T T G = u 2 u1 u 2 u 2 T T u u u 3 u2 3 1 u1 u 3 1 −0.707e −e / 6 1 0 0 T u 2 u 3 = −0.707e 1 0 0 1 0 T u 3 u 3 −e / 6 0 1 0 0 1 T 46 .4רגישות נומרית של תהליך GS ❑ מה קרה כאן ? ❑ כל ההבדל הוא בטיפול בוקטור השלישי: ▪ באלגוריתם המקורי החישוב היה לפי ) ( ) ( v3 = w 3 − u1 w 3 u1 − u 2 w 3 u 2 T T ▪ באלגוריתם היציב החישוב היה לפי 2 47 )u ( v3 = w 3 − u 2 w 3 new T new ) ( = w 3 − u1 w 3 u1 T new w3 new w3 GS רגישות נומרית של תהליך.4 = w − (u w ) u v = w − (u w ) u T 1 3 3 1 new 3 3 T 2 new 3 2 נציב זאת בביטוי ( ) ( ( ) ) − ( u w ) u − ( u w ) u + ( u w )( u u ) u T T T v3 = w 3 − u1 w 3 u1 − u 2 w 3 − u1 w 3 u1 u 2 = w3 ( T 1 3 T 2 1 התקבלGS נזכור – בשיטת ) ( ) v3 = w 3 − u w 3 u1 − u w 3 u 2 = T 1 T 2 3 0 0 − e e T 1 2 ( T 2 3 )( 1 ) 2 u1 w 3 u 2 u1 u 2 = T T 0 − e/2 e/2 e ניכר שהשינוי אינו זניח כלל 48 .5פירוק QR ❑ נצא לדרך מתהליך Gram-Schmidtבגרסתו השניה ,ה- ,Modified Gram-Schmidtוננסה להבין מה בעצם הוצע כאן w1 = r11 u 1 ❑ אוסף המשוואות שהתהליך בונה הן w 2 = r21 u 1 + r22 u 2 w 3 = r31 u 1 + r32 u 2 + r33 u 3 + rLL u L w L = rL1 u 1 + rL2 u 2 + rL3 u 3 + ❑ נארגן משוואות אלו מחדש בצורה מטריצית 49 .5פירוק QR ❑ נאסוף את כל הוקטורים שהזינו את התהליך כעמודותיה של מטריצה שתיקרא A ❑ נאסוף באופן דומה את כל הוקטורים שנוצרו מהתהליך (ונניח לשם פשטות שלא היו התבטלויות במהלך התהליך) | wL | | w3 | | | A = w1 w 2 | | ❑ כיצד השתיים קשורות? 50 | uL | | u3 | | | Q = u1 u 2 | | w1 = r11 u 1 w 2 = r21 u 1 + r22 u 2 w 3 = r31 u 1 + r32 u 2 + r33 u 3 w L = rL1 u 1 + rL2 u 2 + rL3 u 3 + QR פירוק.5 + rLL u L | | | A = w1 w 2 w 3 | | | | | | = u1 u 2 u 3 | | | | wL | r11 0 | 0 uL | 0 :❑ התשובה :❑ מרכיבי המשוואה הזו )Ln( L עלn – בגודלA ▪ – מטריצה עם עמודותQ ▪ L עלn אורתונורמליות בגודל L עלL – משולשת עליונה בגודלR ▪ r21 r22 0 r31 r32 r33 0 0 rL1 rL2 rL3 = QR rLL 51 w1 = r11 u 1 w 2 = r21 u 1 + r22 u 2 w 3 = r31 u 1 + r32 u 2 + r33 u 3 w L = rL1 u 1 + rL2 u 2 + rL3 u 3 + QR פירוק.5 + rLn u L על מנת ל"עקור" את העמודה.❑ בואו נסביר למה קשר זה נכון :e1 הראשונה משני האגפים עלינו לכפול בוקטור הקאנוני | | w1 = w1 w 2 | | | w3 | 1 | 0 | | w L 0 = u1 u 2 | | | 0 זוהי המשוואה,ואכן -הראשונה בתיאור ה MGS | | = u1 u 2 | | | u3 | | u3 | r11 r21 | 0 r22 uL 0 0 | 0 0 r31 r32 r33 0 rL1 1 rL2 0 rL3 0 rLL 0 r11 | 0 u L 0 = r11 u1 | 0 52 w1 = r11 u 1 w 2 = r21 u 1 + r22 u 2 w 3 = r31 u 1 + r32 u 2 + r33 u 3 w L = rL1 u 1 + rL2 u 2 + rL3 u 3 + QR פירוק.5 + rLn u L על מנת ל"עקור" את העמודה השניה משני האגפים,❑ באופן דומה :e2 עלינו לכפול בוקטור הקאנוני | | w 2 = w1 w 2 | | | w3 | 0 | 1 | | w L 0 = u1 u 2 | | | 0 זוהי המשוואה,ואכן MGS -השניה בתיאור ה | | = u1 u 2 | | | u3 | | u3 | r11 r21 | 0 r22 uL 0 0 | 0 0 r31 r32 r33 0 rL1 0 rL2 1 rL3 0 rLL 0 r21 | r22 u L 0 = r21 u1 + r22 u 2 | 0 53 .5פירוק QR ❑ ואם המטריצה Aריבועית והפיכה: ❑ הפעם מרכיבי המשוואה הזו יהיו: ▪ – Aבגודל nעל n ▪ – Qמטריצה אורתונורמלית בגודל nעל n ▪ – Rמשולשת עליונה בגודל nעל n rn1 rn 2 rn3 = QR rnn 54 r31 r32 r33 r21 r22 0 0 0 | = wn | r11 | 0 un 0 | 0 | | | A = w1 w 2 w 3 | | | | | | = u1 u 2 u 3 | | | .5פירוק QR משפט :כל מטריצה ריבועית ולא סינגולרית A ניתנת לפירוק יחיד מהצורה A=QR כאשר Qמטריצה אורתונורמלית וR - מטריצה משולשת עליונה בה איברי האלכסון הראשי כולם חיוביים ❑ הוכחה :כיוון שהמטריצה הפיכה ,עמודותיה בת"ל ולכן בתהליך ה- GSיתקבלו nוקטורי מוצא ,ואלו ייצרו מטריצה אורתונורמלית ❑ מדוע יחידות? זה נובע מדרישת החיוביות של איברי האלכסון של ,Rכפי שמתקבלים (באופן יחיד) באלגוריתם הMGS - 55 .5פירוק QR ❑ פירוק QRקיים גם למטריצות סינגולריות ,אז יתקבלו ערכי 0באלכסון הראשי של .R ❑ דוגמה :נזין את המטריצה הבאה לפירוק QRכפי שנעשה ב .Matlab -נשים לב שעמודה שניה תלויה בראשונה ולכן זוהי מטריצה סינגולרית ❑ מתקבל: 4 1 1 0 −0.333 0.667 0 −0.943 −0.236 0 0 0.707 56 0.5 -0.5 0.707 0 2 0 0 0.5 0.833 0.236 0.5 -0.167 −0.471 -0.707 0 0.5 −0.167 −0.471 0.707 0 0 1 0 1 0 0 1 1 = = QR 2 2 2 2 0 1 0 1 0 0 1 1 1 1 A= 1 1 2 2 2 2 1 1 1 1 =A .5פירוק QR נתונה המטריצה A ועליה אנו מבצעים Gram-Schmidt אם נתקלת בעמודה ב A -התלויה בקודמיה ,זרוק אותה והמשך בתהליך 4 1 1 0 −0.333 0.667 0 −0.943 −0.236 0 0 0.707 57 תהליך GS פירוק QR 0.5 -0.5 0.707 0 2 0 0 0.5 0.833 0.236 0.5 -0.167 −0.471 -0.707 0 0.5 −0.167 −0.471 0.707 0 A אם נתקלת בעמודה התלויה בקודמיה ,אי אפשר לזורקה! לכן: .1הצג אותה כצירוף של הוקטורים שכבר נוצרו ,ו- .2הגרל\בחר וקטור חדש שימלא את מקומה להמשך תהליך GS = = QR 0 1 0 1 0 0 1 1 2 2 2 2 1 1 1 1 =A .5פירוק QR ❑ פירוק QRקיים גם למטריצות מלבניות מכל צורה שהיא ▪ כשהמטריצה רחבה ונמוכה ,עמודותיה חייבות להיות ת"ל .אם נניח שn - העמודות הראשונות בת"ל ,נקבל כי יתר העמודות תלויות בהן ,ולכן עמודות R המתאימות מלאות = w 7 = Qr 7 r 7 = QT w 7 ▪ כשהמטריצה גבוהה וצרה ,ניתן להציע שני מבני פירוק – האחד עם Qמלאה שבה מוסיפים וקטורי סרק לעמודותיה של Qלהשלמת מטריצה אורתונורמלית. הגישה האחרת הקרויה Economy QRמסתפקת ב Q-ברוחב של A = 58 = .5פירוק QR הדגם נושא זה ע"י הרצת Demo-QR-1.m 59 .6שימוש ב QR -לפתרון מערכות משוואות ❑ בהינתן מערכת משוואות Ax=bנוכל להשתמש בפירוק QRעל מנת לפותרה .נדון בשלושה מקרים: ▪ Aריבועית (והפיכה) ▪ Aמלבנית עם יותר שורות מעמודות ▪ Aמלבנית עם יותר עמודות משורות ❑ מקרה ראשון – Aריבועית ,ונניח כי היא הפיכה ▪ ▪ ▪ נתחיל בפירוק AלQR - נכפיל את הוקטור bבQT - נפתור את המערכת הנותרת ע"י החלפה אחורית A x = QR x = b R x = QT b ❑ הערה :כמות החישובים כאן גדולה משמעותית מזו של השימוש בפירוק ,LUולכן גישה זו תינקט רק אם יש סיבה לשימוש בQR - 60 .6שימוש ב QR -לפתרון מערכות משוואות ❑ מקרה שני – Aמלבנית גבוהה ,ונניח כי דרגתה מלאה ▪ ▪ ▪ ▪ ▪ נתחיל בפירוק Aל .QR -פירוק זה אינו ה Economy QR -על מנת לקבל מטריצה Qריבועית נכפיל את הוקטור bבQT - כעת עלינו לפתור את המערכת הנותרת ע"י החלפה אחורית ,אלא שתחתית המטריצה Rמאופסת ,ולכן החלק התחתון בוקטור QTbחייב להיות אפס על מנת להבטיח פתרון אם החלק התחתון אינו מאופס, לא קיים פתרון למערכת במקרה כזה ,ניתן להתעלם ולפתור את החלק העליון להגעה לשוויון ,ואילו סכום ריבועי הערכים בחלק התחתון של הוקטור קובעים את מידת הריחוק מקיומו של פתרון – אנו נראה זאת בהמשך, כשנדון בשימוש ב QR -לטובת פתרון בעיית הריבועים הפחותים = = 61 = = .6שימוש ב QR -לפתרון מערכות משוואות ❑ מקרה שלישי – Aמלבנית רחבה ,ונניח שוב כי דרגתה מלאה ▪ ▪ ▪ נתחיל בפירוק Aל.QR - נכפיל את הוקטור bבQT - המערכת שנותרת מספרת על דרגות החופש הקיימות במערכת המקורית = = = 62 = .7שימוש ב QR -לפתרון LS ❑ נניח כי עלינו לפתור בעיית ריבועים פחותים 2 2 min A x − b x ונניח כי יש לבעיה זו פתרון יחיד (דהיינו Aריבועית או מלבנית גבוהה ודרגתה מלאה) ❑ נתחיל בפירוק Aל .QR -פירוק זה אינו ה Economy QR -על מנת לקבל מטריצה Qריבועית ❑ הצבה בבעיית ה LS -תיתן 2 2 2 min A x − b 2 = min QR x − b x = min Q ( R x − Q b ) = min R x − Q b 2 T x 2 63 2 2 2 Qv 2 = v T x QQT = I x 2 .7שימוש ב QR -לפתרון LS 2 2 2 + 2 2 = - ❑ וקטור השגיאה ניתן לפיצול לשני חלקים נפרדים ,והשגיאה הכוללת היא סכום שתי שגיאות אלה 2 ❑ את המרכיב הראשון ניתן להביא לערך אפס ע"י פתרון של החלפה אחורית min Q b − R x T 2 x 2 = - - 2 = ❑ החלק הנותר לא ניתן לשינוי -סכום ריבועיו של החלק התחתון של QTbקובעים את גובה המינימום של הבעיה הריבועית ❑ נשים לב שיכולנו להשתמש ב Economy QR -לחישוב הפתרון 64 .7שימוש ב QR -לפתרון LS ❑ מהי המורכבות חישובית של התהליך הנ"ל? ▪ ▪ ▪ ▪ נניח שאנו פועלים עם מטריצה Aבגודל m×n חישוב ה Econ-QR -למטריצה Aידרוש – mn2זהו החלק הדומיננטי במלוא התהליך הכפלת הוקטור bב QT -תדרוש nmפעולות פעולת ההחלפה האחורית תדרוש n2/2פעולות ❑ מהי החלופה? חישוב ATAופתרון בעזרת פירוק :Cholesky ▪ ▪ ▪ חישוב ATAדורש mn2פעולות פירוק Choleskyידרוש n3/6פעולות החלפה קדמית ואחורית ב n2 -פעולות ❑ אין ספק שעדיף פירוק QRבמקרה זה 65 .7שימוש ב QR -לפתרון LS ❑ ואכן ,ראו כיצד Matlabפועל על ... A\b מקרה זה למעשה נחשב לבעיית LS - ומטופל בהתאם 66 .7שימוש ב QR -לפתרון LS הדגם נושא זה ע"י הרצת Demo-QR-2.m 67 .7שימוש ב QR -לפתרון LS ❑ הערה :נניח כי יצאנו לדרך לפתור סידרה של בעיות :LS min A x − b L k =1 2 2 k k xk ❑ כלומר ,רצוננו לפתור סידרה של בעיות אלו עם Aהולכת ומתרחבת ,כשכל פעם נוספת לה עמודה (וכנגדה נעלם נוסף) | aL | | ak | ❑ למה זה מעניין? למשל ,בקירוב פולינומיאלי ,הדבר שקול לבניית סידרת קירובים עם דרגת פולינום הולכת וגדלה ❑ איך נפתור שרשרת בעיות אלו? לכאורה כל אחת מבעיות אלה תיפתר בתורה ובנפרד ,וללא קיצורי דרך ❑ לפירוק ה QR -יש חדשות טובות עבורנו בעניין זה ... 68 | A = a1 | Ak .7שימוש ב QR -לפתרון LS 2 2 min A L x − b 2 = min R L x − Q b T L ❑ בפירוק אחד למטריצה ,ALאנו מקבלים את הפירוקים של כל תת-המטריצות Ak ( )1≤k ≤Lללא כל חישוב נוסף 2 x QL R L min A x − b L k =1 2 k k QL−1 R L−1 A L−1 xk נדרש לפירוק QRיחיד ,חישוב ההכפלה QLTbפעם אחת ,ואז סידרת פעולות החלפה אחורית בגודל משתנה 69 AL = ❑ לכן ,פתרון סידרת בעיות הLS - 2 x = .7שימוש ב QR -לפתרון LS ❑ לסיכום :נניח כי יצאנו לדרך לפתור את בעיית ה LS -הבאה 2 2 min A x − b 2 = min R x − Q b x 2 T x ונניח כי המטריצה Aבעלת Lעמודות ❑ השימוש בפירוק QRנותן יתרון חדש ומעניין :אם נרצה לדעת את הפתרון לאותה בעיה אך עבור שימוש ב k<L -העמודות הראשונות של Aבלבד ,פתרון זה נגיש – יש לקחת את החלק העליון של הוקטור QTbואת החלק העליון של המטריצה Rולפתור מערכת משוואות זו 2 22 + …2 22 70 2 2 = - 2 2 = - - .7שימוש ב QR -לפתרון LS הדגם נושא זה ע"י הרצת Demo-QR-3.m 71