Обратная матрица!!!

cvetkovdmitri

Как можно оптимально сделать операцию нахождения обратной матрицы? Если матрица сама не влезает в память компа(или не хватает мощности компа). Про матрицу известно что она составлена из векторов определнного типа, и с помощью сдвигов этих векторов формируется эта матрица.

Helga87

Расскажи чуть больше о том, как формируется эта матрица. Потому что пока информации не хватает для того, чтобы посоветовать что-либо отличное от методов поиска обратной матрицы общего назначения
Еще немного скажи о размере матрицы. Чтобы можно было понять, мб проще взять комп в который эта матрица поместится?

evgen5555

Как-как, миноры вычисляй.

cvetkovdmitri

например вектор b=[1,2,3,4,0,0]
соответсвенно матрица скажем
( 2 3 4 0 0 1 )
( 3 4 0 0 1 2 )
R= ( 4 0 0 1 2 3 )
( 0 0 1 2 3 4 )
( 0 1 2 3 4 0 )
( 1 2 3 4 0 0 )
в этом случае мотрица шесть на шесть. Ну типа такого. Но у меня матрица имеет размер 24000*12000*6000*3000*... Т.е. ооч большой резмерности. Тут думаю с минорами как то сложно получится. Правда, я не пытался с помощью разбиения решить эту задачу.

bleyman

Хохо!
Запость в стади.
На чмах вроде как что-то ужасно похожее решалось чем-то типа хитрой прогонки. Ну или сам придумай что-нибудь =)

evgen5555



Тут думаю с минорами как то сложно получится.
Ничего подобного.
Советую отойти от компьютера и смоделировать решение на бумаге.

qsk78

Можно методом Гаусса, при этом матрицу разбивать на небольшие блоки и держать в памяти только один такой маленький блок.

evgen5555

Попробуй библиотеку boost, если решение, конечно, нужно на C++.

Helga87

Это практически матрица Теплица (Toeplitz Matrix). Для нее существует алгоритм решения уравнения за O(n^2) ( тут про него упоминается).

cvetkovdmitri

Спасибо вы мне ооч. помогли.
Оставить комментарий
Имя или ник:
Комментарий: