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

Метод касательных

Program kasat;

uses crt;

var

n:integer;

x,x1,x2,y,y2,m1,m2,h,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;

function fp1(x:real):real;

begin

fp1:=-2.802+8.35*x+3*x*x;

end;

Begin

clrscr;

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

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

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

m2:=a;

n:=1;

h:=0.5;

writeln ('____________________________________________________');

write ('| N | X | F(X) | F''(X) | H |');

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;

repeat

begin

x:=x-(f(x)/fp1(x));

writeln ('| ',n,' | ',x:5:3,' | ',f(x):10:5,'| ',fp1(x):10:5,'| ',abs(f(x)/fp1(x)):10:5,' | ');

n:=n+1 ;

end;

until abs(f(x)/fp1(x))<=eps;

n:=1

end;

end;

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

repeat until keypressed;

end.