3.7符号代数方程求解.pdf
文本预览下载声明
3.7 符号代数方程求解
在MATLAB符号数学工具箱中,符号方程式
是含有等号的符号表达式。符号方程的求解包括
符号线性方程的求解、非线性方程的求解和符号
微分方程的求解等。
3.7.1 符号代数线性方程求解
符号代数线性方程求解可以通过函数“solve”、
“linsolve”来实现。so1ve 函数的求解如下所示:
【例3.7.1 】 ans =
solve(‘p*sin(x)=r’) asin(r/p)
如果符号表达式不含等号,则函数solve会自动
将表达式转换成等号右端为0 的符号方程,例如:
【例3.7.2 】
solve(‘p*tan(x)-r’)
ans =
atan(r/p)
如果想对非默认变量求解,则solve 函数必须指
定变量 。例如:
【例3.7.3 】
solve(‘a*x^2+b*x+c’,’a’)
ans =
-(b*x+c)/x^2
solve 函数也可解方程组。
【例3.7.4 】
[x,y]=solve(‘x^2+x*y+y=3’,’x^2-4*x+3=0’)
x =
[ 1]
[ 3]
y =
[ 1]
[ -3/2]
linsolve 函数的求解如下例所示:
【例3.7.5 】
a=sym([10 –1 0;-1 10 –2] );
b=sym([1;2] );
linsolve(a,b)
ans =
[ 1/9]
[ 19/72]
实际上,x=linsolve(a,b) 与x=sym(a)\sym(b)
的结果相同。
【例3.7.6 】 ans =
a=sym([10 –1 0;-1 10 –2] ); [ 1/9]
b=sym([1;2] [ 19/72]
a\b
3.7.2 符号代数非线性方程求解
符号代数非线性方程的求解可以通过函数fsolve
来实现。fsolve 以最小二乘法求解非线性方程,其调
用格式如下:
x=fsolve(fun,x0) 输入参数中的x0为所求解方程
的初始向量或矩阵,fun为所要求解的符号方程,
它通常是以M文件的形式给出
x=fsolve(fun,x0 ,options) 输入参数中的options是可
选参数,它可以通过optimset 函数生成。详情可看
optimset 函数。可选参数options可以是Display ,
TolX ,TolFun , DerivativeCheck ,Diagnostics ,
Jacobian ,JacobPatten ,LineSearchType ,
Levenbarquardt , MaxFunEvals ,Maxlter ,
DiffMinChange ,DiffMaxChange ,LargeScak ,
MaxPCGIter , PrecondBandWidth ,TolPCG ,
TypicalX等。
x=fsolve(fun,x0,options,pl,p2,…) pl ,p2 ,…直接赋
给函数fun ,即fun(x,p1,p2, … 。此时,若options使
用默认值,需要输入空矩阵。
⎧ − − −x
2
显示全部