Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Решить уравнение x = tgx

Автор: НичегоНеЗнаю 20.12.2007 3:04

Нужно решить уравнение x=tgx методом касательных(Ньютона).
Пробовала взять образец программы и переделать под свое уравнение,вот что получилось. В итоге не правильно. Исправьте кто нибудь, пожалуйста. mega_chok.gif

{$n+}
function kas(start, Eps: Extended): Extended;
var
X, prev: Extended;
function F(Arg: Extended): Extended;
begin
f := (sin(x)/cos(x)) - x
end;
function deriv(Arg: Extended): Extended;
begin
deriv := (1/(cos(x)*cos(x)) - 1);
end;
begin
X := start;
repeat
prev := X;
X := prev - F(prev) / Deriv(prev);
Until Abs(X - prev) <= Eps;
kas := X
End;
Var a, Eps: Extended;
begin
writeln('vvedite nachalnoe priblizjenie a');
read(a);
writeln('vvedite tochnost Eps');
read(Eps);
writeln('koren raven= ', kas(a, Eps)10.gif7);
end.



Добавлено через 2 мин.
там где возник зеленый смайлик,стыдливо шаркающий ножкой, должно быть : 10 :

Автор: volvo 20.12.2007 3:15

Цитата
В итоге не правильно.
unsure.gif С чего решила, что неправильно? Все правильно как раз. При начальном приближении = 1 и точности 0,001 выдает правильный результат.