Найти наименьший положительный корень уравнения. x^3 = 1.75*x - 0.75. Комбинированным методом - PascalABC.NET
Формулировка задачи:
Добрый день!
Задание.
Найти наименьший положительный корень уравнения.
x^3 = 1.75*x - 0.75
Корень уравнения должен быть найден с точностью E = 10^-4 . Для каждого метода вывести найденный приближенный корень E' и значение f ( E' ).
Помогите пожалуйста,как решить комбинированным методом.
Решение задачи: «Найти наименьший положительный корень уравнения. x^3 = 1.75*x - 0.75. Комбинированным методом»
textual
Листинг программы
Program kinzu; var IEr:integer; a, b, e, x:real; function f(x:real):real; begin f:=x*x*x-1.75*x+0.75; end; function f1(x:real):real; var r:real; begin r:=0.00001; f1:=(f(x+r)-f(x))/r end; function f2(x:real):real; var r:real; begin r:=0.00001; f2:=(f1(x+r)-f1(x))/r end; procedure sistem(a,b,e:real;var x:real; var IEr:integer); var m:integer; c:real; begin IEr:=0; if f(a)*f(b)>0 then begin IEr:=1; exit end; m:=0; if f(a)*f1(a)>0 then x:=b else x:=a; repeat x:=x-f(x)/f1(x); inc(m); if m>100 then begin IEr:=2; exit end; until (f(x-e)*f(x+e)<0) or (m>100); end; begin a:=1; b:=4; e:=0.00001; sistem(a,b,e,x,IEr); writeln('Индикатор ошибки ',IEr, ', приближенное значение корня = ' , x) end. program rizmu; var IEr:integer; a, b, e, x:real; function f(x:real):real; begin f:=x*x*x-1.75*x+0.75; end; procedure sistem(a,b,e:real;var x:real; var IEr:integer); var m:integer; c:real; begin IEr:=0; if f(a)*f(b)>0 then begin IEr:=1; exit end; m:=0; repeat c:=a-(((b-a)*f(a))/(f(b)-f(a))); inc(m); if m>100 then begin IEr:=2; exit end; if f(a)*f(c)>0 then a:=c else b:=c; x:=a-(((b-a)*f(a))/(f(b)-f(a))); until (f(x-e)*f(x+e)<0) or (m>100); end; begin a:=0.1; b:=0.5; e:=0.00001; sistem(a,b,e,x,IEr); writeln('Индикатор ошибки ',IEr, ', приближенное значение корня = ' , x) end.
Объяснение кода листинга программы
- Объявлены переменные: IEr, a, b, e, x.
- В функции f(x) закодировано выражение xxx-1.75*x+0.75.
- В функции f1(x) используется итерационный процесс для вычисления производной функции f(x).
- В функции f2(x) используется итерационный процесс для вычисления второй производной функции f(x).
- В процедуре sistem(a,b,e;var x:real; var IEr:integer) используется метод решения системы уравнений с помощью функций f(x), f1(x) и f2(x).
- При запуске программы вводятся начальные приближения a=1, b=4 и e=0.00001.
- Используется цикл while для повторного вычисления приближенного значения корня до тех пор, пока не будет достигнуто условие остановки.
- При выходе из цикла в переменную x записывается найденное приближенное значение корня.
- В основной программе запускается функция sistem(a,b,e,x,IEr) с a=0.1, b=0.5 и e=0.00001.
- Выводится сообщение об ошибке и найденное приближенное значение корня.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д