符号方程的求解
MATLAB7.0中的符号计算可以求解线性方程(组)、代数方程的符号解、非线性符号方程(组)、常微分方程(组),求解这些方程(组)是通过调用solve函数实现的,如求解代数方程的符号解调用solve函数的格式是solve('eq')、solve('eq','v')、[x1,x2,…xn]=solve('eq1','eq2',…'eqn')等,求解非线性符号方程是调用优化工具箱的fsolve函数,调用格式有fsolve(f,x0)、fsolve(f,x0,options)、[x,fv]=fsolve(f,x0,options,p1,p2…)等,而解常微分方程(组)则是调用dsolve函数,调用的格式有[x1,x2,…]=dsolve('eq1,eq2,…','cond1,cond2…','v')。现将各函数的调用格式列于下表(表5—1),在各个实例中说明各种格式的用法。
表5—1 符号方程求解的solve函数调用格式
调用格式
说明
solve('eq')
对系统默认的符号变量求方程eq=0的根。
solve('eq','v')
对指定变量v求解方程eq(v)=0的根。
[x1,x2,…xn]=solve('eq1','eq2',…'eqn')
对系统默认的一组符号变量求方程组eqi=0(i=1,2,…n)的根。
[v1,v2,…vn]=solve('eq1','eq2',…'eqn','v1','v2',…'vn')
对指定的一组符号变量v1,v2,…vn求方程组eqi=0(i=1,2,…n)的根。
linsolve(A,B)
求符号线性方程(组)AX=B的解。相当于X=sym(A)\sym(B)
fsolve(f,x0)
从x0开始搜索f=0的解。
fsolve(f,x0,options)
根据指定的优化参数options从x0开始搜索f=0的解。
fsolve(f,x0,options,p1,p2…)
优化参数option不是默认时,在p1,p2…条件下求f=0解。优化参数option可取的值有0(默认)和1
[x,fv]=fsolve(f,x0,options,p1,p2…)
优化参数option为默认时,在p1,p2…条件下求f=0解,并输出根和目标函数值。
[x,fv,ex]=fsolve(f,x0,options,p1,p2…)
优化参数option为默认时,在p1,p2…条件下求f=0解,并输出根和目标函数值,并通过exitflag返回函数的退出状态。
[x,fv,ex,out]=fsolve(f,x0,options,p1,p2…)
优化参数option为默认时,在p1,p2…条件下求f=0解,并给出优化信息。
[x,fv,ex,out,jac]=fsolve(f,x0,options,p1,p2…)
优化参数option为默认时,在p1,p2…条件下求f=0解,输出值为x处的jacobian函数。
[x1,x2,…]=dsolve('eq1,eq2,…','cond1,cond2…','v')
在初始条件为cond1,cond2…时求微分方程组eq1,eq2,…对指定变量v的特解。
[x1,x2,…]=dsolve('eq1','eq2',…,'cond1','cond2'…,'v')
同[x1,x2