Цитата:
Сообщение от borntank
Помогите пожалуйста!
|
Пожалуйста. Только вот предупреждаю, что за возможные глюки лжепаскаля АВС не отвечаю.
График - внизу. Остальные два корня - комплексные. Программа оттестирована во Free Паскале.
Код:
Var
x1,x2,Eps:Real;
N:Integer;
Function F(z:real):real;
begin
F:=Sqr(Sqr(z))+z*Sqr(z)*3+Sqr(z)*75-10000.0;
end;
Function D(z:real):real;
begin
D:=z*Sqr(z)*4+Sqr(z)*9+z*150;
end;
Procedure Newton(Z0,e:real; var Z1:real; var Nn:Integer);
var
i:Integer;
Z_new,Z_old,Z_old1:real;
begin
Z_old:=Z0;
i:=0;
Repeat
Inc(i);
Z_new:=Z_old-F(Z_old)/D(Z_old);
Z_old1:=Z_old;
Z_old:=Z_new;
Until (Abs(Z_old1-Z_new)<e) or (i=100);
Z1:=Z_new;
Nn:=i;
end;
Begin
Write('Eps= ');
Readln(Eps);
Newton(-12,Eps,x1,N);
Writeln('x1= ',x1:0:12,', ',N,' iterations');
Newton(10,Eps,x2,N);
Writeln('x2= ',x2:0:12,', ',N,' iterations');
Readln
End.