﻿功能:二分法求解一元方程.

格式:
[x,error]=SolveRootDichotomy(f,xn,a,b,error0,loopn)
[x,error]=SolveRootDichotomy(f,xn,a,b,error0)
[x,error]=SolveRootDichotomy(f,xn,a,b)
[x,error]=SolveRootDichotomy(f,xn,a)
[x,error]=SolveRootDichotomy(f,xn)
[x,error]=SolveRootDichotomy(f)

f:为符号表达式或者直接是一个输入的表达式,其代表一元方程
xn:表达式里未知数变量的名称,默认为x
a:二分法的起始点,默认为-1000
b:二分法的终点,默认为1000
error0:误差控制变量,默认为1e-8
loopn:二分法的最多分割次数,默认为1000

x:求得的解
error:返回的误差变量

说明:使用本函数求解的时候,必须保证函数在a与b两点的值的符号是异号的,否则程序将直接返回端点的值。所以在使用本函数前,建议使用Plot函数先大致绘制曲线,然后确定二分区间

例子:
f="48387*sin(x)+207772*sin(x)^2+22120*sin(x)*(cos(x)+1)+167281*sin(x)*(cos(x)-2)-103886*cos(x)*(2*cos(x)-1)-48387*sin(x)*(3*cos(x)-1)"
[x,er]=SolveRootDichotomy(f,x,0.9,1.33,1e-16,1000)//执行命令后返回如下的解
x =
[ 1.144824944946600  ]   
er=
[ 1.81898940354E-11 ]