![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 14.01.2009
Сообщений: 312
|
![]()
Добрый день.
Не могу понять как сделать рекурсию к такой формуле..код не обязательно. мне бы словесно как объяснить. Формула: шор.bmp Как видно из нее, это обратная матрица. Смысл таков. матрица A, для которой находим обратную матрицу делится на подматрицы(соответственно на 4 части) B-1 - это обратная матрица к B, которая находится по формуле сложения и умножения подматриц матрицы A. понятно что B-1 получается также по такой формуле обратной матрицы, и А-1 тоже. Когда размер матриц дойдет до 2на2 то есть поделить их на подматрицы уже нельзя, то тогда находим обратную матрицу по обычной формуле через детерминант и союзную матрицу Понимаю, что написала филькину грамоту) надеюсь вы мне поможете объяснить лучше вопросами ![]()
Никому не поставить нас на колени! Мы лежали и будем лежать!
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 02.06.2011
Сообщений: 282
|
![]()
нужно просто найти обратную матрицу именно этим методом? просто есть много методов уже реализованных. могу поделиться если надо. и кстати, использовать рекурсию для обратной матрицы это очень плохо. сам писал такую функцию, загибается примерно на размерности 10 на 10. долго считает
|
![]() |
![]() |
![]() |
#3 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
![]()
а что делать если А11 вырожденная?
у метода имя есть? все оказалось еще печальней чем я думал. метод работает только для симметричных положительно определенных матриц. http://www.mgopu.ru/PVU/2.1/Recurs/Matrix/matr_ref.htm Последний раз редактировалось f.hump; 23.08.2011 в 23:51. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 14.01.2009
Сообщений: 312
|
![]()
Товарищи давайте не будем гнать на метод
![]() Мне надо решить им. Дошла до размерности 128 на 128 ![]() на 256 глохнет я делаю со степенями двойки, тк так проще делить на кубики. можно и по другому сделать. хватит и такого решения. То есть изначально условия такие квадратная матрица. степень двойки. Надо чтобы срабатывало на 1024*1024.на определитель не проверяю. Я бы и призадумалась сделать больше, если бы было время больше, но дел насущных было много, да и лень матушка ![]() Ну тык вот щас прога ругается на память..не могу понять в чем дело. Уважаемый f.hump вы мне говорили о памяти и тп, для меня это очень сложно пока(надеюсь), я написала как смогла, без перегрузок и тп..я буду ну очень признательна. если поможете исправить мой вариант, с минимумом вложений ![]() ![]() Код:
Никому не поставить нас на колени! Мы лежали и будем лежать!
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 14.01.2009
Сообщений: 312
|
![]()
Забыла написать ошибка на 256 размерности: Microsoft C++ exception: std::bad_alloc at memory location
Все что смогла понять, так это то, что некоторые подматрицы не определяются..то есть ссылка не неизвестность у них.. а почему не знаю ![]()
Никому не поставить нас на колени! Мы лежали и будем лежать!
Последний раз редактировалось Rekky; 24.08.2011 в 16:27. |
![]() |
![]() |
![]() |
#6 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
![]()
если честно, то мне лень разбираться в этой мурзилке.
поскольку вы не исправили ситуацию с выделением/освобождением памяти под матрицы, то не стоит удивляться проблемам с памятью. из того, что увидел: как я уже отметил, метод работает только для узкого круга матриц. да, для невырожденной матрицы он построит какую-то матрицу, но она не обязательно будет обратной. далее в "рекурсивных" целях вы делаете разбиение на подматрицы, вместо того, чтобы делать логическое разбиение делаете физическое разбиение создавая охренительное число временных матриц. И это будет быстро считать? - я, мягко говоря, сомневаюсь. самое забавное, это то, что вы даже обратную матрицу 2х2 неправильно считаете. Последний раз редактировалось f.hump; 24.08.2011 в 17:15. |
![]() |
![]() |
![]() |
#7 | ||
Форумчанин
Регистрация: 14.01.2009
Сообщений: 312
|
![]() Цитата:
![]() ![]() Цитата:
Я бы исправила, если бы понимала ![]() ![]()
Никому не поставить нас на колени! Мы лежали и будем лежать!
Последний раз редактировалось Rekky; 24.08.2011 в 17:25. |
||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача по рекурсии | Болванка | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 21.12.2010 16:01 |
Рекурсии на Паскале:) | Валера В. | Помощь студентам | 4 | 04.01.2010 17:05 |
Рекурсии | RAMA | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 18.10.2009 13:56 |
Рекурсии в pascal | Nogard | Помощь студентам | 1 | 22.06.2009 12:08 |
Рекурсии | Logan | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 13.05.2008 08:52 |