כיצד לבצע פקטוריזציה של LU?

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

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

ישנה שיטה נוספת המפחיתה את כמות הפעולות לקוביית הממד של המטריצה. זה נקרא פקטוריזציה LU - היא מפרקת מטריצה לשתי מטריצות משולשות - U, {\ displaystyle U,} למשולש עליון ו- L, {\ displaystyle L,} למשולש תחתון - ואחרי ההתקנה המתאימה, הפתרונות נמצאים על ידי החלפת גב. מחשבים מסוימים משתמשים בשיטה זו כדי לפתור במהירות מערכות שלא יהיה מעשי להתמודד באמצעות צמצום שורות.

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

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

צעדים

  1. 1
    התחל במשוואת המטריצה. ביסודו, ניתן לכתוב מערכת משוואות במונחים של משוואת מטריצה Ax = b, {\ displaystyle A \ mathbf {x} = \ mathbf {b},} כאשר מטריצה A {\ displaystyle A} פועלת על וקטור x { \ displaystyle \ mathbf {x}} להפקת וקטור אחר ב. {\ displaystyle \ mathbf {b}.} לרוב אנו רוצים לדעת x, {\ displaystyle \ mathbf {x},} וזה לא יוצא מן הכלל. בפקטוריזציה LU נראה כי אנו יכולים להגדיר את היחס A = LU, {\ displaystyle A = LU,} כאשר L {\ displaystyle L} ו- U {\ displaystyle U} הן מטריצות משולשות.
    • (241−113325) x = (217) {\ displaystyle {\ begin {pmatrix} 2 & 4 & 1 \\ - 1 & 1 & 3 \\ 3 & 2 & 5 \ end {pmatrix}} \ mathbf {x} = {\ begin {pmatrix} 2 \\ 1 \ \ 7 \ end {pmatrix}}}
  2. 2
    צמצם שורה {\ displaystyle a} לצורת דרג-שורה. צורת הדרג השורה תהפוך למטריקס U שלנו . {\ Displaystyle U.}
    • R2 → 2R2 + R1, R3 → 2R3−3R1 {\ displaystyle R_ {2} \ to 2R_ {2} + R_ {1}, \ R_ {3} \ to 2R_ {3} -3R_ {1}}
      • (2410670−87) {\ displaystyle {\ begin {pmatrix} 2 & 4 & 1 \\ 0 & 6 & 7 \\ 0 & -8 & 7 \ end {pmatrix}}}
    • R3 → 3R3 + 4R2 {\ displaystyle R_ {3} \ to 3R_ {3} + 4R_ {2}}
      • (2410670049) = U {\ displaystyle {\ begin {pmatrix} 2 & 4 & 1 \\ 0 & 6 & 7 \\ 0 & 0 & 49 \ end {pmatrix}} = U}
    • המטריצה נמצאת כעת בצורת הדרג.
    בדרך כלל ממירים את הבעיה למטריצה מוגברת ושורה מקטינה משם
    כדי לפתור מערכות של שלוש משוואות ליניאריות או יותר, בדרך כלל ממירים את הבעיה למטריצה מוגברת ושורה מקטינה משם.
  3. 3
    השג l {\ displaystyle l} על ידי ביטול שלבי הצמצום שלך בשורה. שלב זה עשוי להיות מעט מסובך בהתחלה, אך למעשה אנו בונים מטריצה על ידי מעבר אחורה.
    • בואו נסתכל על הפחתת השורה האחרונה R3 → 3R3 + 4R2. {\ Displaystyle R_ {3} \ ל- 3R_ {3} + 4R_ {2}.} מצאנו את השורה החדשה 3 על ידי החלפתה בשילוב ליניארי של הישן שורות של המטריצה. כעת, אנו רוצים למצוא את השורה 3 הישנה, כל כך פשוט לפתור אותה.
      • R3old → R3−4R23 {\ displaystyle R_ {3} ^ {\ text {old}} \ ל- {\ frac {R_ {3} -4R_ {2}} {3}}}
    • זה מבטל את צמצום השורה השנייה. עכשיו, שמנו את זה בצורה של מטריצה. בואו נקרא למטריצה הזו S2. {\ Displaystyle S_ {2}.} וקטור העמודות מימין פשוט מבהיר את מה שאנחנו עושים - המטריצה הזו שאנחנו בונים היא טרנספורמציה לינארית שעושה את אותו הדבר כמו שכתבנו לעיל. שימו לב, מכיוון שלא עשינו שום דבר לשתי השורות העליונות, האלמנטים המתקבלים לשתי השורות במטריצה זו זהים למטריצת הזהות. רק השורה השלישית משתנה.
      • (1000100−1,330.33) (R1R2R3) {\ displaystyle {\ begin {pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & -1,33 & 0,33 \ end {pmatrix}} {\ begin {pmatrix} R_ {1} \\ R_ { 2} \\ R_ {3} \ end {pmatrix}}}
    • בנה את המטריצה שמבטלת את צמצום השורה הראשונה. באופן דומה, אנו פותרים את השורה 2 ו- 3 הישנה. אנו נקרא למטריצה זו S1. {\ Displaystyle S_ {1}.}
      • R2old = R2 − R12 {\ displaystyle R_ {2} ^ {\ text {old}} = {\ frac {R_ {2} -R_ {1}} {2}}}
      • R3old = R3 + 3R12 {\ displaystyle R_ {3} ^ {\ text {old}} = {\ frac {R_ {3} + 3R_ {1}} {2}}}
      • S1 = (100−0,50.501,500.5) {\ displaystyle S_ {1} = {\ begin {pmatrix} 1 & 0 & 0 \\ - 0,5 & 0,5 & 0 \\ 1,5 & 0 & 0,5 \ end {pmatrix}}}
    • הכפל את המטריצות S {\ displaystyle S} לפי הסדר שמצאנו אותן. פירוש הדבר ש- S2S1 = L. {\ Displaystyle S_ {2} S_ {1} = L.} אם ביצעת את הכפל כהלכה, אתה אמור לקבל מטריצה משולשת תחתונה.
      • L = (100−0,50.501,5−0,670.17) {\ displaystyle L = {\ begin {pmatrix} 1 & 0 & 0 \\ - 0,5 & 0,5 & 0 \\ 1,5 & -0,67 & 0,17 \ end {pmatrix}} }
  4. 4
    השכתוב המשוואה מטריקס גרזן = b {\ displaystyle a \ mathbf {x} = \ mathbf {ב}} ב במונחים של lu {\ displaystyle lu} . עכשיו שיש לנו שתי מטריצות, אנחנו יכולים לראות למטה כי L {\ displaystyle L} מתנהג על וקטור Ux {\ displaystyle U \ mathbf {x}} יציאות ב. {\ Displaystyle \ mathbf {ב}.}
    • L (Ux) = b {\ displaystyle L (U \ mathbf {x}) = \ mathbf {b}}
    • מכיוון ש- Ux {\ displaystyle U \ mathbf {x}} הוא וקטור, תן y = Ux. {\ Displaystyle \ mathbf {y} = U \ mathbf {x}.} לאחר מכן, אנו רואים כי Ly = b. {\ Displaystyle L \ mathbf {y} = \ mathbf {ב}.} המטרה כאן היא לפתור הראשון עבור y, {\ displaystyle \ mathbf {y},} מכן חבר לתוך Ux = y {\ displaystyle U \ mathbf {x} = \ mathbf {y}} כדי לפתור עבור x. {\ displaystyle \ mathbf {x}.}
    זה נקרא פקטוריזציה LU - היא מפרקת מטריצה לשתי מטריצות משולשות - למשולש עליון ולמשולש תחתון - ולאחר ההתקנה
    זה נקרא פקטוריזציה LU - היא מפרקת מטריצה לשתי מטריצות משולשות - למשולש עליון ולמשולש תחתון - ולאחר ההתקנה המתאימה, הפתרונות נמצאים על ידי החלפת גב.
  5. 5
    פתר עבור y {\ displaystyle \ mathbf {y}} . מכיוון שאנו עוסקים במטריצות משולשות, החלפת גב היא הדרך ללכת.
    • Ly = (y1−12y1 + 12y232y1−23y2 + 16y3) = (217) {\ displaystyle L \ mathbf {y} = {\ התחל {pmatrix} y_ {1} \\ - {\ frac {1} {2}} y_ {1} + {\ frac {1} {2}} y_ {2} \\ {\ frac {3} {2}} y_ {1} - {\ frac {2} {3}} y_ {2} + {\ frac {1} {6}} y_ {3} \ end {pmatrix}} = {\ התחל {pmatrix} 2 \\ 1 \\ 7 \ end {pmatrix}}}
    • y = (2440) {\ displaystyle \ mathbf {y} = {\ התחל {pmatrix} 2 \\ 4 \\ 40 \ end {pmatrix}}}
  6. 6
    פתר עבור x {\ displaystyle \ mathbf {x}} . זה יכלול שוב החלפה אחורית מכיוון ש- U {\ displaystyle U} הוא משולש.
    • Ux = (2x1 + 4x2 + x36x2 + 7x349x3) = (2440) {\ displaystyle U \ mathbf {x} = {\ התחל {pmatrix} 2x_ {1} + 4x_ {2} + x_ {3} \\ 6x_ {2 } + 7x_ {3} \\ 49x_ {3} \ end {pmatrix}} = {\ התחל {pmatrix} 2 \\ 4 \\ 40 \ end {pmatrix}}}
    • x = (51,759−0,2940 / 49) {\ displaystyle \ mathbf {x} = {\ begin {pmatrix} 51,759 \\ - 0,29 \\ 40/49 \ end {pmatrix}}}
    • למרות ששיטה זו אולי לא נראית לך יעילה במיוחד (ואכן, פקטוריזציה של LU למערכות של שלוש משוואות אינה טובה יותר מצמצום שורה), מחשבים מצוידים היטב לבצע החלפת גב, כך שהתוצאות באמת מוצגות כמספר משוואות עולה.
FacebookTwitterInstagramPinterestLinkedInGoogle+YoutubeRedditDribbbleBehanceGithubCodePenWhatsappEmail