Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
тиімділеу дістері.doc
Скачиваний:
32
Добавлен:
23.03.2016
Размер:
368.13 Кб
Скачать

2 Сызықсыз теңдеулерді шешудің программалық листингі

program dihotomi;

uses crt;

label 1,2,3;

var a,b,c,x,eps:real;

function f(x:real):real;

begin

f:=sqr(x)-5*sin(x);

end;

begin

window(1,1,80,25);

TEXTBACKGROUND(3);

clrscr;

textcolor(1);

writeln('****************************************************');

writeln('* *');

writeln('* Данной программой решается нелинейное уравнение *');

writeln('* f(x) = 0 методом половинного деления *');

writeln('* *');

writeln('****************************************************');

writeln;

WINDOW(10,7,60,9);

TEXTBACKGROUND(5);

CLRSCR;

TEXTCOLOR(7);

1: writeln('Введите a,b,eps');

readln(a,b,eps);

if f(a)*f(b)>0 then

begin

WINDOW(15,10,65,12);

TEXTBACKGROUND(5);

CLRSCR;

TEXTCOLOR(8);

writeln('нет решения в [a,b]');

goto 1

end;

begin

3: if abs(b-a)>2*eps then c:=(a+b)/2

else goto 2;

end;

begin

if f(a)*f(c)<=0

then b:=c else a:=c;

goto 3

end;

readln;

2: x:=(a+b)/2;

WINDOW(20,14,70,16);

TEXTBACKGROUND(2);

CLRSCR;

TEXTCOLOR(12);

writeln('Решение нелинейного уравнения Х=',x:7:5);

readln;

end.

****************** **************** *******************

program horda;

uses crt;

label

1,2,3;

var

x,a,b,eps,c:real;

k:integer;

function f(x:real):real;

begin

f:=sqr(x)-5*sin(x);

end;

function f1(x:real):real;

begin

f1:= 2+sin(x);

end;

begin

window(1,1,80,25);

TEXTBACKGROUND(1);

clrscr;

textcolor(13);

writeln('****************************************************');

writeln('* *');

writeln('* Данной программой решается нелинейное уравнение *');

writeln('* f(x) = 0 методом хорд *');

writeln('* *');

writeln('****************************************************');

writeln;

WINDOW(15,7,65,10);

TEXTBACKGROUND(0);

CLRSCR;

TEXTCOLOR(9);

writeln('Введите a,b,eps');

readln(a,b,eps);

k:=0;

if f(b)*f1(a)>0

then

begin

x:=a;

goto 1

end;

if f(a)*f1(b)>0

then

begin

x:=b;

goto 2

end;

1: c:=x-(b-x)*f(x)/(f(b)-f(x));

if abs(x-c)<=eps

then

goto 3

else

begin

x:=c;

k:=k+1;

end;

goto 1;

2: c:=a-(x-a)*f(a)/(f(x)-f(a));

if abs(x-c)<=eps

then

goto 3

else

begin

x:=c;

k:=k+1;

end;

goto 2;

3: WINDOW(15,14,65,18);

TEXTBACKGROUND(3);

CLRSCR;

TEXTCOLOR(5);

writeln('Решение нелинейного уравнения Х=',c:7:4);

writeln('Число итерации k=',k);

readln;

end.

********************** ****************** ***************

PROGRAM NEWTON;

USES CRT;

LABEL 1,2;

VAR

X,X1,C,EPS:REAL;

K:INTEGER;

FUNCTION F(X:REAL):REAL;

VAR

Y,Y1:REAL;

BEGIN

Y:=SQR(X)-5*SIN(X);

Y1:=2*X-5*COS(X);

F:=Y/Y1;

END;

BEGIN

WINDOW (1,1,80,25);

TEXTBACKGROUND(1);

CLRSCR;

writeln('****************************************************');

writeln('* *');

writeln('* Данной программой решается нелинейное уравнение *');

writeln('* f(x) = 0 методом касательных (Ньютона) *');

writeln('* *');

writeln('****************************************************');

writeln;

WINDOW(15,7,65,10);

TEXTBACKGROUND(0);

CLRSCR;

TEXTCOLOR(9);

WRITELN ('ВВЕДИТЕ ЗНАЧЕНИЕ.С,EPS');

READLN (C,EPS);

X:=C;

K:=0;

1: X1:=X-F(X);

IF ABS(X-X1)<=EPS

THEN GOTO 2

ELSE

BEGIN

K:=K+1;

X:=X1;

END;

GOTO 1;

2: WINDOW (15,12,65,16);

TEXTBACKGROUND(5);

CLRSCR;

TEXTCOLOR(7);

WRITELN ('РЕШЕНИЕ УРАВНЕНИЯ X=',X:7:4);

WRITELN('ЧИСЛО ИТЕРАЦИИ К=',K);

READLN

END.

******************* *************** ***********************

PROGRAM ITER;

USES CRT;

LABEL 1,2;

FUNCTION F(X:REAL):REAL;

BEGIN

F:=LN(10*X);

END;

VAR

X,C,EPS:REAL;

K:INTEGER;

BEGIN

WINDOW (1,1,80,25);

TEXTBACKGROUND(1);

CLRSCR;

writeln('****************************************************');

writeln('* *');

writeln('* Данной программой решается нелинейное уравнение *');

writeln('* f(x) = 0 методом простой итерации *');

writeln('* *');

writeln('****************************************************');

writeln;

WINDOW(15,5,65,15);

TEXTBACKGROUND(0);

CLRSCR;

TEXTCOLOR(9);

WRITELN ('ВВЕДИТЕ ЗНАЧЕНИЕ.С,EPS');

READLN (C,EPS);

K:=0;

1: X:=F(C);K:=K+1;

IF ABS(X-C)<EPS

THEN GOTO 2

ELSE

BEGIN

C:=X;

GOTO 1

END;

2: WINDOW (15,16,65,23);

TEXTBACKGROUND(5);

CLRSCR;

TEXTCOLOR(7);

WRITELN ('РЕШЕНИЕ УРАВНЕНИЯ X=',X:7:4);

WTITELN(‘ЧИСЛО ИТЕРАЦИИ К=’,K);

READLN

END.

****************** ***************** **************