restart; Digits:=16; IiM7 sec2_1_2:=x->3*(x+1)*(x-1/2)*(x-1); Zio2I0kieEc2IkYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlLCQqKCwmOSQiIiJGLUYtRi0sJkYsRi0jISIiIiIjRi1GLSwmRixGLUYwRi1GLSIiJEYlRiVGJQ== bisection:=proc(f,left,right,Tol) local N,Count,RootFound,a,b,m,x: N:=floor(ln((right-left)/Tol)/ln(2)): Count:=1: RootFound:=false: a:=evalf(left): b:=evalf(right): print(a,b); while ( (RootFound=false) and (Count<=N) ) do m := evalf(a+(b-a)/2): if (evalf(f(m))=0) then RootFound:=true: x:=m: else if sign(evalf(f(m)))=sign(evalf(f(a))) then a:=m: else b:=m: end if: x:=evalf(a+(b-a)/2): end if: Count:=Count+1: print(a,b,x); end do: end: bisection(sec2_1_2,-2.0,1.5,0.01); NiQkISM/ISIiJCIjOkYl NiUkISM/ISIiJCExKysrKysrK0QhIzskITErKysrKytENiEjOg== NiUkITErKysrKytENiEjOiQhMSsrKysrKytEISM7JCExKysrKysrdm9GKA== NiUkITErKysrKytENiEjOiQhMSsrKysrK3ZvISM7JCExKysrKytdaSEqRig= NiUkITErKysrKytENiEjOiQhMSsrKysrXWkhKiEjOyQhMSsrKytdaTo1RiU= NiUkITErKysrXWk6NSEjOiQhMSsrKysrXWkhKiEjOyQhMSsrKytdUDQnKkYo NiUkITErKysrXWk6NSEjOiQhMSsrKytdUDQnKiEjOyQhMSsrKytEIkcpKSpGKA== NiUkITErKysrXWk6NSEjOiQhMSsrKytEIkcpKSohIzskITErKytESiY+KyJGJQ== NiUkITErKytESiY+KyIhIzokITErKysrRCJHKSkqISM7JCExKysrdj08XioqRig= bisection(sec2_1_2,-1.25,2.5,0.01); NiQkISREIiEiIyQiI0QhIiI= NiUkIjErKysrKytdaSEjOyQiI0QhIiIkIjErKysrK11pOiEjOg== NiUkIjErKysrKytdaSEjOyQiMSsrKysrXWk6ISM6JCIxKysrKyt2JDQiRig= NiUkIjErKysrKytdaSEjOyQiMSsrKysrdiQ0IiEjOiQiMSsrKysrdiRmKUYl NiUkIjErKysrK3YkZikhIzskIjErKysrK3YkNCIhIzokIjErKysrXWlsKCpGJQ== NiUkIjErKysrXWlsKCohIzskIjErKysrK3YkNCIhIzokIjErKytdaTpONUYo NiUkIjErKysrXWlsKCohIzskIjErKytdaTpONSEjOiQiMSsrK3YkZmUrIkYo NiUkIjErKysrXWlsKCohIzskIjErKyt2JGZlKyIhIzokIjErKyt2JDRAIioqRiU= NiUkIjErKyt2JDRAIioqISM7JCIxKysrdiRmZSsiISM6JCIxKytdaTpOJikqKkYl