2.10: Факторизація LU
LUФакторизація матриці передбачає запис даної матриці у вигляді добутку нижньої трикутної матриці,L яка має основну діагональ, що складається повністю з них, і верхньої трикутної матриціU у вказаному порядку. Це версія обговорюється тут, але іноді буває, щоL має номери, відмінні від 1 вниз по головній діагоналі. Це все ще корисна концепція. LЙде з «нижнім», аU з «верхнім».
Виявляється, багато матриць можна записати таким чином, і коли це можливо, люди захоплюються гладкими способами вирішення системи рівнянь,AX=B. Саме з цієї причини потрібно вивчитиLU факторизацію. Вона дозволяє працювати тільки з трикутними матрицями. Виявляється, для отриманняLU факторизації потрібно приблизно вдвічі менше операцій, ніж для пошуку рядка зменшеної форми ешелону.
Спочатку слід зазначити, що не всі матриці маютьLU факторизацію і тому ми підкреслимо прийоми її досягнення, а не формальні докази.
Чи можете ви написати[0110] у формі,LU як тільки що описано?
Рішення
Для цього вам знадобиться[10x1][ab0c]= [abxaxb+c]=[0110].
Тому,b=1 аa=0. також, з нижніх рядків,xa=1 що не може статися і матиa=0. Тому ви не можете записати цю матрицю у вигляді Вона не маєLU факторизації. Це те, що ми маємо на увазі вище, кажучи, що метод не вистачає загальності.
Тим не менш, метод часто надзвичайно корисний, і ми опишемо нижче багато методів, які використовуються для створенняLU факторизації, коли це можливо.
ПошукLU факторизації шляхом інспекції
Які матриці маютьLU факторизацію? Виявляється це ті, чиї рядно-ешелонові форми можна домогтися без перемикання рядів. Іншими словами, матриці, які передбачають використання рядкових операцій типу 2 або 3 для отримання форми рядка-ешелону.
ЗнайдітьLU факторизаціюA=[120213212340].
Рішення
Один із способів знайтиLU факторизацію - просто шукати її безпосередньо. Вам потрібно
[120213212340]=[100x10yz1][adhj0bei00cf].
Потім множивши їх, ви отримаєте, [adhjxaxd+bxh+exj+iyayd+zbyh+ze+cyj+iz+f] і так ви можете тепер сказати, що різні величини рівні. З першого стовпця потрібноa=1,x=1,y=2. Тепер перейти до другого стовпця. Вамd=2,xd+b=3b=1,yd+zb=3 так потрібноz=−1. з третього стовпця,h=0,e=2,c=6. Тепер з четвертого стовпця,j=2,i=−1,f=−5. Таким чином,LU факторизація є[1001102−11][1202012−1006−5]. Ви можете перевірити, чи правильно ви отримали це просто множивши ці два.
LUФакторизація, Метод множника
Пам'ятайте, що для того,A щоб матриця була записана у форміA=LU, ви повинні вміти зводити її до своєї рядково-ешелонової форми без зміни рядків. Наступний метод дає процес обчисленняLU факторизації такої матриціA.
ЗнайдітьLU факторизацію для[123231−23−2]
Рішення
Запишіть матрицю як наступний твір. [100010001][123231−23−2]
У матриці праворуч почніть з лівого рядка і обнуліть записи нижче верхньої частини, використовуючи операцію рядка, яка передбачає додавання кратного рядка до іншого рядка. Ви робите це і також оновлюєте матрицю зліва, щоб товар був незмінним. Ось перший крок. Візьміть−2 раз верхній ряд і додайте до другого. Потім візьміть2 раз верхній ряд і додайте до другого в матрицю зліва. [100210001][1230−1−5−23−2]Наступний крок - зайняти2 раз верхній ряд і додати до нижнього в матриці праворуч. Для того, щоб товар був незмінним, ви розміщуєте в лівому нижньому кутку в матриці зліва. Таким чином, наступний крок дає[100210−201][1230−1−5074] Далі зайняти7 раз середній ряд праворуч і додати до нижнього ряду. Оновлення матриці зліва аналогічно тому, що було зроблено раніше,[100210−2−71][1230−1−500−31] на цьому етапі зупиніться. Ви закінчили.
Щойно описаний метод називається методом множника.
Розв'язування систем за допомогоюLU факторизації
Одна з причин, чому люди піклуються проLU факторизацію, це дозволяє швидко вирішувати системи рівнянь. Ось приклад.
Припустимо, ви хочете знайти рішення для[123243111230][xyzw]=[123].
Рішення
Звичайно, один із способів - написати доповнену матрицю і відшліфувати. Однак це передбачає більше операцій рядків, ніж обчисленняLU факторизації, і виявляється, щоLU факторизація може дати рішення швидко. Ось як. Далі наведеноLU факторизацію матриці. [123243111230] = [100410101][12320−5−11−7000−2].
ДавайтеUX=Y і розглянемоLY=B, де в даному випадку,B=[1,2,3]T. Таким чином [100410101][y1y2y3]=[123], що дає дуже швидко, щоY=[1−22] .
Тепер можна знайти,X вирішившиUX=Y. Таким чином, в даному випадку,[12320−5−11−7000−2][xyzw]=[1−22] який даєX=[−35+75t95−115tt−1],t∈R.
Обґрунтування методу мультиплікатора
Чому метод множника працює для знаходженняLU факторизації? Припустимо,A це матриця, яка має властивість, для якої форма рядка-ешелонA може бути досягнута без перемикання рядків. Таким чином, кожен рядок, який замінюється за допомогою цієї операції рядка при отриманні форми рядка-ешелону, може бути змінений за допомогою рядка, який знаходиться над ним.
LДозволяти нижню (верхню) трикутну матрицюm×m, яка має ті, що знаходяться вниз по головній діагоналі. ПотімL−1 також є нижня (верхня) трикутна матриця, яка має ті, що знаходяться вниз по головній діагоналі. У випадку,L який має форму,L=[1a11⋮⋱an1] де всі записи дорівнюють нулю, за винятком лівого стовпця та основної діагоналі, це також випадок, якийL−1 отримується простимL множенням кожного запису нижче основної діагоналі в Lс−1. Те саме вірно, якщо один ненульовий стовпчик знаходиться в іншій позиції.
- Доказ
-
Розглянемо звичайну настройку для знаходження зворотного[LI]. Потім кожна операція рядка робиться для зменшенняL до рядка зменшеної форми ешелону призводить до зміни лише записівI нижче основної діагоналі. В особливому випадкуL заданого в(???) або єдиному ненульовому стовпчику знаходиться в іншій позиції, множення на,−1 як описано в лемі, явно призводить доL−1.
Для простої ілюстрації останньої заяви,[1001000100100a1001]→[1001000100100010−a1]
Тепер нехайA будеm×n матриця, скажімоA=[a11a12⋯a1na21a22⋯a2n⋮⋮⋮am1am2⋯amn] і припустимо,A може бути рядок зменшена до верхньої трикутної форми, використовуючи тільки рядок операції 3. Таким чином, зокрема,a11≠0. Помножити ліворуч наE1=[10⋯0−a21a111⋯0⋮⋮⋱⋮−am1a110⋯1] Це добуток елементарних матриць, які вносять зміни лише в першому стовпчику. Це рівнозначно−a21/a11 зняттю разів першого ряду і додаванню до другого. Потім−a31/a11 беремо раз перший ряд і додаємо до третього і так далі. Коефіцієнти в першому стовпці наведеної вище матриці є множниками. Таким чином, результат має виглядE1A=[a11a12⋯a′1n0a′22⋯a′2n⋮⋮⋮0a′m2⋯a′mn] За припущенням,a′22≠0 і тому можна використовувати цей запис для обнулення всіх записів під ним в матриці праворуч шляхом множення на матрицю виду,E2=[100E] деE [m−1]×[m−1]матриця формиE=[10⋯0−a′32a′221⋯0⋮⋮⋱⋮−a′m2a′220⋯1] Знову ж таки, записи в першому стовпці під 1 є множниками. Продовжуючи цей шлях, обнулення записів нижче діагональних записів, нарешті, призводить до того,Em−1En−2⋯E1A=U деU знаходиться верхній трикутний. КоженEj має всі вниз по основній діагоналі і нижче трикутної. Тепер помножте обидві сторони на зворотніEj у зворотному порядку.. Це даєA=E−11E−12⋯E−1m−1U Лемма2.10.1, це означає, що добуток тихE−1j є нижчою трикутною матрицею, що має всі вниз по головній діагоналі. .
Наведене вище обговорення і лема дає обґрунтування методу мультиплікатора. Вирази,−a21a11,−a31a11,⋯,−am1a11 позначені відповідноM21,⋯,Mm1 для збереження позначення, які були отримані при побудовіE1, є множниками. Тоді відповідно до леми, знайтиE−11 вас просто пишіть[10⋯0−M211⋯0⋮⋮⋱⋮−Mm10⋯1] Подібні міркування застосовуються до іншого.E−1j. Таким чином,L є добутком форми[10⋯0−M211⋯0⋮⋮⋱⋮−Mm10⋯1]⋯[10⋯001⋯0⋮0⋱⋮0⋯−Mm[m−1]1] кожен фактор, що має максимум один ненульовий стовпець, положення якого рухається зліва на праворуч при скануванні вищевказаного добутку матриць зліва направо. З того, що ми знаємо про ефект множення зліва на елементарну матрицю, випливає, що вищевказаний твір має вигляд.[10⋯00−M211⋯00⋮−M32⋱⋮⋮−M[m−1]1⋮⋯10−Mm1−Mm2⋯−Mm[m−1]1]
У словах, починаючи з лівого стовпця і рухаючись до правого, ви просто вставляєте, у відповідне положення в матриці ідентичності,−1 раз множник, який був використаний для обнулення запису в цьому положенні нижче основної діагоналі,A, зберігаючи при цьому основна діагональ, яка повністю складається з них. ЦеL.