• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Pascal

Alexei18

Новые
Регистрация
22 Окт 2012
Сообщения
32
Реакции
0
Баллы
0
Здраствуйте помогите пожалуйста если не трудно решить пример в паскале, сам в нём ни чего не понимаю(((.
Нужно решить систему линейных уравнений с помощью метода простой итерации.
 

Вложения

  • Снимок.webp
    Снимок.webp
    13.5 KB · Просмотры: 136
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.
 
я решилно ответы не сходятся, подскажите пожалуйста что не так.
Ответ:Х1=-0,231; Х2=0,27; X3=-0,102; X4=-0,346)
 
Сначала надо было к математикам обращаться. чтоб описали алгоритм. Программист сродни переводчику.
Код:
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.
 
спасибо огромное, очень помогли.
 
Назад
Сверху