ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Решение СЛАУ методом Зейделя на Делфи(объяснения) |

27.12.2009, 01:01
|
|
Новичок
Регистрация: 14.06.2009
Сообщений: 2
Провел на форуме: 6092
Репутация:
0
|
|
Решение СЛАУ методом Зейделя на Делфи(объяснения)
Здравствуйте. Помогите пожалуйста. Есть программа для решения СЛАУ.
Код:
{$R *.dfm}
const n=4;
type matrix_a = array [1..n,1..n] of real;
type matrix_b = array [1..n] of real;
procedure TForm1.Button1Click(Sender: TObject);
var a: matrix_a; b,x,x0: matrix_b;
i,j,k,max_it:integer; s,eps: real; q: Boolean;
begin
max_it:=StrToInt(Edit1.Text);
eps:=StrToFloat(Edit2.Text);
Memo1.Clear;
for i:=1 to n do for j:=1 to n do a[i,j]:=StrToFloat(StringGrid1.Cells[i-1,j-1]);
for i:=1 to n do b[i]:=StrToFloat(StringGrid2.Cells[0,i-1]);
for i:=1 to n do begin x0[i]:=0; x[i]:=0; end;
j:=0; q:=False;
repeat
for i:=1 to n do begin
s:=0; for k:=1 to n do if i<>k then s:=s+a[k,i]*x[k];
x[i]:=(b[i]-s)/a[i,i];
end;
for i:=1 to n do
begin
if abs(x[i]-x0[i])>eps then q:=False else q:=True; x0[i]:=x[i]; end;
inc(j);
until (j=max_it) or q;
Memo1.Lines.Add('Итераций: '+IntToStr(j));
if q=False then Memo1.Lines.Add(IntToStr(j)+'Заданная точность не достигнута');
for i:=1 to n do Memo1.Lines.Add('x['+IntToStr(i)+']='+FloatToStrF(x0[i],ffgeneral,3,3));
end;
Не могли вы объяснить,что вводится в полях лейбл 1 и лейбл 2 и как оно считает это всё. Хотя бы примерные описания некоторых действий. Спасибо.
И как сделать так,чтобы оно в конце наглядно делало проверку этой системы (т.е. подставляло значения получившиеся) Буду очень благодарен за помощь.
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|