学习R语言编程——常用算法——二分法

############################常用算法——二分法#################################

###用二分法求下面方程在(-10,10)的根.2*x^3-4*x^2+3*x-6 = 0

#while

f = function(x) 2*x^3-4*x^2+3*x-6

x0 = -10;x1 = 10

while(abs(x0-x1)>1e-6){

if(f(x0)*f(x1)>0){

print("no root")

break

}

x2 = (x0+x1)/2

if(f(x2)==0){cat(x2);break}

if(f(x0)*f(x2)<0){

x1 = x2

}else{

x0 = x2

}

}

x0

 

#repeat

f = function(x) 2*x^3-4*x^2+3*x-6

x0 = -10;x1 = 10

repeat{

if(f(x0)*f(x1)>0){

print("no root")

break

}

x2 = (x0+x1)/2

if(f(x2)==0){cat(x2);break}

if(f(x0)*f(x2)<0){

x1 = x2

}else{

x0 = x2

}

if(abs(x0-x1)<1e-6){

cat(x0)

break

}

}