Численное решение алгебраических и нелинейных уравнений - 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.

Объяснение кода листинга программы

  1. Подключается библиотека Crt, которая предоставляет функции для работы с числами с плавающей точкой.
  2. Объявляются переменные x, eps, a, b, x1, c: real; (x, eps, a, b, x1, c) - это тип данных real, который представляет числа с плавающей точкой.
  3. Определяется функция F(x), которая является алгебраической функцией. Она вычисляет значение функции, заданной в задаче (f(x) = xxx + 3xx - 24*x + 1).
  4. Определяется функция F1(x), которая является первой производной функции f(x) для метода Ньютона.
  5. Определяется функция Newton(x1, eps), которая реализует метод Ньютона для численного решения уравнения f(x) = 0. Она принимает два аргумента: x1 - начальное приближение и eps — точность. В цикле повторно вычисляется приближенное значение x2 = x1 - (f(x1)/F1(x1))*(x2 - x1), пока разница между x2 и x1 не будет меньше eps. Значение x2 является окончательным результатом.
  6. Определяется функция 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 является окончательным результатом.
  7. Запускается цикл ввода данных, в котором пользователь вводит границы интервала a и b, начальное приближение x1 и точность eps.
  8. Вычисляется значение X = Newton(x1, eps) и выводится на экран.
  9. Вычисляется значение X = Chord(a, b) и выводится на экран.
  10. Программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы