Консультация № 189404
18.05.2016, 16:36
0.00 руб.
18.05.2016, 17:44
0 0 0
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Помогите в делфи решить СЛУ методом Гаусса, очень срочно нужно, вот примерный код
[code lang=pascal h=200]begin
n:=StrToInt(Edit1.Text) ;//строки

for i := 1 to n do //Коэффициенты
for j:= 1 to n do
a[i,j]:= StrToFloat(StringGrid1.Cells[i,j]);
for i:=1 to n do
b[i]:= StrToFloat(StringGrid1.Cells[i,n]);
showmessage('a[i,j]= '+FloatToStr(a[i,j]));

For k:=1 to n-1 do
For i:=k+1 to n do
begin
l[i,k]:=a[i,k]/a[k,k];
b[i]:=b[i]-l[i,k]*b[k];
for j:=k+1 to n do
begin
a[j,i]:=0;
a[i,j]:=a[i,j]-l[i,k]*a[k,j];

StringGrid1.Cells[i,j]:=FloatToStr(a[i,j]);
end;
showmessage('!!!');
end;

x[n]:= b[n]/a[n,n];
for i:=1 to n do
for j:=1 to n do
StringGrid1.Cells[i,j]:=FloatToStr(a[i,j]);
x[n]:=b[n]/a[n,n];

For k:=n-1 downto 1 do
begin
sum:=0;
for j:=k+1 to n do sum:=sum+a[k,j]*x[j];
x[k]:=(b[k]-sum)/a[k,k];
end;
showmessage('x[n]='+FloatToStr(x[n]));

//Вывод результата
for i:=1 to n do
StringGrid2.Cells[0,i-1]:=FloatToSTr(x[i]);

A[1,i]:=StrToFloat(StringGrid1.Cells[1,i]);
for j:=1 to n do
StringGrid2.Cells[1,j]:=FloatToStr(A[1,j]);
[/code]

Обсуждение

Форма ответа