Реализовать численный метод поиска корней нелинейного уравнения - Pascal ABC
Формулировка задачи:
Реализовать численный метод поиска корней нелинейного уравнения с точностью e=0.01 уравнения 2*x^5+12=0 методом Ньютона
Решение задачи: «Реализовать численный метод поиска корней нелинейного уравнения»
textual
Листинг программы
const e=0.01;
//функция
function F(x:real):real;
begin
F:=2*x*x*x*x*x+12;
end;
//первая производная
function F1(x:real):real;
begin
F1:=10*x*x*x*x;
end;
var x,b:real;
begin
//простой метод Ньютона
x:=1;
repeat
b:=x;
x:=b-F(b)/F1(b);
until abs(x-b)<e;
write('X=',x:0:2);
end.
Объяснение кода листинга программы
- В первой строке объявляется константа e, которая представляет собой малую десятичную дробь и используется для определения точности вычислений.
- Затем объявляются функции F и F1. Функция F принимает один аргумент x типа real и возвращает значение выражения 2xxxx+12. Функция F1 также принимает один аргумент x типа real и возвращает значение выражения 10xx*x.
- Далее объявляются две переменные типа real x и b. Переменная x инициализируется значением 1.
- Затем начинается цикл repeat, который выполняется до тех пор, пока абсолютное значение разности между текущим значением x и предыдущим значением b не станет меньше e.
- Внутри цикла переменная b инициализируется значением x.
- Затем переменная x инициализируется значением b минус результат деления F(b) на F1(b).
- После выхода из цикла выводится сообщение
X=, за которым следует значение переменной x, округленное до двух десятичных знаков. - Конец программы.