Форум программистов, компьютерный форум, киберфорум
Алгебра, теория чисел
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для Simply me
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521

Найти обратную матрицу LU-факторизацией

10.04.2015, 06:48. Показов 2435. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Помогите, пожалуйста! Нужно найти обратную матрицу LU-факторизацией. LU-разложение нашла, а как из матриц L и U получить обратную матрицу, не знаю.
Нашла формулы на этом сайте: http://algorithmlib.org/lu_inverse
Там сказано, что все элементы A^(-1) можно получить из уравнений U*A^(-1)=L^(-1), L*A^(-1)=U^(-1)
Из первого я нашла только x[1][n],x[2][n],...,x[n][n]. Из второго ничего не получается найти, слишком много неизвестных.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.04.2015, 06:48
Ответы с готовыми решениями:

Найти матрицу Х из матричного уравнения (решать,используя обратную матрицу)
Ребят,помогите,пожалуйста сделать.Я вот делал,но неправильно.

найти обратную матрицу
файл с обратной матрицей вложен

Найти обратную матрицу
Требуется найти обратную матрицу матричным методом, НО ОБЯЗАТЕЛЬНО в целых числах, не используя дроби. Даже дается образец, как надо...

25
 Аватар для cmath
2525 / 1751 / 152
Регистрация: 11.08.2012
Сообщений: 3,349
10.04.2015, 17:21
А сама матрица-то где?
0
 Аватар для Simply me
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
10.04.2015, 19:01  [ТС]
Я хочу решиь в общем виде. Пока решаю для частного случая n=4. Расписала эти 2 системы с сайта. Получилось по 16 уравнений. Из первой системы нашла х14, х24, х34, х44. Из второй системы ничего не могу найти. На этом сайте из второй находят х21, используя х11, найденный, видимо, из первой системы. А у меня не получается найти х11.
0
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
11.04.2015, 03:27
Весь смысл в том, что когда LU-разложение найдено, решать ничего не надо. Остаётся просто считать по формулам, они там выписаны. Обратите внимание, что в формулах (1)-(3) элемент матрицы X определяется только по элементам своего столбца, стоящих ниже, или своей строки, стоящих правее. То есть, например, x_nn можно найти сразу. Через x_nn можно найти x_n,n-1. Через эти два - x_n,n-2. И так далее.
0
 Аватар для Simply me
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
11.04.2015, 12:27  [ТС]
А у меня все равно не получается Расписала первую систему для n=4. Нашла x14, x24, x34, x44. Больше ничего не находится. Раскрасила известные синим, неизвестные красным.
u[1][1]*x[1][1]+u[1][2]*x[2][1]+u[1][3]*x[3][1]+u[1][4]*x[4][1]=1 (1r,1c)
u[1][1]*x[1][2]+u[1][2]*x[2][2]+u[1][3]*x[3][2]+u[1][4]*x[4][2]=0 (1r, 2c)
u[1][1]*x[1][3]+u[1][2]*x[2][3]+u[1][3]*x[3][3]+u[1][4]*x[4][3]=0 (1r, 3c)
u[1][1]*x[1][4]+u[1][2]*x[2][4]+u[1][3]*x[3][4]+u[1][4]*x[4][4]=0 (1r, 4c)
0+u[2][2]*x[2][1]+u[2][3]*x[3][1]+u[2][4]*x[4][1]=l'[2][1] (2r, 1c)
0+u[2][2]*x[2][2]+u[2][3]*x[3][2]+u[2][4]*x[4][2]=1 (2r, 2c)
0+u[2][2]*x[2][3]+u[2][3]*x[3][3]+u[2][4]*x[4][3]=0 (2r,3c)
0+u[2][2]*x[2][4]+u[2][3]*x[3][4]+u[2][4]*x[4][4]=0 (2r,4c)
u[3][3]*x[3][1]+u[3][4]*x[4][1]=l'[3][1] (3r,1c)
u[3][3]*x[3][2]+u[3][4]*x[4][2]=l'[3][2] (3r, 2c)
u[3][3]*x[3][3]+u[3][4]*x[4][3]=1 (3r, 3c)
u[3][3]*x[3][4]+u[3][4]*x[4][4]=0 (3r, 4c)
u[4][4]*x[4][1]=l'[4][1] (4r, 1c)
u[4][4]*x[4][2]=l'[4][2] (4r, 2c)
u[4][4]*x[4][3]=l'[4][3] (4r, 3c)
u[4][4]*x[4][4]=1 (4r, 4c)
0
 Аватар для Simply me
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
14.04.2015, 16:30  [ТС]
Что я не так делаю?
Допустим, n=3.
Первая система:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\left (u_{11} u_{12} u_{13}\\ 0 u_{22} u_{23}\\0 0 u_{33} \right ) \left (x_{11} x_{12} x_{13}\\ x_{21} x_{22} x_{23}\\ x_{31} x_{32} x_{33} \right )=\left( 1 0 0 \\ l'_{21} 1 0\\l'_{31} l'_{32} 1 \right)
Вторая система:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\left (1 0 0\\ l_{21} 1 0\\l_{31} l_{32} 1 \right ) \left (x_{11} x_{12} x_{13}\\ x_{21} x_{22} x_{23}\\ x_{31} x_{32} x_{33} \right )=\left( u'_{11}  u'_{12} u'_{13}\\ 0 u'_{22} u'_{23}\\0 0 u'_{33} \right)

Не по теме:

Забыла, как в Latex пробелы поставить.


Из первой нашла x33, x23, x13. Как найти из второй x32 и x31? Известны l, u и третий столбец иксов. l', u' и остальные иксы неизвестны.
0
2899 / 1933 / 209
Регистрация: 05.06.2011
Сообщений: 5,687
14.04.2015, 17:31
Цитата Сообщение от Simply me Посмотреть сообщение
Забыла, как в Latex пробелы поставить
https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\begin{pmatrix}1&0&0\\l_{21}&1&0\\l_{31}&l_{32}&1\end{pmatrix}\begin{pmatrix}x_{11}&x_{12}&x_{13}\\x_{21}&x_{22}&x_{23}\\x_{31}&x_{32}&x_{33}\\\end{pmatrix}=<br />
ну и так далее (обрати внимание, после latex и перед /latex лучше перевести строку, а не то возникают непонятные фантомы).
Касательно x-ов: очевидно, первая строка матрицы U совпадает с первой же строкой матрицы X; вторая строка https://www.cyberforum.ru/cgi-bin/latex.cgi?x_{2j}=u'_{2j}-l_{2j}x_{1j}; третья аналогично.
1
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
14.04.2015, 18:23
В принципе, из первой системы всё находится. Умножаем третью строчку матрицы U на столбцы - находим третью строчку неизвестной матрицы. Умножаем вторую строчку и учитываем, что третья строчка матрицы X уже известна - находим вторую строчку матрицы Х. Потом первую. Навроде обратного хода метода Гаусса.

Только я не очень понимаю, зачем это делать. Если математически, A-1 = U-1L-1 - достаточно перемножить две матрицы, проще некуда. Если писать программу, я бы забил сами формулы, по которым вычисляются элементы матрицы X.
1
 Аватар для Simply me
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
14.04.2015, 19:02  [ТС]
Я все-таки не очень понимаю Как из моей системы найти? Мне кажется, из моей тоже можно получить все иксы:
u11*x11+u12*x21+u13*x31=1
u11*x12+u12*x22+u13*x32=0
u11*x13+u12*x23+u13*x33=0
0*x11+u22*x21+u23*x31=l'21
0*x12+u22*x22+u23*x32=1
0*x13+u22*x23+u23*x33=0
0*x11+0*x21+u33*x31=l'31
0*x12+0*x22+u33*x32=l'32
0*x13+0*x23+u33*x33=1

Из 9 ур-ния нашла х33. Из 6 ур-ния нашла х23. Из 3 ур-ния нашла х13. Больше ничего не находится. Из второй системы тоже ничего не находится:
х11=u'11
x12=u'12
x13=u'13
l21*x11+x21=0
l21*x12+x22=u'22
l21*x13+x23=u'23
l31*x11+l32*x21+x31=0
l31*x12+l32*x22+x32=0
l31*x13+l32*x23+x33=u'33

Отсюда ничего не получается найти хотя по идее из 2 системы находятся х32 и х31, затем из 1 находятся х22 и х21, затем из 2 - х21 и из первой х11.
0
2899 / 1933 / 209
Регистрация: 05.06.2011
Сообщений: 5,687
14.04.2015, 19:50
Таки, во-первых, напоминаю: пользование редактором формул — обязательно.
Во-вторых, таки не пойму, что за проблем.
Цитата Сообщение от Simply me Посмотреть сообщение
Из 9 ур-ния нашла х33. Из 6 ур-ния нашла х23. Из 3 ур-ния нашла х13
Ну и? А из 8, 5, 2 уравнений что найдёшь?
И, кстати, ты что, думаешь, x-ы в этих двух системах одинаковые? Нет же ж, сначала надо решить вторую, и её поставить в правую часть! https://www.cyberforum.ru/cgi-bin/latex.cgi?l'_{32}, к примеру, — это https://www.cyberforum.ru/cgi-bin/latex.cgi?x_{32} из второй системы.

Добавлено через 26 минут
Цитата Сообщение от helter Посмотреть сообщение
Если математически, https://www.cyberforum.ru/cgi-bin/latex.cgi?A^{-1} = U^{-1}L^{-1} - достаточно перемножить две матрицы, проще некуда
В сущности, так оно и происходит, только чуток поэкономнее по памяти и побыстрее. Берём единичную матрицу, решаем вторую систему — получаем на том же месте https://www.cyberforum.ru/cgi-bin/latex.cgi?L^{-1}. Берём её правой частью, решаем первую — получаем на том же месте https://www.cyberforum.ru/cgi-bin/latex.cgi?U^{-1}L^{-1}.
1
 Аватар для Simply me
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
15.04.2015, 06:07  [ТС]
Цитата Сообщение от iifat Посмотреть сообщение
ты что, думаешь, x-ы в этих двух системах одинаковые
Вот первая система:
https://www.cyberforum.ru/cgi-bin/latex.cgi?UA^{-1}=L^{-1}
Вот вторая система:
https://www.cyberforum.ru/cgi-bin/latex.cgi?LA^{-1}=U^{-1}
Я считаю, что иксы - одинаковые. Иксы - это компоненты https://www.cyberforum.ru/cgi-bin/latex.cgi?A^{-1} Если они не одинаковые, то получается в 2 раза больше неизвестных.
Цитата Сообщение от iifat Посмотреть сообщение
А из 8, 5, 2 уравнений что найдёшь?
Из 8 уравнения первой системы у меня не получается найти x32, потому что не понимаю, как найти l'32. l'32 встречается только в 8 уравнении первой системы. По идее находятся в таком порядке: (1)->x33, x23, x13, (2)->x32, x31, (1)->x22,x12, (2)->x21, (1)->x11.
0
2899 / 1933 / 209
Регистрация: 05.06.2011
Сообщений: 5,687
15.04.2015, 13:50
Как всё запущено.
Вот смотри:
Мы решаем уравнение https://www.cyberforum.ru/cgi-bin/latex.cgi?AX=E, решением коего является как раз обратная матрица. Для этого представляем матрицу https://www.cyberforum.ru/cgi-bin/latex.cgi?A в виде https://www.cyberforum.ru/cgi-bin/latex.cgi?A=LU. Вводим новую матрицу https://www.cyberforum.ru/cgi-bin/latex.cgi?Y=UX, подставляя, получаем https://www.cyberforum.ru/cgi-bin/latex.cgi?LY=E.
Теперь решаем сначала второе уравнение https://www.cyberforum.ru/cgi-bin/latex.cgi?LY=E, находим https://www.cyberforum.ru/cgi-bin/latex.cgi?Yпотом первое, https://www.cyberforum.ru/cgi-bin/latex.cgi?UX=Y с уже известным https://www.cyberforum.ru/cgi-bin/latex.cgi?Y — находим https://www.cyberforum.ru/cgi-bin/latex.cgi?X.
1
 Аватар для Simply me
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
15.04.2015, 19:37  [ТС]
iifat, просто я делала по формулам с этого сайта: http://algorithmlib.org/lu_inverse
Там сказано, что https://www.cyberforum.ru/cgi-bin/latex.cgi?A^{-1}=U^{-1}L^{-1} Дальше это равенство умножают на U и L, и получают 2 системы: https://www.cyberforum.ru/cgi-bin/latex.cgi?UA^{-1}=L^{-1} и https://www.cyberforum.ru/cgi-bin/latex.cgi?LA^{-1}=U^{-1}. Я пыталась из этих систем выразить иксы и не получалось. Сейчас попробовала сделать, как Вы сказали. Так действительно все иксы находятся
Вот так получилось для n=3:
https://www.cyberforum.ru/cgi-bin/latex.cgi?x_{33}=1/u_{33}\\x_{32}=-l_{32}/u_{33}\\x_{31}=(-l_{31}+l_{21}l_{32})/u_{33}\\x_{23}=-u_{23}x_{33}/u_{22}\\x_{22}=(1-u_{23}x_{32})/u_{22}\\x_{21}=-(l_{21}+u_{23}x_{31})/u_{22}\\x_{13}=-(u_{12}x_{23}+u_{13}x_{13})/u_{11}\\x_{12}=-(u_{12}x_{22}+u_{13}x_{32})/u_{11}\\x_{11}=(1-(u_{12}x_{21}+u_{13}x_{31}))/u_{11}\\
А переделать для общего случая - это уже дело техники
0
2899 / 1933 / 209
Регистрация: 05.06.2011
Сообщений: 5,687
16.04.2015, 04:17
Да, не повезло. Бред какой-то. Поищи чего другого.
0
 Аватар для Simply me
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
21.04.2015, 18:37  [ТС]
Реализовала обращение с помощью LU-разложения. Получается плохая точность для плохо обусловленных матриц. Решила сделать с выбором опорного элемента. Нашла L, U и P, такие что PA=LU. Из каких уравнений теперь найти обратную матрицу? Получается, A=P^(-1)*L*U. Думала, обозначить L1=P^(-1)*L. Тогда A=L1*U. Дальше хотела по аналогии с предыдущим случаем. Но так не получается. L1 не нижнетреугольная, а зависит от P, и предыдущие формулы не работают.
0
2899 / 1933 / 209
Регистрация: 05.06.2011
Сообщений: 5,687
22.04.2015, 04:00
Цитата Сообщение от Simply me Посмотреть сообщение
плохая точность для плохо обусловленных матриц
А то ж. Плохо обусловленные матрацы — гарантированная головная боль
Дальнейший, прости, бред читать не стану.
https://www.cyberforum.ru/cgi-bin/latex.cgi?PA=LU. что ещё нужно? Насколько помню, P — матрица перестановок не то строк, не то столбцов, не то тех и других. Обратная к ней — не то она же транспонированная, не то ещё чего-то простенькое. То бишь, идём по предлагаемой схеме, только в конце надо домножить слева на https://www.cyberforum.ru/cgi-bin/latex.cgi?P^{-1}, про которую уже всё сказал.
И научись же таки по-человечески писать формулы.
0
 Аватар для Simply me
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
22.04.2015, 16:03  [ТС]
iifat, у меня все равно не получается. Нашла матрицы P, L, U.

https://www.cyberforum.ru/cgi-bin/latex.cgi?AX=E\Rightarrow PAX=PE\Rightarrow LUX=PE

Ввожу замену: https://www.cyberforum.ru/cgi-bin/latex.cgi?Y=UX.

Из https://www.cyberforum.ru/cgi-bin/latex.cgi?LY=PE нахожу Y, из https://www.cyberforum.ru/cgi-bin/latex.cgi?UX=Y нахожу X. Но у меня Y находится неправильно и поэтому X получается , такой что https://www.cyberforum.ru/cgi-bin/latex.cgi?AX= [1 0 0; 0 0 1; 0 0 1] вместо единичной.
Y ищу по аналогии с предыдущим случаем.

https://www.cyberforum.ru/cgi-bin/latex.cgi?LY=E

https://www.cyberforum.ru/cgi-bin/latex.cgi?{y}_{11}=1\\{y}_{1j}=0, j=2,...,n\\{y}_{ij}=E_{ij}-\sum_{k=1}^{i-1} l_{ik}y_{kj}, i=2,...,n, j=1,...,n

Вот так решаю https://www.cyberforum.ru/cgi-bin/latex.cgi?LY=PE:

https://www.cyberforum.ru/cgi-bin/latex.cgi?{y}_{1j}={(PE)}_{1j}, j=1,...,n\\{y}_{ij}={(PE)}_{ij}-\sum_{k=1}^{i-1} l_{ik}y_{kj}, i=2,...,n, j=1,...,n

И Y неправильно находится.
0
2899 / 1933 / 209
Регистрация: 05.06.2011
Сообщений: 5,687
22.04.2015, 16:41
Вот так, навскидку, смысл в том, что https://www.cyberforum.ru/cgi-bin/latex.cgi?PE (https://www.cyberforum.ru/cgi-bin/latex.cgi?=P!) — не треугольная и так это не решится. Завтра повспоминаю. Ну, то бишь, общий смысл я уже сказал, а конкретности посмотрю.
0
 Аватар для Simply me
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
22.04.2015, 18:36  [ТС]
Спасибо, iifat, правильно считается обратная матрица. Я просто в коде по ошибке написала

https://www.cyberforum.ru/cgi-bin/latex.cgi?y_{1j}=(PE)_{ij} вместо

https://www.cyberforum.ru/cgi-bin/latex.cgi?y_{1j}=(PE)_{1j}

Исправила. Теперь правильно считает для хорошо обусловленных матриц. Жаль только, что для плохо обусловленной плохо.
0
2899 / 1933 / 209
Регистрация: 05.06.2011
Сообщений: 5,687
23.04.2015, 04:22
Цитата Сообщение от iifat Посмотреть сообщение
смысл в том, что https://www.cyberforum.ru/cgi-bin/latex.cgi?PE (https://www.cyberforum.ru/cgi-bin/latex.cgi?=P!) — не треугольная и так это не решится
Да, это я чушь написал.
Цитата Сообщение от Simply me Посмотреть сообщение
правильно считается
С чем тебя и поздравляю
Цитата Сообщение от Simply me Посмотреть сообщение
Жаль только, что для плохо обусловленной плохо
Ну, повторюсь, на то они и плохо обучловленные чтоб с ими было всё плохо. Единственннное, что с ними можно хоть как-то сделать — перейти к рациональным многократной точности. Это если хотя б исходная матрица задана без погрешностей.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.04.2015, 04:22
Помогаю со студенческими работами здесь

найти обратную матрицу
чего-то под вечер завис не могу найти обратную матрицу, это уже моя где-то десятая за вечер, подвис как-то помогайте 2 5 4 1...

Найти обратную матрицу
Найти обратную матрицу {A}^{-1} mod31 A=\begin{pmatrix} 3 \ 7 \\ 5 \ 2 \\ \end{pmatrix}

Найти матрицу, обратную данной
\begin{pmatrix} 1 &amp; -1 &amp; 1\\ 0 &amp; 1 &amp; 0 {a}^{2}-1 &amp; 1 &amp; {a}^{2} \end{pmatrix}

Найти матрицу, обратную к матрице
Помогите пожалуйста найти матрицу, обратную к матрице С, если С = (А-2В) (А-3Е), ​​если: А= -1 -2 3 4 0 2 0 1 2 ...

Найти матрицу, обратную к данной
Найти матрицу, обратную к данной. Правильность вычисления обратной матрицы проверить, используя матричное умножение.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru