Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: 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 и как оно считает это всё. Хотя бы примерные описания некоторых действий. Спасибо.
И как сделать так,чтобы оно в конце наглядно делало проверку этой системы (т.е. подставляло значения получившиеся) Буду очень благодарен за помощь.
|
|
|

27.12.2009, 01:02
|
|
Участник форума
Регистрация: 27.10.2008
Сообщений: 278
Провел на форуме: 1495545
Репутация:
242
|
|
http://www.srcc.msu.su/num_anal/lib_na/cat/as/ass2r.htm
|
|
|

27.12.2009, 01:06
|
|
Новичок
Регистрация: 14.06.2009
Сообщений: 2
Провел на форуме: 6092
Репутация:
0
|
|
Ого,спасибо за оперативный ответ,но я там почти ничего не понял. По скольку делфи у нас очень "хорошо" преподавалось и я очень "хорошо" всё это усвоил. Если можно вон по конкретно моему примеру. И с проверкой как быть? Я не разбираюсь в программировании (( и мне это всё в делфи надо.
я так понял,
Label1 Caption='макс.ит.' максимальная итернация (как я понял,повторение)
Label2 Caption='eps' (а это не знаю)
Зачем нужны эти повторения и епс? и что они делают?
Последний раз редактировалось andyg0; 27.12.2009 в 01:09..
|
|
|

27.12.2009, 01:26
|
|
Участник форума
Регистрация: 14.01.2009
Сообщений: 194
Провел на форуме: 798217
Репутация:
44
|
|
Если я не ошибаюсь то тут используется уравнение Маклорена.
Eps определяет точность измерений!(т.е. погрешность)
А кол-во инетераций используется, чтобы твоя программа не зациклилась!если в ней ошибка
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|