СР
Сергей Рожнов

Как решить уравнение в Паскле методом итераций?

На рисунке мне понятен метод.. . а вот с программой беда.. Неужели нужно использовать массивы?
У нас беда с учителем, ничего не объясняет, считает что мы умные, когда полкласса ничего не понимает и за них дз делают другие... .
Я нашла какую то программу в интернете, но она такая огромная, и PascalABC постоянно выдает непонятные ошибки (( Прошу вас, помогите кто как может. .

Вот та программа:

program m_iter_sys;

Uses Crt;

label 1,2;
const n=4;e=0.001;
var i,j,k,t:integer;
sum1:real;
f:boolean;
a,c:array [1..n,1..n] of real;
s1,x,x0,d,b:array [1..n] of real;

begin
ClrScr;
for i:=1 to n do
begin
writeln ('введите коэффициенты в ',i,' строке');
for j:=1 to n do
readln (a[i,j]);
end;
writeln;
writeln ('введите свободные члены');
for i:=1 to n do
readln (b);
ClrScr;
for i:=1 to n do
for j:=1 to n do
begin
if i=j then c[i,j]:=0
else c[i,j]:=-a[i,j]/a[i,i];
end;
for i:=1 to n do
d:=b/a[i,i];
{проверка сходимости}
for i:=1 to n do
begin
sum1:=0;
for j:=1 to n do
sum1:=sum1+c[i,j];
s1:=sum1;
end;
sum1:=s1[1];
for i:=2 to n do
if s1>sum1 then sum1:=s1;
if abs(sum1)<1 then begin
{конец проверки}
for i:=1 to n do
x0:=d;
for i:=1 to n do
begin
x:=0;
for j:=1 to n do
x:=x+c[i,j]*x0[j];
end;
for i:=1 to n do
x:=x+d;
1: begin
for i:=1 to n do
x0:=x;

for i:=1 to n do
begin
x:=0;
for j:=1 to n do
x:=x+c[i,j]*x0[j];
end;
for i:=1 to n do
x:=x+d;
t:=0;
for i:=1 to n do
if abs(x-x0):2:2,' ');
writeln;
end
else writeln ('система не сходится');
readln
end.

И ещё, эта программа действительно требует так много операций??

Ну что вы к словам придираетесь. 3 человека у нас из 15 в группе понимают.

ПГ
Павел Габур

задача нужна, будет с чем сравнивать

ОВ
Олеся Васильченко

>Как решить уравнение в Паскле методом итераций?
Преобразовать уравнение к виду x=f(x) с некоторыми определенными характеристиками f. После этого подставляем в f некоторое приближение x0, получаем x1, подставляем x1, получаем x2... пока два очередных значения не будут достаточно близки.
>На рисунке мне понятен метод.. . а вот с программой беда.. Неужели нужно использовать массивы?
Рад. И массивы - не обязательно.
>У нас беда с учителем, ничего не объясняет, считает что мы умные, когда полкласса ничего не понимает и за них дз делают другие... .
Пока будут делать другие - никакие объяснения не помогут. А судя по тому, что пол-класса делают не только за себя, но и за других - то объясняет он нормально.
>Я нашла какую то программу в интернете, но она такая огромная, и PascalABC постоянно выдает непонятные ошибки ((
И вообще она не для уравнений, а для систем.. .
>Прошу вас, помогите кто как может. .
Учим русский: "помогите" не означает "сделайте за меня". Сделай хоть что-то (бессмысленный поиск в сети не в счет) - будет помощь.
Кстати, уравнение-то какое хоть?
>И ещё, эта программа действительно требует так много операций? ?
Нет. Вполне реально в 10 строчек уложиться без специального урезания.

Похожие вопросы
C# Решить уравнение методом Ньютона
правильно ли у меня метод итераций???
Паскль, помогите пожалуйста решить задачку.
Напишите программу на Паскле !
составить программу решения системы линейных алгебраических уравнений методом итерации
как в паскале написать решение уравнения cos1,3x-2x методом итераций?
решить нелинейное алгебраическое уравнение методом простой итерации 2-ln(x)-x=0
как решить нелинейное уравнение методом бисекций, и итерации?
Суть метода итераций
Delfi !!!Найдите корни уравнения ех – 10х = 0 с точностью эпсилам методом простой итерации.