Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обратная матрица 
:(
    Опции темы
TeeT
Дата 18.6.2006, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 9.12.2005
Где: Нальчик

Репутация: нет
Всего: нет



подскажите пожалста оптимальный алгоритм нахождения обратной матрицы 
PM MAIL   Вверх
popovda
Дата 18.6.2006, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 9.6.2006
Где: Москва

Репутация: 1
Всего: 6



Для каких размеров? Для любых?  


--------------------
С уважением, Попов Д.А.
PM MAIL   Вверх
esperant0
Дата 18.6.2006, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Цитата(TeeT @ 18.6.2006,  18:32)
подскажите пожалста оптимальный алгоритм нахождения обратной матрицы

оптимальный по каким параметрам?


без этого уточнения ваш вопрос бессмыслен. 


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
popovda
Дата 18.6.2006, 21:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 9.6.2006
Где: Москва

Репутация: 1
Всего: 6



Если это идет как лабораторная работа или матрица небольшая, то можно воспользоваться модификацией метода Гаусса, например методом Ершова:
В нем для A[nxn] строится последовательность матриц A^(0),A^(1),A^(2)...,A^(n). Здесь верхний индекс после ^, нижний - _, как в TeX'е.

Где
A^(0) = A - E,

a[i,j]^(m)' = a) a[i,j]^(m-1), если i != m,
                 = б) 1, если i = m и i = j
                 = в) 0, если i = m и i != j

a[i,j]^(m) = a[i,j]^(m)' - (a[i,m]^(m)' * a[m,j]^(m-1)) / ( 1 + a[m,m]^(m-1)); i,j,m = 1,2,...,n

Штрихованные матрицы являются вспомогательными, а результат A^(n) == A^(-1).
Можете посмотреть метод Фадеева.

Если же задача серьезная, то надо использовать иные методы,весьма эффективные, например через LU-разложение или метод Холецкого. Методичка по LU
Или здесь, правда тут только Fortran 77 и C с него транслированный НИВЦ МГУ - Обращение матриц. А если Вам не критично самому писать метод, воспользуйтесь библиотеками 
IMSL или LAPACK. Там алгоритмы очень эффективны. Кроме того в инете можно скачать в djvu трехтомник Бартеньева
"ФОРТРАН для профессионалов. Математическая библиотека IMSL". Рекомендую.
Советую Уилкинсон, Раш - Алгоритмы линейной алгебры (- там на Алголе (считай Паскаль) ).
  

Это сообщение отредактировал(а) popovda - 18.6.2006, 21:07


--------------------
С уважением, Попов Д.А.
PM MAIL   Вверх
podval
Дата 19.6.2006, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Поиск по форуму рулит
http://forum.vingrad.ru/index.php?showtopic=37776 
PM WWW ICQ   Вверх
maxim1000
Дата 19.6.2006, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата(podval @  19.6.2006,  11:42 Найти цитируемый пост)
Поиск по форуму рулит

насколько я понял, вопрос не в реализации метода Гаусса, а в сравнении различных методов по какому-то критерию (кстати, ещё не указанному smile ) 


--------------------
qqq
PM WWW   Вверх
TeeT
Дата 19.6.2006, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 9.12.2005
Где: Нальчик

Репутация: нет
Всего: нет



esperant0
Цитата

оптимальный по каким параметрам?

без этого уточнения ваш вопрос бессмыслен.  


по скорости, 
матрицы большие порядка 10000х10000

Добавлено @ 13:43 
podval
Цитата

Поиск по форуму рулит


Пасибо

Добавлено @ 13:48 
popovda
Цитата

Если же задача серьезная, то надо использовать иные методы,весьма эффективные, например через LU-разложение или метод Холецкого. Методичка по LU


ThanX 
PM MAIL   Вверх
maxim1000
Дата 19.6.2006, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



ну ещё посмотреть на саму матрицу
возможно, для данной задачи она будет иметь какие-нибудь свойства, которые помогут ускорить обращение
например, тридиагональная матрица или разбиваемая на несколько квадратных меньшей размерности... 


--------------------
qqq
PM WWW   Вверх
maxim1000
Дата 28.12.2007, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



вопрос о подсчёте операций вынес в отдельную тему:
http://forum.vingrad.ru/forum/topic-189346.html


--------------------
qqq
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1176 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.