资源描述:
《3.7符号代数方程求解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、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】>>so
2、lve(‘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^2solve函数也可解方程组。【例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–10;-110–2]');b=sy
3、m('[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–10;-110–2]');[1/9]b=sym('[1;2]'[19/72]ab3.7.2符号代数非线性方程求解符号代数非线性方程的求解可以通过函数fsolve来实现。fsolve以最小二乘法求解非线性方程,其调用格式如下:x=fsolve(fun,x0)输入参数中的x0为所求解方程的
4、初始向量或矩阵,fun为所要求解的符号方程,它通常是以M文件的形式给出x=fsolve(fun,x0,options)输入参数中的options是可选参数,它可以通过optimset函数生成。详情可看optimset函数。可选参数options可以是Display,TolX,TolFun,DerivativeCheck,Diagnostics,Jacobian,JacobPatten,LineSearchType,Levenbarquardt,MaxFunEvals,Maxlter,DiffMi
5、nChange,DiffMaxChange,LargeScak,MaxPCGIter,PrecondBandWidth,TolPCG,TypicalX等。x=fsolve(fun,x0,options,pl,p2,…)pl,p2,…直接赋给函数fun,即fun(x,p1,p2,…。此时,若options使用默认值,需要输入空矩阵。−x⎧⎪2x−y−e=0【例3.7.7】用fsolve解方程组⎨−y⎪⎩−x+2y−e=0首先,编写文件名为myfun.m的m文件如下:functionF=myfun(
6、x)F=[2*x(1)-x(2)-exp(-x(1));-x(1)+2*x(2)-exp(-x(2))];然后,在MATLAB主窗口中输入:>>x0=[-5;-5];options=optimset('Display','iter');[x,fval]=fsolve('myfun',x0,options)NormofFirst-orderIterationFunc-countf(x)stepoptimalityCG-iterations1447071.212.29e+0040276527.471
7、.452073.09e+0031310918.3721.491864181413127.741.5532657.3151614.91531.575918.2616190.7790511.276621.1417220.003724530.4846580.068318259.21615e-0080.03855520.00033619285.65915e-0170.0001937078.34e-0091Optimizationterminatedsuccessfully:Relativefunctio
8、nvaluechangingbylessthanOPTIONS.TolFun