Скачиваний:
26
Добавлен:
07.01.2014
Размер:
21.5 Кб
Скачать

Метод секущих

Program sekuschaya;

uses crt;

var

n:integer;

x,x1,x2,y,y1,y2,m1,m2,h,k,a,b,eps:real;

function f(x:real):real;

begin

f:=-2.505-2.802 *x+4.175*x*x+x*x*x;

end;

function fp2(x:real):real;

begin

fp2:=8.35+6*x;

end;

Begin

clrscr;

writeln('Введите точность');readln(eps);

writeln('Введите левую границу');readln(a);

writeln('Введите праввую границу ');readln(b);

m2:=a;

n:=1;

h:=(b-a)/2;

writeln ('______________________________________________________________________');

write ('|N| X0 | X1 | X2 | F(X0) | F(X1) | F(X2) | X1-X0 |');

while m2<=b do

begin

m1:=m2;

m2:=m2+h;

if ((f(m1)>=0) and (f(m2)<=0)) or ((f(m1)<=0) and (f(m2)>=0)) then

begin

x1:=m1;

x2:=m2;

y:=f(x1);

y2:=fp2(x1);

Writeln;

If y*y2>0 then x:=x1 else x:=x2;

If x>0 then k:=0.02 else k:=-0.02 ;

x2:=x-k;

repeat

begin

x1:=x;

y:=f(x);

y1:=f(x1);

y2:=f(x2);

x2:=x2-k;

x:=x2-(x1-x2)*y2/(y1-y2);

writeln ('|',n,'| ',x:4:3,'| ',x1:4:3,'| ',x2:4:3,'| ' ,y:10:5,'|',y1:10:5,'| ',y2:10:5,'| ',x-x1:9:5,' | ');

n:=n+1

end;

until abs(x-x1)<=eps;

n:=1

end;

n:=1;

end;

writeln('------------------------------------------------------------------');

readln;

end.