f[x_]:=(x^2)+5x-56 Cos[x]-11
Plot[f[x],{x,-20,20}]

Plot[f[x],{x,-20,20},AxesOrigin->{0,0}]

Plot[f[x],{x,5,7}]

Plot[f[x],{x,5,7}, AxesOrigin->{0,0}]

Извод: От графиката на функцията намерихме, че имаме общо 4 на брой реални корена (областта, в която не бяхме сигурни я визуализирахме отделно). Най-малкият корен се намира най-отляво, а най-големият - най-отдясно на графиката.

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

Plot[f[x],{x,-7.8,-7}]

f[-7.8]

f[-7.]

Извод: относно знаците на стойностите...

Проверка на условията на метода

Plot[f'[x],{x,-7.8,-7}]

Извод: Стойностите на първата производна f’(x) са в интервала [-66, -45], следователно f’(x)<0 за целия интервал по x [-7.8; -7].

Plot[f''[x],{x,-7.8,-7}]

Извод: Стойностите на втората производна f’’(x) са в интервала [0, 50], следователно f’’(x)>0 за целия интервал по x [-7.8; -7].

Определяне на началното приближение x0 и на постоянната точка p:

Т.к. f’’(x)>0 следва, че избираме x0, така че f(x0)<0 => x0=-7 (f(-7)<0). Тогава за постоянната точка ще имаме p=-7.8

Plot[{f'[x], Abs[f'[x]]},{x,-7.8,-7}]

Plot[ Abs[f'[x]],{x,-7.8,-7}]

максимума на |f’(x)| на интервала [-7.8; -7] е  |f’(-7.8)|

M1=Abs[f'[-7.8]]

минимума на |f’(x)| на интервала [-7.8; -7] е  |f’(-7)|

m1 =Abs[f'[-7.]]

CC=((M1-m1)/m1)

x0 = -7;
p=-7.8;
x1 = x0-((f[x0])/(f[x0]-f[p]))(x0-p)

Plot[f[x],{x,-7.8,-7}]

f[x1]

eps1 = CC*Abs[x1-x0]

Програма, реализираща метода на хордите

x0 = -7.;
p=-7.8;
M1=Abs[f'[-7.8]];
m1 =Abs[f'[-7.]];
CC=((M1-m1)/m1);
xpred = x0;
Print[" n = 0: x = ", x0, " f(x) = ", f[x0]];
For[n=0,n≤5, n++,
xsled = xpred-((f[xpred])/(f[xpred]-f[p]))(xpred-p);
eps = CC*Abs[xsled - xpred];
Print[ " n = ", n+1, ": x = ", SetPrecision[xsled,12], " f(x) = ", f[xsled], " eps = ", eps];
xpred = xsled;
]

Програма със стоп-критерий:

x0 = -7.;
p=-7.8;
M1=Abs[f'[-7.8]];
m1 =Abs[f'[-7.]];
CC=((M1-m1)/m1);
xpred = x0;
Print[" n = 0: x = ", x0, " f(x) = ", f[x0]];
epsusl = 10^(-10);
eps = 1;
For[n=0,eps ≥ epsusl, n++,
xsled = xpred-((f[xpred])/(f[xpred]-f[p]))(xpred-p);
eps = CC*Abs[xsled - xpred];
Print[ " n = ", n+1, ": x = ", SetPrecision[xsled,12], " f(x) = ", f[xsled], " eps = ", eps];
xpred = xsled;
]