Численное решение алгебраических и нелинейных уравнений - Pascal
Формулировка задачи:
Решить при помощи численных методов уравнение (найти действительные корни) указанным методом, составить блок-схему.
x^3+3x^2-24x+1=0 метод хорд, Ньютона;
Решение задачи: «Численное решение алгебраических и нелинейных уравнений»
textual
Листинг программы
uses Crt; var x,eps,a,b,x1,c:real; function F(x:real):real; begin f:=x*x*x+3*x*x-24*x+1;{Ваша функция} end; function F1(x:real):real; begin F1:=3*x*x+6*x-24; {первая производная для Ньютона} end; function Newton(x1,e:real):real;{метод Ньютона} var x2,b:real; begin x2:=x1; repeat b:=x2; x2:=b-F(b)/F1(b); until abs(x2-b)<e; Newton:=x2; end; function Chord(a,b:real):real;{метод хорд} begin Chord:=(f(b)*a - f(a)*b)/(f(b) - f(a)) end; begin clrscr; writeln('Введите границы интервала;'); write('a=');readln(a); write('b=');readln(b); write('Введите начальное приближение x1='); readln(x1); write('Введите точность eps='); readln(eps); writeln('Метод Ньютона:'); writeln('X=',Newton(x1,eps):10:7); writeln('Метод хорд:'); repeat c:=Chord(a,b); if f(a)*f(c) > 0 then a := c else b := c; until abs(Chord(a, b) - c) < eps; x := c; writeLn('X=',Chord(a,b):10:7); readln end.
Объяснение кода листинга программы
- Подключается библиотека Crt, которая предоставляет функции для работы с числами с плавающей точкой.
- Объявляются переменные x, eps, a, b, x1, c: real; (x, eps, a, b, x1, c) - это тип данных real, который представляет числа с плавающей точкой.
- Определяется функция F(x), которая является алгебраической функцией. Она вычисляет значение функции, заданной в задаче (f(x) = xxx + 3xx - 24*x + 1).
- Определяется функция F1(x), которая является первой производной функции f(x) для метода Ньютона.
- Определяется функция Newton(x1, eps), которая реализует метод Ньютона для численного решения уравнения f(x) = 0. Она принимает два аргумента: x1 - начальное приближение и eps — точность. В цикле повторно вычисляется приближенное значение x2 = x1 - (f(x1)/F1(x1))*(x2 - x1), пока разница между x2 и x1 не будет меньше eps. Значение x2 является окончательным результатом.
- Определяется функция Chord(a, b), которая реализует метод хорд для численного решения уравнения f(x) = 0. Она принимает два аргумента: a и b - границы интервала, в котором ищется решение. Вычисляется значение c = (f(b)a — f(a)b)/(f(b) — f(a)) и проверяется, в каком направлении меняется f(a) и f(c). Если f(a)*f(c) > 0, то a заменяется на c, иначе b заменяется на c. Этот процесс повторяется до тех пор, пока разница между Chord(a, b) и c не станет меньше eps. Значение x = c является окончательным результатом.
- Запускается цикл ввода данных, в котором пользователь вводит границы интервала a и b, начальное приближение x1 и точность eps.
- Вычисляется значение X = Newton(x1, eps) и выводится на экран.
- Вычисляется значение X = Chord(a, b) и выводится на экран.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д