Y=x^3+0.3x3-4.5x+1.1 = 0 найти решение: 1)методом половинного деления d< 0,01 2)методом касательных d< =0,001 3)метод итерации d< =0,001

andron92 andron92    1   17.09.2019 11:40    0

Ответы
oskar9 oskar9  07.10.2020 21:41
Это скорее задача по информатике, чем по математике.
Пишите программу и получаете результат.

const d=0.001;
function f(var x: real): real;
begin
  f:=sqr(x)*x-0.3*sqr(x)-4.5*x+1.1;
end;

function f1(var x: real): real;
begin
  f1:=(sqr(x)*x-0.3*sqr(x)+1.1)/4.5;
end;

var a,b,c,x: real;
    k: integer;
begin
// метод деления пополам
  a:=1.0;
  b:=0.0; k:=0;
  writeln('метод деления пополам');
  repeat
    c:=(a+b)/2;
    if f(c)>0 then b:=c
    else a:=c;
    inc(k);
    writeln('итерация ',k,':  x = ',c:5:3,'  f(x) = ',f(c):5:3);
  until abs(f(c))<d; 
  writeln('x = ',c:7:5,'  f(x) = ',f(c):7:5);  
  writeln;
// итерационный метод  
  writeln('итерационный метод');
  x:=0.5; k:=0;
  repeat
    x:=f1(x);
    inc(k);
    writeln('итерация ',k,':  x = ',x:7:5,'  f(x) = ',f(x):7:5);
  until abs(x-f1(x))<d/100;
  writeln('x = ',x:8:6,'  f(x) = ',f(x):8:6);  
end.

метод деления пополам
итерация 1:  x = 0.500  f(x) = -1.100
итерация 2:  x = 0.250  f(x) = -0.028
итерация 3:  x = 0.125  f(x) = 0.535
итерация 4:  x = 0.188  f(x) = 0.252
итерация 5:  x = 0.219  f(x) = 0.112
итерация 6:  x = 0.234  f(x) = 0.042
итерация 7:  x = 0.242  f(x) = 0.007
итерация 8:  x = 0.246  f(x) = -0.011
итерация 9:  x = 0.244  f(x) = -0.002
итерация 10:  x = 0.243  f(x) = 0.002
итерация 11:  x = 0.244  f(x) = 0.000
x = 0.24365  f(x) = 0.00022

итерационный метод
итерация 1:  x = 0.25556  f(x) = -0.05290
итерация 2:  x = 0.24380  f(x) = -0.00044
итерация 3:  x = 0.24370  f(x) = 0.00000
x = 0.243702  f(x) = -0.000003
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Математика