|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.01.2007, 22:28 | #1 |
Helper
Форумчанин
Регистрация: 10.12.2006
Сообщений: 109
|
Need help. Как получить обратную матрицу из исходной (разумеется, матрица nxn, где n - задается отдельно; n>3). Детерминант я нашел. Пусть он будет постоянной det. Матрица 'a'.
Кто может, помогите - нужен текст программы. Желательно - разжеванный - т.е. без экзотических компонентов, пуст и громоздко. Thanks. Я пошел от частного к общему взял матрицу 3х3 определитель=10 ответ -5 1 4 15 3 -8 25 9 -14) * 1/10 В скобках - союзная матрица procedure TForm1.Button2Click(Sender: TObject); var i1,j1,i,j,n:integer; x,x1:matr; d1:real; begin n:=3; x[1,1]:=3; //условие x[1,2]:=5; x[1,3]:=-2; x[2,1]:=1; x[2,2]:=-3; x[2,3]:=2; x[3,1]:=6; x[3,2]:=7; x[3,3]:=-3; for i:= 1 to n do for j:= 1 to n do begin //x[i,j]:=strtofloat(stringgrid1.cells[i,j]); x1:=x; for i1:= 1 to n do for j1:= 1 to n do begin if (i<i1) and (j>=j1) then x1[i,j]:=x[i+1,j]; if (j<j1) and (i>=i1) then x1[i,j]:=x[i,j+1]; if (j<j1) and (i<i1) then x1[i,j]:=x[i+1,j+1]; end; determinant(x1,n-1,d1); //d1 - ответ stringgrid3.cells[i,j]:=floattostr((power((-1),(i+j)))*d1); end; end; end. чего не так как надо? И СА-А-А-А-А-АМЫЙ главный вопрос - как программно найти минор n-мерной квадратной матрицы. Кто забыл - МИНОР - остаток матрицы после вычитания строки и столбца. В тексте прогри я попытался это осуществить. Но чего-то не сходится. ответ другой.
Глупых вопросов не бывает - бывают глупые ответы.
Последний раз редактировалось zetrix; 09.01.2007 в 18:26. |
06.01.2007, 08:38 | #2 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
Нахождение минора:
Код:
Последний раз редактировалось zetrix; 09.01.2007 в 18:26. |
06.01.2007, 18:49 | #3 |
Helper
Форумчанин
Регистрация: 10.12.2006
Сообщений: 109
|
Как говорится, Все гениальное - просто.
Надо было только несколько строчек переставить - а столько мучился. Спасибо огромное, Zetrix. о-паньки... чего-то не получается с обраной матрицей... может кто найдет ошибку? Код:
Глупых вопросов не бывает - бывают глупые ответы.
Последний раз редактировалось zetrix; 09.01.2007 в 18:27. |
07.01.2007, 14:50 | #4 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
как минимум
function Minor(x,y:integer):matr; var a : matr; n,i,j:integer; begin for i:=x to n do for j:=1 to n do a[i,j]:=a[i+1,j]; dec(N); //- это удали for j:=y to n do for i:=1 to N do a[i,j]:=a[i,j+1]; dec(n) end; это не верно, точнее не верно употреблять ДВАЖДЫ dec(n) (я-то писал для прямоугольной матрицы, а тут квадратная... Я так думаю ты так и не понял кода, что я привёл), надо только 1 раз, в конце! |
07.01.2007, 14:55 | #5 | |
Форумчанин
Регистрация: 20.12.2006
Сообщений: 135
|
Вот писал тоже:
Цитата:
writeln('Hello Dude!!!');
Последний раз редактировалось -=DeS=-; 07.01.2007 в 14:59. |
|
07.01.2007, 16:15 | #6 | ||
Helper
Форумчанин
Регистрация: 10.12.2006
Сообщений: 109
|
Цитата:
Эта штука удаляет строку (столбец) и сдвигает массив в сторону. Цитата:
Код:
Глупых вопросов не бывает - бывают глупые ответы.
Последний раз редактировалось zetrix; 07.01.2007 в 20:57. |
||
07.01.2007, 16:50 | #7 |
Форумчанин
Регистрация: 20.12.2006
Сообщений: 135
|
Куда добавить? Напиши нормальное ТЗ
writeln('Hello Dude!!!');
|
07.01.2007, 17:07 | #8 |
Helper
Форумчанин
Регистрация: 10.12.2006
Сообщений: 109
|
если ТЗ - это задание, то оно такое: к матрице nxn где n - задается отдельно (3<n<21) написать программу, авчисляющую обратную матрицу. Все.
Могу добавить тем, кто забыл как вычисляется обратная матрица: для начала создается союзная матрица. Затем каждый элемент союзной матрицы умножается на 1/определитель (детерминант) (в примере детерминант = 10 т.е. на 1/10) Союзная матрица вычисляется так: каждй элемент - определитель от минора этой же матрицы. Процедура нахождения определителя есть, минора - написана zetrix`ом. Теперь это все надо объединить, чтобы работало.
Глупых вопросов не бывает - бывают глупые ответы.
|
08.01.2007, 17:11 | #9 |
Пользователь
Регистрация: 08.12.2006
Сообщений: 36
|
Текст программы обращения матрици
Код:
Знание этого – Мудрость.
Умение этим пользоваться – Искусство. Последний раз редактировалось pinhead; 08.01.2007 в 17:19. |
08.01.2007, 17:26 | #10 |
Пользователь
Регистрация: 08.12.2006
Сообщений: 36
|
Продолжение
Код:
Модуль modul-смотри далее->>!!!
Знание этого – Мудрость.
Умение этим пользоваться – Искусство. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обратная польская нотация | Sexy Fox | Помощь студентам | 9 | 22.09.2011 14:57 |
Delfi7 обратная функция Char | mentholl | Помощь студентам | 5 | 03.06.2008 10:25 |
CreateFile - считывание дискеты в файл и обратная запись на нее... | kalexi | Win Api | 1 | 01.10.2007 19:56 |
Обратная польская нотация | Sexy Fox | Помощь студентам | 2 | 22.06.2007 13:27 |
Обратная связь | Oliany | PHP | 1 | 06.05.2007 23:40 |