Presentation is loading. Please wait.

Presentation is loading. Please wait.

第六单元 第3课 实验 线性非线性方程及方程组求解

Similar presentations


Presentation on theme: "第六单元 第3课 实验 线性非线性方程及方程组求解"— Presentation transcript:

1 第六单元 第3课 实验 线性非线性方程及方程组求解
第六单元 第3课 实验 线性非线性方程及方程组求解 1. solve函数的使用 2. fsolve函数的使用

2 1. solve函数的使用 代数方程的求解一直都是数学分析中十分重要的内容。一般代数方程包括线性方程、非线性方程以及超越方程等。对于上述的方程类型的求解,Matlab符号数学工具箱提供了求解命令solve,其调用格式为:g=solve(eq)  求解符号表达式eq=0的代数方程,自变量为默认变量(以通过函数findsym来确定),其中eq可以是符号表达式或不带符号的字符串表达式。

3 (1)g=solve(eq,var)求解符号表达式eq=0的代数方程,自变量为var。返回值g是由方程的所有解构成的列向量.
(2)g=solve(eq1,eq2, …, eqn,var1, var2, …,varn)  求解符号表达式或不带符号的字符串表达式eq1,eq2,…,eqn组成的代数方程组,自变量分别为var1,var2,…,varn。当输出参数的个数和方程组的个数相等的时候,方程组的解将分别赋给每个输出参数,并且按照字母表的顺序进行排列。

4 例23-1 求线性代数方程的解。 >> syms  x y z >>f1='x+y+z=10'; >>f2='3*x+2*y+z=14'; >>f3='2*x+3*y-z=1'; >> [x,y,z]=solve(f1,f2,f3) x =        1 y =        2 z =        7

5 例23-2 求解非线性方程组的数值解。 >> syms  xy >>[x,y]=solve('x^2-2*x*y+y^2=3','x^2-4*x+3=0'); >> solution=[x,y] solution = [        1, 1+3^(1/2)] [        1,  1-3^(1/2)] [        3, 3+3^(1/2)] [        3,  3-3^(1/2)]

6 例23-3 求解含有参数的非线性方程组的解。 >>syms  a b x y >>f1='a+b+x=y'; >>f2='2*a*x-b*y=-1'; >>f3='(a+b)^2=x+y'; >>f4='a*y+b*x=4'; >>[a,b,x,y]=solve(f1,f2,f3,f4); >>a=double(a),b=double(b),x=double(x),y=double(y)     

7  % 将解析解的符号常数形式转换为双精度形式
a =                             i    i b =               i   i x =               i   i y =                             i   i

8 例23-4 求解超越方程组的解。 >>syms  x y >>S=solve('sin(x+y)-exp(x)=0','x^2-y=2'); >>S S=          x: [2x1 sym]          y: [2x1 sym] 程序的结果中,并没有显示方程组的解,只是显示方程结果的属性和维数。在本例中,变量x和y都是符号变量,维数都是2x1。

9 若要查看各个变量的具体数值,则输入: >>S.x ans=                      >>S.y                      

10 2. fsolve函数的使用 格式:x=fsolve(Fun, x0) 一般求解语句
 [x, f, flag, out]=fsolve(Fun, x0,opt, p1, p2,…)  若返回的flag 大于0,则表示求解成功,否则求解出现问题, opt 求解控制参数,结构体数据。 例23-4   

11 function q = my2deq(p)   q=[p(1)*p(1)+p(2)*p(2)-1; 0.75*p(1)^3-  p(2)+0.9]; end >> OPT=optimset; OPT.LargeScale='off'; >> [x,Y,c,d] = fsolve('my2deq',[1; 2],OPT) Optimization terminatedsuccessfully:  First-order optimality is less than options.TolFun.

12 x =    0.3570    0.9341 Y =  1.0e-009 *    0.1215    0.0964 初值改变有可能得出另外一组解。故初值的选择对解的影响很大,在某些初值下甚至无法搜索到方程的解。

13 例23-5

14 Optimization terminated:first-order optimality is less than options
Optimization terminated:first-order optimality is less than options.TolFun. x =    fval =  1.0e-006 *         


Download ppt "第六单元 第3课 实验 线性非线性方程及方程组求解"

Similar presentations


Ads by Google