Цитата:
Сообщение от ayPinki
Решить систему методом Ньютона с точностью e= 0,00001.
или дайте хотя бы пример такой же задачи с комментариями, я сам переделаю.
|
Теперь сама программа:
Код:
Const
e=0.00001;
Var
x_old, x_new, y, z:real;
Function Fun_1(x:real):real;
begin
Fun_1:=Sin(x-Sqrt(1-Sqr(x)))-1.5*x;
end;
Function Fun_2(x:real):real;
begin
Fun_2:=Sin(x+Sqrt(1-Sqr(x)))-1.5*x;
end;
Function Der_1(x:real):real;
begin
Der_1:=Cos(x-Sqrt(1-Sqr(x)))*(1+x/Sqrt(1-Sqr(x)))-1.5;
end;
Function Der_2(x:real):real;
begin
Der_2:=Cos(x+Sqrt(1-Sqr(x)))*(1-x/Sqrt(1-Sqr(x)))-1.5;
end;
Begin
x_old:=-0.6;
Repeat
z:=x_old;
x_new:=x_old-Fun_1(x_old)/Der_1(x_old);
x_old:=x_new;
Until Abs(x_old-z)<e;
y:=-Sqrt(1-Sqr(x_old));
Writeln('x1= ',x_old:0:5);
Writeln('y1= ',y:0:5);
Writeln('Sin(x1+y1)= ',Sin(x_old+y):0:5);
Writeln('1.5*x1= ',1.5*x_old:0:5);
Writeln;
x_old:=0.6;
Repeat
z:=x_old;
x_new:=x_old-Fun_2(x_old)/Der_2(x_old);
x_old:=x_new;
Until Abs(x_old-z)<e;
y:=Sqrt(1-Sqr(x_old));
Writeln('x2= ',x_old:0:5);
Writeln('y2= ',y:0:5);
Writeln('Sin(x2+y2)= ',Sin(x_old+y):0:5);
Writeln('1.5*x2= ',1.5*x_old:0:5);
Readln;
End.
И результат: