[理学]matlab仿真备课教案.doc
《[理学]matlab仿真备课教案.doc》由会员分享,可在线阅读,更多相关《[理学]matlab仿真备课教案.doc(83页珍藏版)》请在三一文库上搜索。
1、一、 Matlab数值计算Matlab特殊运算符-冒号的使用: a=10:3:30(,其中是数组的第一个元素,是步长,最后一个元素)a = 10 13 16 19 22 25 28 a=10:-1:0a =10 9 8 7 6 5 4 3 2 1 0 a=10:15a =10 11 12 13 14 15 a=1 2 3;4 5 6;7 8 9a = 1 2 3 4 5 6 7 8 9 B=a(1:2,3)B = 3 6 B=a(2:3,:)B = 4 5 6 7 8 9二、 Matlab的数组、矩阵运算1. 一维数组元素的标识、访问与赋值 x=1*pi 2*pi 3*pi 4*pi 5*pi
2、x =3.1416 6.2832 9.4248 12.5664 15.7080 x(3)ans = 9.4248 x(3:end)ans =9.4248 12.5664 15.7080 x(3:-1:1)ans =9.4248 6.2832 3.1416 x(find(x x(4 2 5)ans =12.5664 6.2832 15.7080 x(1)=1; xx =1.0000 6.2832 9.4248 12.5664 15.7080 a=1 2*pi sqrt(3) 4+5ia =1.0000 6.2832 1.7321 4.0000 + 5.0000i B=1 2 3B = 1 2 3
3、三、 多项式及其运算多项式的系数行向量为:1. 多项式求根求多项式的根。 p=1 8 17 10; roots(p) 【注:roots多项式求根】ans = -5.0000 -2.0000 -1.00002. 由根求多项式已知多项式的根分别为-1、-2、-5,试求此根对应的多项式。 p=poly(-1,-2,-5) 【注:poly由根求多项式】p = 1 8 17 10注:多项式的Poly( )与roots( )函数互为逆运算。3. 多项式求值求多项式在指定点处的值。 p=1 2 3 4 5; polyval(p,3) 【注:polyval多项式求值】ans =1794. 多项式乘法(卷积)与
4、多项式除法(解卷)求多项式与的卷积。 p=1 2 3; q=4 5 6; r=conv(p,q) 【注:conv多项式乘法】r = 4 13 28 27 18 s=deconv(r,p) 【注:deconv多项式除法】s = 4 5 65. 分式多项式的部分分式展开已知一传递函数,将其分解为部分分式。 a=1 2; b=1 4 3; z,p,k=residue(a,b)【注:residue分式多项式的部分分式展开】z = 0.5000 0.5000p = -3 -1k = 即得传递函数分解的部分分式:6. 多项式求导求多项式的导数。 a=1 2 3 4 5; b=polyder(a) 【注:p
5、olyder多项式求导】b = 4 6 6 4四、 Matlab符号运算基础通过Matlab的符号运算功能,可以求解科学计算中数学问题的符号解析表达式精确解。符号对象(symbolic object)是Symbolic Math Toolbox定义的一种新的数据类型,用来存储代表非数值的字符符号。创建符号对象与函数命令:sym( )、syms( )与class( ).1 Matlab符号对象的基本运算与关系运算例:有符号表达式与,试计算 syms a b c p k x y e e1 e2; e1=a*c*x2*y+a*p*x2+b*c*x*y+b*p*x+c*k*y+k*p; e2=c*y+
6、p; ans1=simple(e1/e2)【simple为符号表达式化简函数】 ans1 =a*x2+b*x+k2 Matlab符号运算的基本函数 符号变量代换及其函数subs(S,old,new)已知,试对其进行符号变量替换:、;符号常量替换:、与数值数组替换:。 syms a b c d k n x y w t; f=a*xn+b*y+k; f1=subs(f,a b k,sin(t) log(w) c*exp(-d*t) f1 =sin(t)*xn+log(w)*y+c*exp(-d*t) f2=subs(f,n k,5 pi) f2 =a*x5+b*y+pi f3=subs(f,k,1
7、:4) f3 = a*xn+b*y+1, a*xn+b*y+2, a*xn+b*y+3, a*xn+b*y+4 Matlab符号表达式的化简a). 符号表达式因式分解的函数命令factor( ),其调用格式为:factor(E)已知,试对其因式分解。 syms a b c; f=a4*(b2-c2)+b4*(c2-a2)+c4*(a2-b2); f1=factor(f) f1 =(b-c)*(b+c)*(a-c)*(a+c)*(a-b)*(a+b)b).符号表达式展开的函数expand( ),其调用格式为:expand( E)已知,试将其展开。 syms x; f=cos(3*acos(x);
8、 f1=expand(f) f1 =4*x3-3*x即有这样结果:3 Matlab符号微积分运算 Matlab符号极限运算命令为limit( )。调用格式limit(F,x,a ); limit(F, a ) ;limit(F) limit(F,x,a ,right) limit(F,x,a ,left)举例:试证明并求 syms n limit(1+n)(1/n),n,0)ans =exp(1) syms x a limit(sin(x)-sin(a)/(x-a),a)ans =cos(a) Matlab符号函数微分运算Matlab系统提供的函数命令diff( ),其调用格式:dfvn=di
9、ff(f,v,n)即函数f按指定的自变量v计算其n阶导数。举例:已知函数,试求。 syms x a; f=1/(1+x2) x*exp(x2);log(sin(x) xx; dfdx=collect(factor(diff(f,2)【collect符号表达式同类项合并的函数】dfdx = 2*(3*x2-1)/(1+x2)3, 6*x*exp(x2)+4*x3*exp(x2) -(sin(x)2+cos(x)2)/sin(x)2, xx*(log(x)2+2*log(x)+1)+xx/x例:已知函数,试求与。 syms x y; f=log(x+log(y); dfdx=collect(dif
10、f(f,x)dfdx =1/(x+log(y) dfdx=collect(diff(f,y)dfdx =1/y/(x+log(y) Matlab符号函数积分运算Matlab系统提供的函数命令int( ),不仅可以计算不定积分,定积分,广义积分。int(s,v)计算符号函数或表达式S对指定的符号变量V的不定积分。Int(S,v,a,b) 计算符号函数或表达式S对指定的符号变量V从下限a到上限b的定积分。例:已知导函数,试求原函数。 syms x; dfdx=exp(x) sin(x);cos(x) x(1/2); f=int(dfdx)f = exp(x), -cos(x) sin(x), 2/
11、3*x(3/2)例:试计算与 syms x; I=int(x*sin(x)2,x,0,pi)I =1/6*pi3-1/4*pi syms a x y; f=x2+y2; I=int(int(f,x,(y-a),y),y,a,3*a)I =14*a4 符号求和函数与taylor(泰勒)级数展开函数(a) 符号求和函数在Matlab中提供了级数求和的函数命令symsum( ),调用格式为:s=symsum(S,v,a,b)举例:求幂级数的和。 syms x n; f=x(2*n-1)/(2*n-1); s=collect(symsum(f,n,1,inf)s =1/2*log(1+x)/(1-x)
12、(b) Taylor级数展开函数若函数在点的某一领域内具有从1(阶)直到阶的导数,则在该领域内,函数在点时,项数趋向无穷级数。格式:taylor(f,x); taylor(f,n); taylor(f,c,n); taylor(f,a)例:试求函数的Taylor级数展开式。 syms x; f=sin(x)/x; T=taylor(f,8)T =1-1/6*x2+1/120*x4-1/5040*x64 Matlab符号方程求解 Matlab符号代数方程求解使用Matlab符号方程解算的函数命令来求解方程。调用格式:Solve(eqn1, eqn2, eqn3,、V1, V2, 、VN)例:解方
13、程: syms x a b c; x=solve(a*x2+b*x+c=0)x = 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2) Matlab符号微分方程求解dsolve(equ1, equ2、初始条件部分,指定独立变量部分)例:求满足初始条件的二阶常系数齐次微分方程的特解:,。 syms x y; s=dsolve(D2s+2*Ds+s=0,s(0)=4,Ds(0)=-2,t); s=simple(factor(s)s =2*exp(-t)*(2+t)结果验证: syms x y; s=2*exp(-t)*(2+t); L=diff(
14、diff(s,t)+2*diff(s,t)+sL =0R=0,左边=右边,即相等。线性代数问题的MATLAB求解一、矩阵的参数化分析(1) 矩阵的行列式det(A) A=sym(a11 a12;a21 a22)A = a11, a12 a21, a22 det(A) ans =a11*a22-a12*a21 A=sym(a11 a12 a13;a21 a22 a23;a31 a32 a33)A = a11, a12, a13 a21, a22, a23 a31, a32, a33 B=det(A)B =a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a3
15、2+a31*a12*a23-a31*a13*a22 a=2 2 3;4 5 3;1 8 9a = 2 2 3 4 5 3 1 8 9 det(a)ans = 57(2) 矩阵的迹trace(A)-矩阵的迹为该矩阵对角线上各元素之和。 A=sym(a11 a12 a13;a21 a22 a23;a31 a32 a33)A = a11, a12, a13 a21, a22, a23 a31, a32, a33 trace(A)ans =a11+a22+a33 a=2 2 3;4 5 3;1 8 9a = 2 2 3 4 5 3 1 8 9 trace(a)ans = 16(3) 矩阵的秩rank(
16、A)表示为该矩阵中行列式不等于0的子式最大阶次,所谓子式,即从原矩阵中任取K行K列所构成的子矩阵。 A=sym(a11 a12 a13;a21 a22 a23;a31 a32 a33)A = a11, a12, a13 a21, a22, a23 a31, a32, a33 rank(A) ans =3 a=2 2 3;4 5 3;1 8 9a = 2 2 3 4 5 3 1 8 9 rank(a)ans = 3(4) 矩阵的特征多项式、特征方程与特征根(eigenvalues) A=sym(a11 a12 ;a21 a22) A = a11, a12 a21, a22 c=poly(A) c
17、 =x2-a22*x-a11*x+a22*a11-a12*a21例:设矩阵,求其特征值。即:故该方程的特征值是(二重)和 A=1 2 2;2 1 2;2 2 1A = 1 2 2 2 1 2 2 2 1 c=poly(A)c = 1 -3 -9 -5 p=1 -3 -9 -5; roots(p)ans = 5.0000 -1.0000 + 0.0000i -1.0000 - 0.0000i(5) 多项式及多项式矩阵的求值C=polyval(a,x)(6) 矩阵的特征值问题 A=sym(a11 a12 ;a21 a22)A = a11, a12 a21, a22 eig(A)ans = 1/2*
18、a11+1/2*a22+1/2*(a112-2*a22*a11+a222+4*a12*a21)(1/2) 1/2*a11+1/2*a22-1/2*(a112-2*a22*a11+a222+4*a12*a21)(1/2)计算矩阵的特征值d、特征值(对角矩阵)D与特征向量矩阵V,并用AV=VD进行验算。注:在Matlab中,使用函数命令eig( )计算矩阵的特征值与特征向量。调用格式d=eig(A);V,D=eig(A)。 A=3 -1;-1 3; B=eig(A)B = 4 2 V,D=eig(A)V =-0.7071 -0.7071 -0.7071 0.7071D = 2 0 0 4 E=A*
19、VE =-1.4142 -2.8284 -1.4142 2.8284 F=V*DF = -1.4142 -2.8284 -1.4142 2.8284Matlab的矩阵特征值的结果满足AV=VD,且V矩阵每个特征向量各元素的平方和(即列向量的2范数)均为1.设阶矩阵的特征值为,不难证明:(1);(2)(7) 矩阵求逆求矩阵的逆矩阵。 syms a b c d; p=a b;c d; inv(p)ans = d/(a*d-b*c), -b/(a*d-b*c) -c/(a*d-b*c), a/(a*d-b*c)即矩阵的逆矩阵: A=sym(a11 a12 a13;a21 a22 a23;a31 a3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 理学 matlab 仿真 备课 教案
链接地址:https://www.31doc.com/p-1986550.html