1、欢 迎 学 习 微机应用软件,1.4.4 解方程与方程组,解方程可分为两种 (1)对符号变量方程求解析解; (2)对非符号变量方程求数值解。,一、 求符号变量方程的解析解 调用格式:solve(eqn1, eqn2 , var1 , var2 )其中eqni为方程,vari为求解变量,若不指定,则为默认值。,1、求方程的解 例1: syms a b c x f=a*x2+b*x+c solve(f) ans = 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2),也可对指定变量求解 b=solve(f,b) b = -(a*x2+c)/x,例
2、2:可直接将方程代入 s=solve(cos(2*x)+sin(x)=1) s = 0 pi 1/6*pi 5/6*pi,例3:若符号表达式不含等号,则函数solve会自动将表达式转成等号右端为0的符号表达式 solve(p*tan(x)-r) ans = atan(r/p),例4:符号运算将数值结果用精确值表示,不化为小数。 s=solve(x3-2*x2=x-1) %得到精确数值解 vpa(s,10) %化为10位数的小数,又: x=solve(2*sin(3*x-pi/4)=1) x = 5/36*pi,2、使用指令solve解方程组, x,y=solve(1/x3+1/y3=28,1/
3、x+1/y=4,x,y), x y=solve(x+y-98,x(1/3)+y(1/3)-2), u v=solve(u3+v3-98,u+v-2),或: syms u v e f=solve(u3+v3-98,u+v-2), x,y=solve(1/x3+1/y3=28,1/x+1/y=4), syms x y z r1 r2 r3 x y z=solve(1/x+1/(y+z)-1/r1, 1/y+1/(z+x)-1/r2,1/z+1/(x+y)-1/r3), syms x y alpha x,y=solve(x2*y2-1,x-(y/2)-alpha),二、 求线性方程组的解析解与数值解
4、对形式为 Axb 的线性方程 组(这里 A 是nm的矩阵,b 是已知矢量,x 是未知矢量) , 可分为三种:,n=m且A非奇异 恰定方程 可尝试计算精确解nm 超定方程 可尝试计算最小二乘解nm 欠定方程 可尝试计算含有最少m的 基解, A=3 5 -7;2 -12 3;-1 9 8; b=34;-56;27; x1=Ab x2=linsolve(A,b),2、举例: 恰定方程,1、调用格式: linsolve(A,b) 求解析解 x =A b 求数值解注意:A,b可以是符号矩阵或数值矩阵, syms a11 a12 a13 a21 a22 a23 a31 a32 a33 b1 b2 b3;
5、A= a11 a12 a13; a21 a22 a23 ;a31 a32 a33 ; b= b1 ; b2 ; b3; X=linsolve(A,b) XX=Ab,A为符号矩阵,超定方程(方程个数多于自变量个数)此时不存在唯一解。求解超定方程一般采用最小二乘法。,例: x1+2x2=1 2x1+3x2=23x1+4x2=3 a=1 2;2 3;3 4;b=1;2;3; x=ab x = 1.00 0,例:有一组实验数据,在时间 t 测得数值y,如表所示:,这些数据被认为具有下面的衰减指数趋势: y(t)c1+c2e-t 求系数c1和c2,t=0 0.3 0.8 1.1 1.6 2.3; y=0
6、.82 0.72 0.63 0.60 0.55 0.50; A=ones(size(t) exp(-t) % 将数据代入方程式 y(t)c1+c2e(-t)中 c=Ay,A =1.0000 1.00001.0000 0.74081.0000 0.44931.0000 0.33291.0000 0.20191.0000 0.1003 c =0.47600.3413,y(t)0.4760+0.3413e-t,Cdfc.m,欠定方程(系统中未知数的个数比方程式的个数多) 欠定方程的解都不唯一,Matlab会计算一组构成通解的基解。, a=1 1 1;1 1 -1 b=10 6 p=ab p =8.0
7、00002.0000,=,三、 求非线性方程组的数值解 指令格式: x=fsolve(fun,x0)x=fsolve(fun,x0,options)x,fval=fsolve(fun,x0,)x,fval 零点的位置与对应的函数值,可以是矢量fun 与非线性方程对应的函数,通常用M文件建立x0 猜测的初始值,作为求解过程的出发点option 控制算法的优化选项,例: qg.m,解题步骤: 将x、y、z看作矢量X的三个分量,编写函数文件。 猜测一个初始值 指令窗输入fsolve指令求解,见fxyz2.m,补充:1.符号函数求导及其应用 指令格式: diff(f) 对缺省变量求微分 diff(f,
8、x) 对指定变量 x 求微分 diff(f,x,n) 对指定变量 x 求n阶微分,例1: syms x y z a b t f=(1+exp(x).(1/2) D=diff(f) D = 1/2/(1+exp(x)(1/2)*exp(x),例2:y=xcos(x),求y,y.f=x*cos(x);d2=diff(f,x,2) d3=diff(f,x,3) ans = -2*sin(x)-x*cos(x) ans = -3*cos(x)+x*sin(x),f1=a*cos(t);f2=b*sin(t); yx1=diff(f2)/diff(f1) yx2=(diff(f1)*diff(f2,2)
9、-diff(f1,2)*diff(f2)/(diff(f1)3,z=x*exp(y)/y2; zx=diff(z,x) % z对x的偏导数 zy=diff(z,y) % z对y的偏导数,2.符号积分与应用 指令格式:,例1:求不定积分,例1:求不定积分,x=sym(x); f=(3-x2); int(f) ans = 3*x-1/3*x3,例2:求定积分, int(abs(1-x),1,2)ans =1/2,例3:求定积分, f=1/(1+x2); int(f,-inf,inf) ans = pi,例4:求, int(4*t*x,x,2,sin(t)ans = 2*t*(sin(t)2-4),作业:1.解方程及方程组,2.有一组测量数据如下表所示,数据具有 y=a+bx2 的变化趋势,用最小二乘法求解y。,x= 1 1.5 2 2.5 3 3.5 4 4.5 5 y=-1.4 2.7 3 5.9 8.4 12.2 16.6 18.8 26.2,再 见,