Найти наименьший положительный корень уравнения. 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.

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

  1. Объявлены переменные: IEr, a, b, e, x.
  2. В функции f(x) закодировано выражение xxx-1.75*x+0.75.
  3. В функции f1(x) используется итерационный процесс для вычисления производной функции f(x).
  4. В функции f2(x) используется итерационный процесс для вычисления второй производной функции f(x).
  5. В процедуре sistem(a,b,e;var x:real; var IEr:integer) используется метод решения системы уравнений с помощью функций f(x), f1(x) и f2(x).
  6. При запуске программы вводятся начальные приближения a=1, b=4 и e=0.00001.
  7. Используется цикл while для повторного вычисления приближенного значения корня до тех пор, пока не будет достигнуто условие остановки.
  8. При выходе из цикла в переменную x записывается найденное приближенное значение корня.
  9. В основной программе запускается функция sistem(a,b,e,x,IEr) с a=0.1, b=0.5 и e=0.00001.
  10. Выводится сообщение об ошибке и найденное приближенное значение корня.

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


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

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

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