Метод на разполовяването
Пример от стр. 48

Локализация на корена:

Plot[((x^2)/4)-Sin[x],{x,-10,10}]

Plot[((x^2)/4)-Sin[x],{x,0,5}]

Plot[((x^2)/4)-Sin[x],{x,1,2}]

Plot[((x^2)/4)-Sin[x],{x,1.8,2}]

Проверка на условията за локализация:

f[x_]:=((x^2)/4)-Sin[x] (* дефинираме функцията *)

f[1.8]

f[2.]

Извод: Знаците на функцията в двата края на интервала са различни, следователно е изпълнонено условието за локализация f(a).f(b)<0

Извършваме алгоритъма на метода на разполовяването:

f[1.9]

f[1.95]

((1.9+1.95)/2)

Писане на програма за извършване на алгоритъма:

тест на програмата за 2 стъпки:

Clear[a,b]
a=1.8;b=2;
For[k=0,k≤ 2,k++,
(* body *)
	m=((a+b)/2);
	Print["k = ",k,": a = ",a, " b = ",b, " m = ",m, " f(m) = ",f[m]];
	If[f[m]>0,
	b=m (* true *),
	a=m (* false *)]
(* end For *)]

Програмата реализира Steps на брой стъпки

Clear[a,b]
a=1.8;b=2;
Steps = 5;
For[k=0,k≤ Steps,k++,
(* body *)
	m=((a+b)/2);
	Print["k = ",k,": a = ",a, " b = ",b, " m = ",SetPrecision[m,20], " f(m) = ",f[m]];
	If[f[m]>0,
	b=m (* true *),
	a=m (* false *)]
(* end For *)]

Алгоритъм със стоп-критерий при достигане на исканата в условието грешка:

Clear[a,b]
a=1.8;b=2;
f[x_]:=((x^2)/4)-Sin[x] ;(* дефинираме функцията *)
eps = (10^(-6));
epsk = Infinity;
For[k=0,epsk > eps,k++,
(* body *)
	(*epsk = ((b-a)/(2^(k+1)));*)
	epsk= ((b-a)/2);
	m=((a+b)/2);
	Print["k = ",k,": a = ",a, " b = ",b, " m = ",m, " f(m) = ",f[m], " epsk = ", epsk];
	If[f[m]>0,
	b=m (* true *),
	a=m (* false *)];
	(* end For *)]

Колко стъпки са необходими за достигане на точност  eps = (10^(-6)):

eps = (10^(-6));
Log[2,((2-1.8)/eps)]-1