Исследовать уравнение на отрезке [a, b] на существование корней - PascalABC.NET
Формулировка задачи:
Исследовать уравнение f(x)=0 на отрезке [a,b] на существование корней.
f(x)=x^4-3x^3+3x^2-12, a=-1.3, b=0
решить методом Ньютона
Решение задачи: «Исследовать уравнение на отрезке [a, b] на существование корней»
textual
Листинг программы
{функция} function F(x:real):real; begin F:=x*x*x*x-3*x*x*x+3*x*x-12; end; {первая производная} function F1(x:real):real; begin F1:=4*x*x*x-9*x*x+6*x; end; var x0,x,eps,b:real; begin x:=-1.3; x0:=-2; {исследуем интервал на наличие корней} repeat if F(x)*F(x+0.05)<0 then x0:=x{нашли первое приближение} else x:=x+0.05;{иначе дальше} until (x>=0)or(x0>-2);{если нашли или конц интервала, конец} if x0=-2 then write('Корней в интервле [-1.3;0] нет') else begin x0:=(x0+x0+0.05)/2;{уточним первое приближение} eps:=0.0001; repeat b:=x0; x0:=b-F(b)/F1(b); until abs(x0-b)<eps; write('X=',x0:0:5);{найдем корень с заданной точностью} end; end.
Объяснение кода листинга программы
- Задана функция F(x) = x^4 x - 3 x^3 x + 3 x^2 - 12
- Задана первая производная F1(x) = 4 x^3 x - 9 x^2 x + 6 * x
- Задано значение x = -1.3, x0 = -2, eps = 0.0001
- Начинается цикл по интервалу от x до x0
- Проверяется, если значение функции F(x) в текущей точке и следующей за ней с шагом 0.05 отрицательно, то x0 обновляется значением текущей точки x
- Если условие не выполняется, то текущая точка x увеличивается на 0.05
- Цикл продолжается до тех пор, пока x не станет больше или равным 0, или x0 не станет больше -2
- Если корней в интервале [-1.3;0] нет, выводится сообщение
Корней в интервале [-1.3;0] нет
- Если корни есть, то значение x0 уточняется, путем деления суммы x0 и x0 на 2
- Задается значение eps = 0.0001
- Начинается цикл по точности определения корня
- В каждой итерации значение b принимает значение x0, а x0 обновляется как среднее арифметическое b и F(b) / F1(b)
- Цикл продолжается до тех пор, пока разница между b и x0 не станет меньше eps
- Выводится сообщение
X = x0 с точностью до 5 знаков после запятой
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д