solve函数可用来求解代数方程(组)与非线性方程(组),具体使用格式如下:solve(F,var):用于求解单个方程情形,F表示求解方程,var表示求解变量。当求解变量省略时,表示对默认变量求解。若方程为符号方程,求解变量为符号变量时,上述格式中的单引号省略;〔x1,x2,,xn〕solve(F1,F2,,Fn,var1,var2,,varn):用于求解n个方程组成的方程组问题,F1,F2,,Fn表示各个方程,var1,var2,,varn表示各个求解变量,〔x1,x2,,xn〕表示求解结果。Ssolve(eqn,var)Ssolve(eqn,var,Name,Value)Ysolve(eqns,vars)Ysolve(eqns,vars,Name,Value)〔y1,。。。,yN〕solve(eqns,vars)〔y1,。。。,yN〕solve(eqns,vars,Name,Value)〔y1,。。。,yN,parameters,conditions〕solve(eqns,vars,ReturnConditions,true) 实例求解 1。求解单变量方程 程序symsxeqnsin(x)1;solxsolve(eqn,x) 运行结果solxpi2 程序symsx是必要的,这将会把x设为符号变量eqx22x1;eq也会变为一个符号变量用于储存方程ssolve(eq,x)方程的结果由solve函数返回,存储在s里。注意(eq,x)中x是说明eq这个方程中x为变量如果返回empty,则表明解不存在。如果返回emptywarning,则解可能存在,但是solve找不到 运行结果s11 2。对方程组的求解 程序symsxyeq1x2y8;eq23x5y4;s1solve(eq1,eq2,x,y)s1。xs1。y〔s11,s111〕solve(eq1,eq2,x,y) 运行结果s1包含以下字段的struct:x:〔11sym〕y:〔11sym〕ans32ans20s1132s11120 3。返回数值解 程序解析解(analyticalsolution):用严格的公式表示的解。数值解(numericalsolution):无法用严格的公式表示,是采用某种计算方法(有限元、逼近、插值)得到的。symbolicsolver无法找到精确的用符号表示的解,因此在调用numericsolver之前会事先声明(warning)。因为等式不是多项式,所以想要找到全部可能的解需要很长时间。numericsolver不会尽力去找等式的全部numericsolution,它仅仅返回它找到的第一个解。clc,clearsymsxsolve(sin(x)x21,x)验证上面的等式确实有一个正值解:画出等式的左右两部分的曲线ezplot(sin(x),2,2)holdonezplot(x21,2,2)holdoff也可以直接用函数vpasolve求出数值解(需要定义(寻找)解的范围)vpasolve(sin(x)x21,x,〔02〕) 运行结果ans0。63673265080528201088799090383828ans1。4096240040025962492355939705895 4。求解不等式 程序clc,clearsymsxySsolve(x2y2xy1,x0,y0,〔x,y〕,ReturnConditions,true);solxS。xsolyS。yparamsS。parametersconditionsS。conditions利用subs和isAlways检验u72和v12是否满足约束条件isAlways(subs(S。conditions,S。parameters,〔72,12〕))isAlways返回loogical1(true)表示这些值满足约束条件。将这两个参数的值带入(函数subs)S。x和S。y中,找到一个x和y的解solxsubs(S。x,S。parameters,〔72,12〕)solysubs(S。y,S。parameters,〔72,12〕)用函数vpa得到解的数值形式vpa(solx)vpa(soly) 运行结果solx(3v2u)(12)2v2solyvparams〔u,v〕conditions4v2uu40vanslogical1solx11(12)414soly12ans0。57915619758884996227873318416767ans0。5 5。返回实数解 程序clc,clearsymsxsolve(x53125,x)如果仅仅需要一个实数解,那么就把选项Real设置成truesolve(x53125,x,Real,true) 运行结果ans5(2(12)(55(12))(12)5i)4(55(12))454(2(12)(55(12))(12)5i)4(55(12))454(55(12))4(2(12)(5(12)5)(12)5i)454(55(12))4(2(12)(5(12)5)(12)5i)454ans5 6。符号解求解多变量方程 程序为了避免求解方程时对符号参数产生混乱,需要指明一个等式中需要求解的变量。如果不指明的话,solve函数就会通过symvar选择一个变量(认为该变量是要求解的变量)clc,clearsymsabcxsolasolve(ax2bxc0,a)待求解的变量是asolsolve(ax2bxc0)待求解的变量是x 运行结果sola(cbx)x2sol(b(b24ac)(12))(2a)(b(b24ac)(12))(2a) 本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。 作者郭志龙 编辑郭志龙 校对郭志龙