С Новым годом! Форум программистов, компьютерный форум, киберфорум
Численные методы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/163: Рейтинг темы: голосов - 163, средняя оценка - 4.56
1 / 1 / 2
Регистрация: 02.11.2017
Сообщений: 62

Нахождение обратной матрицы методом LU-разложения

27.04.2018, 22:15. Показов 31220. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
привет всем вот не могу найти теорию по этому вопросу
может у кого-то найдется пример или алгоритм нахождения был бы очень благодарен
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.04.2018, 22:15
Ответы с готовыми решениями:

Нахождение (вычисление) обратной матрицы после LU разложения
Здравствуйте, нужна ваша помощь! Нужно обратить матрицу методом разложения на две треугольные. Разложить - разложил, вот код: ...

Нахождение обратной матрицы методом Гаусса
Доброго времени суток! На просторах интернета нашел исправный код на языке C++ для нахождения обратной матрицы методом Гаусса. Мне...

Нахождение обратной матрицы методом Гаусса
Помогите плиз! ни как не могу понять где ошибка: при вводе матрицы 6 16 12 0 1 3 11 2 3 6 3 2 -20 -10 5 4 получается ...

13
2891 / 1926 / 208
Регистрация: 05.06.2011
Сообщений: 5,638
28.04.2018, 07:40
То есть, среди 18300 результатов выдачи гугла по строке «LU разложение матрицы» нет ни примера, ни алгоритма? Позвольте вам не поверить.
1
1 / 1 / 2
Регистрация: 02.11.2017
Сообщений: 62
28.04.2018, 07:42  [ТС]
iifat, мне нужно именно нахождения обратной матрицы этим методом
а я честно не нашел годного примера или алгоритма
0
Эксперт по математике/физике
11066 / 7367 / 3989
Регистрация: 14.01.2014
Сообщений: 16,799
28.04.2018, 09:16
https://yandex.ru/search/?lr=4... 0%B5%D1%80
Здесь на форуме тоже была эта тема, смотрите в подвале

Добавлено через 29 минут
Я понял Ваше затруднение LU - разложение матрицы А практически не используется для обращения матрицы (как не очень эффективное). Чтобы найти обратную матрицу А-1, надо n раз решить СЛАУ: https://www.cyberforum.ru/cgi-bin/latex.cgi?LUA_i^{-1}=E_i для каждого столбца обратной матрицы (https://www.cyberforum.ru/cgi-bin/latex.cgi?E_i - столбец с одной единицей на i - строке). Алгоритм трехэтапный:
1) Решаем https://www.cyberforum.ru/cgi-bin/latex.cgi?LY_i=E_i, где https://www.cyberforum.ru/cgi-bin/latex.cgi?Y_i=UA_i^{-1}
2) Решаем https://www.cyberforum.ru/cgi-bin/latex.cgi?UA_i^{-1}=Y_i
3) Собираем все столбцы https://www.cyberforum.ru/cgi-bin/latex.cgi?A_i^{-1} в одну матрицу https://www.cyberforum.ru/cgi-bin/latex.cgi?A^{-1}
1
 Аватар для palva
4277 / 2969 / 693
Регистрация: 08.06.2007
Сообщений: 9,924
Записей в блоге: 5
28.04.2018, 09:24
Пишут две программы. Первая разлагает матрицу и помещает элементы матриц LU на место исходной матрицы. Диагональные единицы не хранятся и места оказывается достаточно. Кроме того в целом векторе длины n хранится информация о перестановках строк, которые пришлось делать, чтоб не получилось деления на нуль.

Второй этап (обращение) это три шага: обращение U обращение L и перемножение результатов: https://www.cyberforum.ru/cgi-bin/latex.cgi?U^{-1}L^{-1}. Тоже все делается без использования дополнительной памяти. В самом конце переставляются строки в соответствии с информацией, которая хранилась в целом векторе.
1
Эксперт по математике/физике
11066 / 7367 / 3989
Регистрация: 14.01.2014
Сообщений: 16,799
28.04.2018, 09:33
palva, Проблема ещё в том, что обращение L и U матриц тоже не такая простая задача (она решается примерно также, как я указал выше)
1
 Аватар для palva
4277 / 2969 / 693
Регистрация: 08.06.2007
Сообщений: 9,924
Записей в блоге: 5
28.04.2018, 11:04
Разве непростая задача? Обратим, например L.
https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix}l_{11}&0&0\\l_{21}&l_{22}&0\\l_{31}&l_{32}&l_{33}\end{pmatrix}\begin{pmatrix}x_{11}&0&0\\x_{21}&x_{22}&0\\x_{31}&x_{32}&x_{33}\end{pmatrix}=\begin{pmatrix}1&0&0\\0&1&0\\0&0&1\end{pmatrix}
Система
https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases}l_{11}x_{11}=1\\<br />
l_{21}x_{11}+l_{22}x_{21}=0\\<br />
l_{22}x_{22}=1\\<br />
l_{31}x_{11}+l_{32}x_{21}+l_{33}x_{31}=0\\<br />
l_{32}x_{22}+l_{33}x_{32}=0\\<br />
l_{33}x_{33}=1\\<br />
\end{cases}
Последовательно вычисляем самое правое x и ставим его на место соответствующего l.
Матрица U аналогично, только вычисления производятся начиная с последней строки. Кроме того реальные формулы в программе будут немного сложнее, поскольку одна из матриц имеет по диагонали единицы, которые фактически не хранятся в памяти. Таким образом обе матрицы располагаются на месте исходной матрицы. Ну а уж перемножение этих матриц это задача обратная задаче разложения. И ТС, не имеющий проблем с разложением, успешно справится и с перемножением.

Добавлено через 16 минут
Цитата Сообщение от palva Посмотреть сообщение
В самом конце переставляются строки в соответствии с информацией, которая хранилась в целом векторе.
Здесь извините, был не прав. В обращенной матрице переставляются уже столбцы, а не строки.

Добавлено через 4 минуты
Цитата Сообщение от palva Посмотреть сообщение
Последовательно вычисляем самое правое x и ставим его на место соответствующего l.
Непонятно получилось. Последовательно перебираем уравнения и из каждого вычисляем самое правое неизвестное https://www.cyberforum.ru/cgi-bin/latex.cgi?x
1
Эксперт по математике/физике
11066 / 7367 / 3989
Регистрация: 14.01.2014
Сообщений: 16,799
28.04.2018, 11:12
Уважаемый palva, я имел в виду как раз такой алгоритм, который сводится к решению СЛАУ, который не очень мне нравится. А по идее должны быть более эффективные алгоритмы обращения матриц L и U, но они куда сложнее и сводятся к так называемой декомпозиции матриц L и U (представление в виде сумм более элементарных матриц)
1
 Аватар для palva
4277 / 2969 / 693
Регистрация: 08.06.2007
Сообщений: 9,924
Записей в блоге: 5
28.04.2018, 11:21
Ну как... Я же представил алгоритм обращения матрицы L. У меня правда представлена только верхушка матрицы L из трех строк. Но по тем же формулам можно вычислять и дальше. Обращение, естественно, немного сложнее, чем решение. Решение системы это два этапа: последовательно решаем систему с матрицей U, а потом с матрицей L. А обращение это три этапа: обращаем L, обращаем U и перемножаем.
Цитата Сообщение от mathidiot Посмотреть сообщение
и сводятся к так называемой декомпозиции матриц L и U
Матрицы L и U еще раз разлагаются на множители? Я о таком не слышал.
1
Эксперт по математике/физике
11066 / 7367 / 3989
Регистрация: 14.01.2014
Сообщений: 16,799
28.04.2018, 11:33
Нет, представляются в виде сумм. Точнее было это назвать суперпозицией
1
1 / 1 / 2
Регистрация: 02.11.2017
Сообщений: 62
28.04.2018, 11:48  [ТС]
mathidiot, да оно открывает не форум а самый поиск яндекс.. и да вот есть пример
может так надо??
Миниатюры
Нахождение обратной матрицы методом LU-разложения  
0
1 / 1 / 2
Регистрация: 02.11.2017
Сообщений: 62
28.04.2018, 11:50  [ТС]
palva, а посмотрите может так надо ??
Нахождение обратной матрицы методом LU-разложения
0
Эксперт по математике/физике
11066 / 7367 / 3989
Регистрация: 14.01.2014
Сообщений: 16,799
28.04.2018, 12:24
Цитата Сообщение от Bogdan____2017 Посмотреть сообщение
может так надо??
Да, это как раз то, о чем говорилось в посте #4 и в посте #7
1
 Аватар для palva
4277 / 2969 / 693
Регистрация: 08.06.2007
Сообщений: 9,924
Записей в блоге: 5
28.04.2018, 13:17
Цитата Сообщение от Bogdan____2017 Посмотреть сообщение
palva, а посмотрите может так надо ??
Так можно. А как надо, трудно сказать. А чем вас не устроило моё предложение?
Здесь требуется дополнительная память n^2 плавающих чисел. У меня n небольших целых чисел.
Трудоемкость можно оценить. Для этого подсчитаем число умножений. Здесь решение с U требует n(n+1)/2 умножений, решение с L еще n(n+1)/2, и для n столбцов, значит умножаем на n. Получается O(n^3). У меня вычисление каждого элемента при обращении имеет порядок O(n) умножить на количество элементов n^2. Получается тоже O(n^3). (Перемножение имеет порядок O(n^2) и его добавление не меняет оценки.)

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

Вообще у нас странный разговор получается. Вы просите алгоритм, я вам его даю. Вы на это не реагируете, не оцениваете его правильность и эффективность, а просите меня оценить другой алгоритм. А зачем вы тогда спрашивали?

Добавлено через 53 минуты
Цитата Сообщение от Bogdan____2017 Посмотреть сообщение
мне нужно именно нахождения обратной матрицы этим методом
Честно говоря, я отреагировал именно на эту просьбу, которую понял так, что решение системы этим методом вам не подходит. Если же вы передумали и хотите выполнить обращение матрицы при помощи решения системы, то я советую при написании программы решения предусмотреть, чтобы она находила решение для нескольких правых частей. Тогда вы можете поставить в качестве правых частей единичную матрицу и обратиться к программе решения всего один раз. В профессиональных численных пакетах несколько правых частей как раз предусматривается.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.04.2018, 13:17
Помогаю со студенческими работами здесь

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

Нахождение обратной матрицы методом Крамера
Нужна помощь. Есть программа,которая реализует нахождение обратной матрицы методом Крамера..Программа работает..Ищет все верно. НО одна...

Нахождение обратной матрицы методом Гаусса-Жордано
В данный момент проходим матрицы и у меня возникли сложности с нахождением обратной матрицы методом Гаусса-Жордано. Несколько раз уже...

Нахождение обратной матрицы методом алгебраических дополнений
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; //int menu(); void...

Вычисление определителя и нахождение обратной матрицы методом исключения
Нужна только блок-схема, а то в схемах я пень пнем. Вот код. Function input_error() As Integer ' err – идентификатор...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru