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