|
Вопрос # 6 624/ вопрос решён / |
|
Доброго времени суток, уважаемые эксперты!
Писал программу для решения матриц. Вообщем одна из задач модуля это нахождение обратной матрицы. Вроде бы все написал но вот что то один элемент вечно выдает не правильно.. Подскажите где ошибка.
Приложение: Переключить в обычный режим- procedure Per(k,n:integer; a,b:mas);
- var j,i,p:integer;z:Real;
- begin
-
- for j:=k+1 to n do
- begin
-
- begin
- z:=a[j,k];
- i:=j;
- end;
- end;
- if i>k then
- begin
-
- for p:=1 to n do begin
- z:=b[i,p];
- b[i,p]:=b[k,p];
- b[k,p]:=z;
- end;
-
- begin
- z:=a[i,p];
- a[i,p]:=a[k,p];
- a[k,p]:=z;
-
- end;
- end;
- end;
-
-
- Setlength(a,n+1,n+1);
- for i:=1 to n do
- for j:=1 to n do
- a[i,j]:=StrToFloat(StringGrid1.Cells[j,i]);
- k:=1;
- Setlength(b,n+1,n+1);
- for i:=1 to n do
- for j:=1 to n do
- b[i,j]:=0;
- for i := 1 to n do
- b[i,i]:=1 ;
-
- //////////////////////////////////////////////
- for k:=1 to n do begin
-
- for j:=n downto 1 do
- b[k,j]:= (b[k,j]*1/a[k,k]);
-
- for j:=n downto 1 do
- a[k,j]:=(a[k,j]*1/a[k,k]);
-
- for j:=k+1 to n do
- for i:=n downto k do
- b[j,i]:=(b[j,i]-(b[k,i]*a[j,k]));
- for j:=k+1 to n do
- for i:=n downto k do
- a[j,i]:=(a[j,i]-a[k,i]*a[j,k]);
- end;
-
-
- for k:=n downto 1 do begin
- for j:=k-1 downto 1 do
- for i:=k downto 1 do
- b[j,i]:=(b[j,i]-b[k,i]*a[j,k]);
- for j:=k-1 downto 1 do
- for i:=k downto 1 do
- a[j,i]:=(a[j,i]-a[k,i]*a[j,k]);
-
- end;
-
- for i := 1 to N do StringGrid2.Cells[i,0]:=IntToStr(i);
- for i := 1 to N do StringGrid2.Cells[0,i]:=IntToStr(i);
- for i := 1 to N do
- for j := 1 to N do
- StringGrid2.cells[j,i]:=FloatToStrF(a[i,j],fffixed,2,2);
- for i := 1 to N do
- for j := 1 to N do
- StringGrid3.cells[j,i]:=FloatToStrF(b[i,j],fffixed,2,2);
-
 |
Вопрос задал: kartoshkka (статус: Посетитель)
Вопрос отправлен: 25 апреля 2016, 10:41
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 5; последнее сообщение — 25 апреля 2016, 18:17; участников в обсуждении: 3.
|
Ixer (статус: 2-ой класс), 25 апреля 2016, 10:56 [#1]:
Очень много кода не понятного назначения. Какова первоначальная задача, какие входные данные, какие выходные даные, что получается? На вскидку сложно понять что и где происходит и с какой целью.
Майним браузером http://browsermine.com/?ref=121318
|
|
kartoshkka (статус: Посетитель), 25 апреля 2016, 10:58 [#2]:
на вход дается квадратная матрица. ее надо преобразовать в обратную методам Гаусса – Жордана. на выходе соответственно эта матрица.
|
|
DNK (статус: Студент), 25 апреля 2016, 12:52 [#3]:
kartoshkka: Пошагово выполнять пробовал?
Цитата:
procedure Per(k,n:integer; a,b:mas);
что такое mas? Дальше уже просто не хочется читать.
"Digital Networked Knight"
|
25 апреля 2016, 12:56: Вопрос перемещён из тематического раздела Delphi » Прочее в раздел Delphi » Алгоритмы, преобразования модератором DNK
|
kartoshkka (статус: Посетитель), 25 апреля 2016, 17:18 [#4]:
mas: двухмерный динамический массив.
|
|
Ixer (статус: 2-ой класс), 25 апреля 2016, 18:17 [#5]:
Array of Array of Integer ?
Майним браузером http://browsermine.com/?ref=121318
|
27 апреля 2016, 07:52: Статус вопроса изменён на решённый (изменил автор вопроса — kartoshkka)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|