文档详情

3.7符号代数方程求解.pdf

发布:2018-04-28约3.47千字共8页下载文档
文本预览下载声明
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
显示全部
相似文档