Решение уравнения с вводом данных - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

как нужно ее изменить что бы она была для разных уравнений. т.е у меня три уравнения. нужно три программы. 1) х3 – 10х – 5 = 0; 2) х4 – 10х2 – 20 = 0; 3) х4 – 5х3 – 15х2 + 7 = 0; вот для этих уравнений нужно. помогите пожалуйста

Решение задачи: «Решение уравнения с вводом данных»

textual
Листинг программы
uses crt;
const e=0.001;
type func=function(x:real):real;
function f1(x:real):real;//1 функция
begin
f1:=x*x*x-10*x-5;
end;
function pf1(x:real):real;//ее 1 производная
begin
pf1:=3*x*x-10;
end;
function f2(x:real):real;
begin
f2:=x*x*x*x-10*x*x-20;
end;
function pf2(x:real):real;
begin
pf2:=4*x*x*x-20*x;
end;
function f3(x:real):real;
begin
f3:=x*x*x*x-5*x*x*x-15*x*x+7;
end;
function pf3(x:real):real;
begin
pf3:=4*x*x*x-15*x*x-30*x;
end;
function newton(f,g:func;a,b:real):real; //функция уточнения корней
var x:real;
begin
if f(a)*g(a)>0 then x:=a
else x:=b;
while abs(f(x))>e do
   begin
     x:=x-f(x)/g(x);
   end;
newton:=x;
end;
procedure korni(f,g:func;a,b:real);
var x,x1,x2,dx,x11,x12,eps:real;
    i:integer;
begin
x1:=a;//интервал для поиска корней
x2:=b;
dx:=0.1;
x:=x1;
i:=0;
while x<=x2 do
 begin
  x11:=x;
  x12:=x+dx;
  if f(x11)*f(x12)<0 then
   begin
    i:=i+1;
    writeln('X',i,'=',newton(f,g,x11,x12):8:5);
   end;
  x:=x+dx;
 end;
end;
begin
korni(f1,pf1,6,9);
korni(f2,pf2,-2,2);
korni(f3,pf3,3,9);
end.

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

  1. В функции f1 происходит вычисление значения функции f1(x:real):real, которая представляет собой куб x, умноженный на -10x - 5.
  2. В функции pf1 вычисляется производная функции f1, которая равна 3x^3 - 10x.
  3. В функции f2 происходит вычисление значения функции f2(x:real):real, которая представляет собой куб x, умноженный на -10x - 20.
  4. В функции pf2 вычисляется производная функции f2, которая равна 4x^3 - 20x^2.
  5. В функции f3 происходит вычисление значения функции f3(x:real):real, которая представляет собой куб x, умноженный на -5x^2 - 15x + 7.
  6. В функции pf3 вычисляется производная функции f3, которая равна 4x^3 - 15x^2 - 30x.
  7. В функции newton используется метод Ньютона для уточнения корней функции. Он принимает функцию f и ее производную g, а также начальные приближения a и b для поиска корней. Он возвращает найденное значение корня.
  8. В процедуре korni происходит поиск корней функции с помощью метода Ньютона. Она принимает функцию f и ее производную g, а также начальные приближения a и b для поиска корней. Она выводит найденные корни.
  9. В основной части программы вызывается функция korni с соответствующими функциями f1, f2 и f3 и начальными приближениями для поиска корней.

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


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

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

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