powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / BLAS - как инвертировать матрицу?
6 сообщений из 6, страница 1 из 1
BLAS - как инвертировать матрицу?
    #34668699
stan06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь может объяснить в простых словах/кинуть ссылку на примерчик:
как, используя BLAS и LAPACK вычислить обратную матрицу?
Вроде бы нужно использовать LU-разложение... но это все что я понял...
...
Рейтинг: 0 / 0
BLAS - как инвертировать матрицу?
    #34668744
mikhail_n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, одного LU-разложения (хоть мыслите то Вы в правильном направлении) недостаточно. После того как оно (LU) выполнено, надо попросить соответствующий пакет решить систему линейных уражнений с матрицей правых векторов, представляющих из себя единичную матрицу. Ответ и будет обратной матрицей.
...
Рейтинг: 0 / 0
BLAS - как инвертировать матрицу?
    #34668755
stan06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хоть кто-то откликнулся...
я понимаю, что LU factorisation это только первый шаг, и примерно понимаю что делать дальше... у меня даже примерчик есть из книжки по линейной алгебре...
Вопрос-то, как _именно_ привязать к этому делу эти чертовы BLAS и LAPACK...например, я не вижу вообще в этих библиотеках отдельной процедуры для LU разложения... только сказано, что оно _используется_ внутри процедур для решения систем лин.ур-ний.
Т.е. нет ли тут кого, кто конкретно с этими библиотеками работает?
...
Рейтинг: 0 / 0
BLAS - как инвертировать матрицу?
    #34671442
mikhail_n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Должен признаться что сам с этими пакетами не работал, но принимал участие в написании подобных. Так в нашем пакете была возможность вызова процедуры решения системы линейных алгебраических уравнений методом полного (бывает ещё и incomplete) LU разложения с возможностью передачи в процедуру не одного вектора правой части, а целой матрицы правых частей. Физически это соответствует тому, что Вы хотите решить не одну, а сразу несколько систем линейных уравнений с одной и той же матрицей, но разными правыми частями. Вообще то я бы ожидал что такая возможность существует и в BLAS и в LAPACK. Посмотрите внимательнее. Если это так, то подавайте на вход в соответствующую процедуру в качестве матрицы правых частей единичную матрицу - тогда на выходе в качестве решения получите матрицу обратную Вашей матрице. Если такой возможности в этих пакетах нет (что было бы странно), то обязательно должен быть режим в котором процедура выполняет только LU-разложение. Вызывайте процедуру в этом режиме один раз - она разложит матрицу на произведение нижнедиагональной и верхнедиагональной. Затем вызываете эту же процедуру в цикле n раз, но уже в режиме только решения СЛАУ и в качестве вектора правой части на i-том цикле итерации передаёте в процедуру вектор все элементы которого за исключением i-того нули, а i-тый равен единице. Это другая альтернатива. Посмотрите повмнимательней на интерфеис процедуры и почитайте описание входных/выходных параметров - Вам должно стать всё понятно.
...
Рейтинг: 0 / 0
BLAS - как инвертировать матрицу?
    #34671648
stan06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О!
Кажется, задребезжал свет...
вот имеется там

"LAPACK_GESV Procedures
This procedure computes the solution to a real system of linear equations
a * x = b
where a is an n by n matrix and x and b are n by nrhs matrices"

Т.о. если я подставлю в "b" единичную матрицу размером тем же, что и "а",
то "х" и должна по определению быть обратной к "а"...?

"Надо же, какие головы у них на болотах!" (с) Стругацкие :)
...
Рейтинг: 0 / 0
BLAS - как инвертировать матрицу?
    #34671766
mikhail_n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / BLAS - как инвертировать матрицу?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]