Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Pascal (http://www.tehnari.ru/f41/t86298/)

Alexei18 12.03.2013 19:41

Pascal
 
Вложений: 1
Здраствуйте помогите пожалуйста если не трудно решить пример в паскале, сам в нём ни чего не понимаю(((.
Нужно решить систему линейных уравнений с помощью метода простой итерации.

Alexei18 14.03.2013 17:29

Program Metod_Prostoy_Iteracii ;
Uses crt;
const n=4; e=0.001;
Type matrix= array [1..n,1..n] of real;
Var A:matrix;
i,j,k:integer;
x1,x2,x3,x4:real;
b1,b2,b3,b4:real;
begin
a[1,1]:=13; a[1,2]:=1; a[1,3]:=-3; a[1,3]:=-7; b1:=0;
a[2,1]:=8; a[2,2]:=28; a[2,3]:=-7; a[2,3]:=7; b2:=4;
a[3,1]:=1; a[3,2]:=-5; a[3,3]:=20; a[3,3]:=4; b3:=-5;
a[4,1]:=5; a[4,2]:=4; a[4,3]:=3; a[4,3]:=22; b3:=-8;
Writeln('исходная матрица');
For i:=1 to n do
begin
For j:=1 to n do
Write(A[i,j]:6:1);
Writeln;
end;
Writeln('b1=' ,b1:3:1,' b2=' ,b2:3:1,' b3=' ,b3:3:1, 'b4=', b4:3:1, ' ' );
x1:=0; x2:=0; x3:=0; x4:=0;
For k:=1 to 100 do
begin
x1:=(b1-a[1,2]*x2-a[1,3]*x3-a[1,4]*x4)/a[1,1];
x2:=(b2-a[2,1]*x1-a[2,3]*x3-a[2,4]*x4)/a[2,2];
x3:=(b3-a[3,1]*x1-a[3,2]*x2-a[3,4]*x4)/a[3,3];
x4:=(b4-a[4,1]*x1-a[4,2]*x2-a[4,3]*x3)/a[3,3];
if abs(x1-x1)<=e Then
if abs(x2-x2)<=e Then
if abs(x3-x3)<=e Then
if abs(x4-x4)<=e Then
end;
Writeln('x1=' ,x1:3:6,' x2=' ,x2:3:6,' x3=' ,x3:3:6,' x4=', x3:3:6);
End.

Alexei18 14.03.2013 17:31

я решилно ответы не сходятся, подскажите пожалуйста что не так.
Ответ:Х1=-0,231; Х2=0,27; X3=-0,102; X4=-0,346)

interacia 14.03.2013 19:41

Сначала надо было к математикам обращаться. чтоб описали алгоритм. Программист сродни переводчику.
Код:

Program Metod_Prostoy_Iteracii ;
 Uses crt;
 const n=4; e=0.001;
 Type matrix= array [1..n,1..n] of real;
 Var A:matrix;
 i,j,k:integer;
 x1,x2,x3,x4:real;
 b1,b2,b3,b4:real;
 begin
 a[1,1]:=13;a[1,2]:=1;  a[1,3]:=-3; a[1,4]:=-7; b1:=0;
 a[2,1]:=8; a[2,2]:=28; a[2,3]:=-7; a[2,4]:=7;  b2:=4;
 a[3,1]:=1; a[3,2]:=-5; a[3,3]:=20; a[3,4]:=4;  b3:=-5;
 a[4,1]:=5; a[4,2]:=4;  a[4,3]:=3;  a[4,4]:=22; b4:=-8;
 Writeln('исходная матрица');
 For i:=1 to n do
 begin
 For j:=1 to n do
 Write(A[i,j]:6:1);
 Writeln;
 end;
 Writeln('b1=' ,b1:3:1,' b2=' ,b2:3:1,' b3=' ,b3:3:1, 'b4=', b4:3:1, ' ' );

 x1:=0; x2:=0; x3:=0; x4:=0;
for k:=1 to 10 do
 begin
 x1:=(b1-(a[1,2]*x2+a[1,3]*x3+a[1,4]*x4))/a[1,1];
 x2:=(b2-(a[2,1]*x1+a[2,3]*x3+a[2,4]*x4))/a[2,2];
 x3:=(b3-(a[3,1]*x1+a[3,2]*x2+a[3,4]*x4))/a[3,3];
 x4:=(b4-(a[4,1]*x1+a[4,2]*x2+a[4,3]*x3))/a[4,4];
 end;
 Writeln(' x1=' ,x1:3:6,
        ' x2=' ,x2:3:6,
        ' x3=' ,x3:3:6,
        ' x4=', x4:3:6);

 End.


Alexei18 15.03.2013 01:00

спасибо огромное, очень помогли.


Часовой пояс GMT +4, время: 09:15.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.