Метод на хордите за решаване на уравнения

Графично определяне на корените

f[x_]:=2(x^4)-11 Sin[2x]+3x-5
Plot[f[x],{x,-5,5}]

Plot[f[x],{x,-2,2}]

Локализация на най-големия корен

Plot[f[x],{x,1,2}]

f[1.]

f[2.]

Извод: Стойностите на функцията в двата края имат противоположни знаци, следователно в интервала [1; 2] се съдържа корен.

Проверка на условията на метода на хордите (f’(x), f’’(x) да са с постоянни знаци в [a;b])

Plot[f'[x],{x,1,2}]

Извод: Стойностите на производната на функцията са между 20 и 80, следователно са положителни в целия разглеждан интервал [1; 2]

Plot[f''[x],{x,1,2}]

Извод: Стойностите на врората производна на функцията са между 58 и 65, следователно са положителни в целия разглеждан интервал [1; 2]

Извод: Първата и втората производна са със постоянен знак в интервала [1; 2]. Следователно условията на метода са изпълнени.

Определяне на постоянна точка и начално приближение 
 f(x0) f’’(x) < 0

x0=1.
p= 2.

Определяне на постоянна величини 
p, f(p), M1, m1, K = ((M1-m1)/m1)

p= 2.
f[p]

Plot[Abs[f'[x]],{x,1,2}]

M1=Abs[f'[2.]]

m1=Abs[f'[1.]]

K=((M1-m1)/m1)

Итерационен процес

1-((-10.0023)/(-10.0023-41.3248))(1-2)

f[1.19487]

3.03767 Abs[1.19487-1]

Програмен код

f[x_]:=2(x^4)-11 Sin[2x]+3x-5;
x0=1.;p= 2.;
M1=Abs[f'[2.]]; m1=Abs[f'[1.]];
K=((M1-m1)/m1);
Print["n = ", 0, " (Subscript[x, n]) = ", x0,  " f((Subscript[x, n])) = ", f[x0]]
x=x0;
For[n=1,n≤3,n++,
xnext=x-((f[x])/(f[x]-f[p]))(x-p);
eps = K*Abs[xnext-x];
Print["n = ", n, " (Subscript[x, n]) = ", xnext,  " f((Subscript[x, n])) = ", f[xnext], " (Subscript[e, n]) = ", eps];
x=xnext

]

Програмен код със стоп-критерий при достигане на предварително зададена точност

f[x_]:=2(x^4)-11 Sin[2x]+3x-5;
x0=1.;p= 2.;
M1=Abs[f'[2.]]; m1=Abs[f'[1.]];
K=((M1-m1)/m1);
Print["n = ", 0, " (Subscript[x, n]) = ", x0,  " f((Subscript[x, n])) = ", f[x0]]
x=x0;
tochnost=(10^(-13));
eps = Infinity;
For[n=1,eps≥ tochnost,n++,
xnext=x-((f[x])/(f[x]-f[p]))(x-p);
eps = K*Abs[xnext-x];
Print["n = ", n, " (Subscript[x, n]) = ", SetPrecision[xnext,15],  " f((Subscript[x, n])) = ", f[xnext], " (Subscript[e, n]) = ", eps];
x=xnext

]