Помощь - Поиск - Пользователи - Календарь
Полная версия: Метод Ньютона для решения нелинейного уравнения
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
CORS@R
Может кто знает этот метод и поможет мне реализовать его. Дано уравнение sqrt(x)-cos*0.387*x=0
Я что то сделал но у меня не пашет. У других моя прога работает(с другими уравнениями). Тут еще метод итераций(работает)
uses crt;
var x1,x2,x3,e:real;
k,otv:integer;
begin
clrscr;
repeat
writeln('1-Metod Iteraciy');
writeln('2-Metod Newtona');
writeln('3-EXIT');
readln(otv);
case otv of
1:begin
writeln('Vvedite x0');
readln(x1);
writeln('Vvedite tochnost');
readln(e);
k:=0;
repeat
x2:=x1-0.01*(sqrt(x1)-cos(0.387*x1));
x3:=x1;
x1:=x2;
k:=k+1;
until ((abs(x2-x3)<=e) and (abs(sqrt(x2)-cos(0.387*x2))<e));
writeln('x2=',x2);
writeln(k);
readln;
end;
2:begin
write('x0=');
readln(x1);
write('e=');
readln(e);
k:=0;
repeat
x2:=x1-(sqrt(x1)-cos(0.387*x1)/(1/(2*sqrt(x1))+0.387*sin(0.387*x1)));
x3:=x1;
x1:=x2;
k:=k+1;
until ((abs(x2-x3)<e) and (abs(sqrt(x2)-cos(0.387*x2))<e));
writeln('x=',x2:2:20);
x1:=sqrt(x1)-cos(0.387*x1);
writeln('f(x)=',x1:2:20);
writeln(k);
readln;
end;
3:end;
until otv=3
end.
volvo
Все тривиально - неверно расставлены скобки (в вычислении X2 по методу Ньютона)... Вот правильный вариант:
Цитата
x2 := x1 - (sqrt(x1)-cos(0.387*x1)) / ((1/(2*sqrt(x1))+0.387*sin(0.387*x1)));

Внимательнее с этим !!!
Гость
Блин вот оно как, а я почти 2 месяца голову ломал, давно бы здесь спросил бы уже сессию закрыл бы. Спасибо
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.