реклама на сайте
подробности

 
 
> Быстрые алгоритмы нахождения обратной матрицы
Grizzzly
сообщение May 16 2016, 20:59
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Подскажите, пожалуйста, самый быстрый алгоритм для нахождения обратной матрицы небольшого размера (6x6), разреженностью или симметрией не обладает.

Спасибо.

P.S. Или способ решения переопределенных линейных систем уравнений (8 уравнений, 6 неизвестных), обладающий наименьшей вычислительной сложностью.

Сообщение отредактировал Grizzzly - May 16 2016, 21:38
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
iiv
сообщение May 17 2016, 20:44
Сообщение #2


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Цитата(Grizzzly @ May 17 2016, 02:59) *
P.S. Или способ решения переопределенных линейных систем уравнений (8 уравнений, 6 неизвестных), обладающий наименьшей вычислительной сложностью.

как я понимаю, исходная задача именно эта, а 6х6 получилась решением наименьших квадратов.

Если таки 8х6 решать, то надо сделать для этой матрицы QR разложение с выбором ведущего столбца, можно сделать даже Грамм-Шмидтом, тогда алгоритм будет помещаться в 5-6 строк. Если на в R на каком-то шаге на диагонали получаемое число будет меньше чем первое в некоторое эпсилон, которое у Вас больше ошибки входных данных, то Вам надобно регуляризовать, так как иначе получится на выходе лажа.

Самым кондовым методом тогда будет оборвать QR как только на диагонали будет такое, и получить Q R_r, где Q матрица 8хr, а R_r матрица rх6 размеров. Для транспонированной R_r повторить разложение, но до конца, получив Q P_2 R Q_r P_1, где P - матрицы перестановки. Если есть возможность не писать, а попользовать лапак, то просто вызвать DGESVD из оного и занулить не нужные сингулярные значения и решить именно так, но, лапак не на всех платформах компилится, а то, что я предложил, при необходимости в атмегу даже засунуть можно, а вот DGESVD уже точно не засунешь sm.gif

Если Вы до этого никогда не писали софт по линейной алгебре, то самопально написанный аогоритм Грамма-Шмидта или Хаусхолдера с перестановками и всем тем добром, что я написал, точно проиграет по скорости лапаку, хотя арифметическая сложность сингулярного разложения существенно выше Грамма-Шмидта или Хаусхолдера, это утверждение много раз мной было проверенно на куче как физтеховских, так и немецких студентах sm.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Grizzzly   Быстрые алгоритмы нахождения обратной матрицы   May 16 2016, 20:59
- - thermit   Цитата(Grizzzly @ May 16 2016, 23:59) Под...   May 16 2016, 22:11
|- - Grizzzly   Цитата(thermit @ May 17 2016, 01:11) Гаус...   May 17 2016, 05:23
|- - Maverick   Цитата(Grizzzly @ May 17 2016, 08:23) по...   May 17 2016, 08:46
|- - Grizzzly   Цитата(Maverick @ May 17 2016, 12:46) пос...   May 17 2016, 09:48
|- - Maverick   Цитата(Grizzzly @ May 17 2016, 12:48) дл...   May 17 2016, 10:10
|- - Grizzzly   Цитата(Maverick @ May 17 2016, 13:10) дум...   May 17 2016, 11:54
- - thermit   Цитатаiiv: Если Вы до этого никогда не писали софт...   May 17 2016, 21:48
|- - iiv   Цитата(thermit @ May 18 2016, 03:48) Если...   May 18 2016, 09:25
|- - thermit   Цитата(iiv @ May 18 2016, 12:25) ТС об об...   May 18 2016, 10:12
- - Swup   Вот интересная статья. Используется некоторая опти...   May 20 2016, 08:06
|- - Grizzzly   Цитата(Swup @ May 20 2016, 11:06) Вот инт...   May 21 2016, 21:37
- - serjj   Что-то не совсем понял исходную задачу. Ваша систе...   Jun 17 2016, 20:19
|- - Grizzzly   Цитата(serjj @ Jun 18 2016, 00:19) Что-то...   Jun 18 2016, 21:15
- - serjj   ЦитатаP.S. Задача свелась к чисто вещественной. Л...   Jun 19 2016, 10:30
- - Grizzzly   Цитата(serjj @ Jun 19 2016, 13:30) Любопы...   Jun 19 2016, 20:56


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 03:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.0285 секунд с 7
ELECTRONIX ©2004-2016