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

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

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

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

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

пояснение, че не винаги хоризонталната ос е абсцисата:

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

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

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

f[1]

f[1.]

f[2.]

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

Извършване на стъпките по метода

Използваме Mathematica като калкулатор

f[1.5]

f[1.25]

((1.25+1.5)/2)

Съставяме програмен код

f[x_]:=2(x^4)-11Sin[2x]+3x-5
a=1.; b=2;
For[i=0,i≤3,i++,
m=((a+b)/2);eps=((b-a)/2);
Print["i = ",i," (Subscript[a, i]) = ",a," (Subscript[b, i]) = ",b," (Subscript[m, i]) = ",m," f((Subscript[m, i])) = ",f[m]," грешка = ",eps];
If[f[m]>0,b=m,a=m]

]

правим повече стъпки:

f[x_]:=2(x^4)-11Sin[2x]+3x-5
a=1.; b=2;
For[i=0,i≤30,i++,
m=((a+b)/2);eps=((b-a)/2);
Print["i = ",i," (Subscript[a, i]) = ",SetPrecision[a,10]," (Subscript[b, i]) = ",SetPrecision[b,10]," (Subscript[m, i]) = ",SetPrecision[m,10]," f((Subscript[m, i])) = ",f[m]," грешка = ",eps];
If[f[m]>0,b=m,a=m]

]

Оценка на броя на стъпките за достигане на точност

Въпрос: Колко стъпки гарантират предварително зададена точност? (за примера точността е ϵ = (10^(-6)))

Log2[((2-1.)/(10^(-6)))]-1

Извод: Нужни са ни 19 стъпки (итерации) за достигане на точност ϵ = (10^(-6)) (взимаме най-малкото цяло число, което е по-голямо от полученото)