Показать сообщение отдельно
Старый 26.04.2013, 21:46   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от 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.
Изображения
 
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070