1、MATLAB程序设计南通广播电视大学2011年-2012年第一学期教 案系( 部 ) 艺术传媒学院 教师姓名 课程名称 MATLAB程序设计 授课班级 09电气自动化 总 时 数 36 授课日期9/19授课时数4授课形式讲 授实验授课章节名称第一章 数值计算功能1.1 矩阵及其运算1.2 微分和积分1.3 MATLAB与线性代数教学目的通过对本章的学习,读者可以编写简单且功能完善的MATLAB 7程序,从而解决各类基本问题,用户可以通过本章逐步掌握MATLAB 7的数值计算方法教学重点、难点1 矩阵的生成和基本的数值运算2 稀疏型矩阵的生成和基本操作3 数值微分的求解方法 更新、补充、删节内容
2、概率统计 (删节)课外作业打印稿或电子稿(附后)课后体会MATLAB 是工程计算的非常实用的软件,可以用于进行数字系统仿真,建模,图像处理,simlink仿真分析,高数中的相关数学运算,因此,MATLAB的应用领域非常广泛,对学生的学习有很大帮助。授课主要内容或提纲使用教具、挂图或其它教学手段时间分配一、组织教学(教具检查,考勤)二、新课导入:MATLAB软件是一种功能强大,运行效率很高的数字工具软件,他几乎可以解决科学计算中的所有问题,因此,大家掌握后对学习其他课程也大有裨益。三、新课讲授:1.1 矩阵及其运算矩阵的生成有多种方式,通常使用的有4种方法:1在命令窗口中直接输入矩阵2通过语句和
3、函数产生矩阵3在M文件中建立矩阵4从外部的数据文件中导入矩阵例如:在MATLAB7 命令窗口输入矩阵 matrix=1 ,1, 1, 1;2, 2, 2, 2;3, 3, 3, 3;4, 4, 4, 4matrix = 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4矩阵与常数的四则运算 矩阵之间的四则运算 A=2 1 -1;2 1 0;1 -1 1A = 2 1 -1 2 1 0 1 -1 1 B=1 -1 3;4 3 2; X=B/AX = -2.0000 2.0000 1.0000 -2.6667 5.0000 -0.6667零矩阵和全1矩阵的生成 (zeros 、ones
4、)对角矩阵的生成 (diag)随机矩阵的生成 (rand、randn )范德蒙德矩阵的生成 (vander)魔术矩阵的生成 (magic)Hilbert矩阵和反Hilbert矩阵的生成 (hilb、invhilb ) rand(5)ans = 0.9501 0.7621 0.6154 0.4057 0.0579 0.2311 0.4565 0.7919 0.9355 0.3529 0.6068 0.0185 0.9218 0.9169 0.8132 0.4860 0.8214 0.7382 0.4103 0.0099 0.8913 0.4447 0.1763 0.8936 0.1389 1.2
5、 微分和积分 1数值微分 2使用diff函数求数值微分 3使用gradient函数求近似梯度 4jacobian函数求多元函数的导数 5函数的数值积分 6矩形求积 7trapz函数(梯形求积) 8自适应法(Simpson法) 9高阶自适应法(Newton-Cotes法) (1)数值微分 syms x y z jacobian(x*y*z; y; x+z,x y z)ans = y*z, x*z, x*y 0, 1, 0 1, 0, 1 syms u v jacobian(u*exp(v),u;v)ans = exp(v), u*exp(v)(2)函数的数值积分一元函数的数值积分对于向量x,cu
6、msum(x)命令返回一个向量,该向量的第N个元素是x的前N个元素的和。对于矩阵x,cumsum(x)命令返回一个和x同型的矩阵,该矩阵的列即为对x的每一列的累加和。此程序实现累加和积分 x=0:0.1:10; y=sin(x); z=cumsum(y)*0.1; plot(x,y,r-,x,z,k*)自适应法(Simpson法)Q=quad(fun,a,b)命令使用Simpson法则的自适应法求函数f从a到b的相对误差为1.e-6的积分近似值。Q=quad(fun,a,b,tol)命令使用一个绝对误差容限tol代替默认的1.e-6,当tol值比较大时,可以使计算速度加快,但精度降低。q,fc
7、nt=quad()命令用于返回函数计算的步数。1.3 MATLAB与 线性代数function y=myfun3(x)y(1)=3*x(1)2-x(2)2;y(2)=3*x(1)*x(2)2-x(1)2-1;课后作业:1 创建符号表达式f(x)=sin(x)+cos(x)-tan(x)2 计算题1中符号表达式在x=0,x=1,x=2pi处的值3 设x为符号变量,f(x)=x4+2x2+1;g(x)=x3+6x2+3x+5,试计算如下表达式 (1)f(x)+g(x) (2) f(x)*g(x) (3) 对f(x)进行因式分解 (4)求g(x)的反函数4 求tan(x)/x当x-0时的极限5 求s
8、in(x)/(x-pi)当x-pi时的极限6求sin(x)+x 在x=0,8上的定积分7 求解线性方程组3x+4y=1 4x+3y=-18 求解非线性方程组y(1)=3*x(1)2-x(2)2;y(2)=3*x(1)*x(2)2-x(1)2-1;参考答案:1 syms x f=sin(x)+cos(x)-tan(x) f = sin(x)+cos(x)-tan(x)2 subs(f,x,0)ans = 1 subs(f,x,1)ans = -0.1756 subs(f,x,2*pi)ans = 13 syms x f=x4+2*x2+1 f = x4+2*x2+1 g=x3+6*x2+3*x+
9、5 g = x3+6*x2+3*x+5 f+g ans = x4+8*x2+6+x3+3*x f*g ans = (x4+2*x2+1)*(x3+6*x2+3*x+5) horner(f) ans = 1+(2+x2)*x2 finverse(g)Warning: finverse(x3+6*x2+3*x+5) is not unique. In D:MATLAB6p5ddtoolboxsymbolicsymfinverse.m at line 43 ans = 1/2*(-60+4*x+4*(117-30*x+x2)(1/2)(1/3)+6/(-60+4*x+4*(117-30*x+x2)(
10、1/2)(1/3)-2 7 x,y=solve(3*x+4*y=1,4*x+3*y=-1) x = -1 y = 1 8 function y=myfun3(x)y(1)=3*x(1)2-x(2)2;y(2)=3*x(1)*x(2)2-x(1)2-1;多媒体教学5分钟10分钟30分钟25分钟20分钟授课日期9/26授课时数4授课形式讲 授实验授课章节名称第二章 MATLAB7 符 号 运 算2.1 符号变量2.2符号变量的基本操作2.3 符号表达式教学目的通过对本章的学习,读者应该掌握符号表达式和符号矩阵的操作、符号微积分、符号线性方程和符号微分方程等的运算。教学重点、难点符号表达式和符号矩阵
11、的操作符号微积分符号线性方程符号微分方程更新、补充、删节内容课外作业补充课后体会MATLAB 是工程计算的非常实用的软件,可以用于进行数字系统仿真,建模,图像处理,simlink仿真分析,高数中的相关数学运算,因此,MATLAB的应用领域非常广泛,对学生的学习有很大帮助。授课主要内容或提纲使用教具、挂图或其它教学手段时间分配一、组织教学(教具检查,考勤)二、新课导入:MATLAB 提供了功能强大的符号运算功能,他专门提供了符号工具相Symboli math Toolbox,完全可以替代其他符号专用的计算机语言。三、新课讲授:2.1 符号变量、符号表达式和符号方程的生成使用sym函数定义符号变量
12、和符号表达式 使用syms函数定义符号变量和符号表达式 符号方程的生成 (1) 使用sym函数定义符号变量和符号表达式 sqrt(2)ans = 1.4142 a=sqrt(sym(2) a = 2(1/2) sym(2)/sym(5)ans = 2/5 2/5+1/3ans = 0.7333(2) 使用syms函数定义符号变量和符号表达式 syms a b c x f = sym(a*x2 + b*x + c)f =a*x2 + b*x + c g=f2+4*f-2g = (a*x2+b*x+c)2+4*a*x2+4*b*x+4*c-2 (3) 符号方程的生成 %符号方程的生成 %使用sym
13、函数生成符号方程 equation1=sym(sin(x)+cos(x)=1)equation1 =sin(x)+cos(x)=12.2符号变量的基本操作findsym函数用于寻找符号变量 任意精确度的符号表达式 数值型变量与符号型变量的转换形式 (1) findsym函数用于寻找符号变量 syms a alpha b x1 y findsym(alpha+a+b)ans =a, alpha, b findsym(cos(alpha)*b*x1 + 14*y,2)ans =x1,y findsym(y*(4+3*i) + 6*j)ans =y(2) 任意精确度的符号表达式 r=vpa(pi)
14、r =3.1415926535897932384626433832795 q=vpa(hilb(2)q = 1., .50000000000000000000000000000000 .50000000000000000000000000000000, .33333333333333333333333333333333(3)数值型变量与符号型变量的转换形式 t=0.1t = 0.1000 sym(t) %有理数形式 ans = 1/10 sym(t,r) %有理数形式 ans = 1/10 sym(t,f) %浮点数形式ans = 1.999999999999a*2(-4)2.3.符号表达式(
15、符号函数)的操作 (1)符号表达式的四则运算(2)合并符号表达式的同类项 (3)符号多项式的因式分解 (4)符号表达式的简化 (5)subs函数用于替换求值 (6)反函数的运算 (7)复合函数的运算 (1) 符号表达式的四则运算 syms x y a b fun1=sin(x)+cos(y) fun1 =sin(x)+cos(y) fun2=a+bfun2 =a+b fun1+fun2ans =sin(x)+cos(y)+a+bfun1*fun2 ans =(sin(x)+cos(y)*(a+b)(2) 合并符号表达式的同类项 Collect(S,v)命令将用于符号矩阵S中所有同类项合并,并以
16、v为变量输出。Collect(S)命令使用findsym函数规定的默认变量代替上式中的v syms x y collect(x2*y + y*x - x2 - 2*x) ans = (y-1)*x2+(y-2)*x f = -1/4*x*exp(-2*x)+3/16*exp(-2*x); collect(f) ans = -1/4*x*exp(-2*x)+3/16*exp(-2*x) (3) 符号多项式的因式分解(horner )在MATLAB7语言中,使用horner函数进行符号多项式的因式分解。 syms x fun1=2*x3+2*x2-32*x+40fun1 =2*x3+2*x2-32
17、*x+40 horner(fun1)ans =40+(-32+(2+2*x)*x)*x fun2=x3-6*x2+11*x-6 fun2 = x3-6*x2+11*x-6 horner(fun2)ans = -6+(11+(-6+x)*x)*x(4)符号表达式的简化(simplify) Simplify(S)命令将符号表达式S中的每一个元素进行化解,但不一定能得到最简表达式。 syms x fun1=(1/x+7/x2+12/x+8)(1/3)fun1 =(13/x+7/x2+8)(1/3) sfy1=simplify(fun1)sfy1 =(13*x+7+8*x2)/x2)(1/3) sfy
18、2=simplify(sfy1)sfy2 =(13*x+7+8*x2)/x2)(1/3) (5) subs函数用于替换求值 Subs(S)命令用于将符号表达式S中的所有符号变量用调用函数中的值或是MATLAB 7工作区间的值代替。Subs(S,new)命令将符号表达式S中的自由符号变量用数值型变量或表达式new替换,如用户想求表达式f=2x2-3x+1当x=2时的值,可以使用subs(f,2)Subs(S,old,new)命令将符号表达式S中的符号变量old用数值型变量或表达式new替换。 syms x yf = x2*y + 5*x*sqrt(y)f =x2*y+5*x*y(1/2) sub
19、s(f, x, 3)ans = 9*y+15*y(1/2) subs(f, y, 3)ans =3*x2+5*x*3(1/2)(6) 反函数的运算 (finverse )G=finverse(f)命令用于求解f的反函数,其中f为一符号表达式,x为单变量,函数g也是一个符号函数,且满足g(f(x)=x.G=finverse(f,v)命令所返回的符号函数表达式的自变量是v,这里v是一个符号变量,且是表达式的向量变量,而g的表达式要求满足g(f(x)=v。当f包括不止一个变量时最好使用该指令。 syms x y f = x2+y f = x2+y finverse(f,y) ans = -x2+y
20、(7) 复合函数的运算 (compose) syms x y z t u f = 1/(1 + x2) g = sin(y) h = xt p = exp(-y/u) compose(f,g)ans = 1/(1+sin(y)2) compose(f,g,t)ans =1/(1+sin(t)2)多媒体教学5分钟10分钟30分钟25分钟20分钟授课日期10/10授课时数4授课形式讲 授实验授课章节名称第二章 MATLAB7 符 号 运 算2.4 符号矩阵的生成与运算2.5 符号微积分教学目的知道矩阵的生成和符号的微积分教学重点、难点符号微积分符号线性方程符号微分方程更新、补充、删节内容课外作业补
21、充课后体会MATLAB 是工程计算的非常实用的软件,可以用于进行数字系统仿真,建模,图像处理,simlink仿真分析,高数中的相关数学运算,因此,MATLAB的应用领域非常广泛,对学生的学习有很大帮助。通过对本章的学习,读者应该掌握符号表达式和符号矩阵的操作、符号微积分、符号线性方程和符号微分方程等的运算。授课主要内容或提纲使用教具、挂图或其它教学手段时间分配一、组织教学(教具检查,考勤)二、新课导入:MATLAB 提供了功能强大的符号运算功能,他专门提供了符号工具相Symboli math Toolbox,完全可以替代其他符号专用的计算机语言。三、新课讲授:2.4 符号矩阵的生成和运算 (1
22、)符号矩阵的生成 (2)使用sym函数直接生成符号矩阵 (3)用生成子矩阵的方法生成符号矩阵 (4)由数值矩阵转换为符号矩阵 (1)sym函数直接生成符号矩阵 a1=sym(1/3 2/3 5/7;9/11 11/13 13/17;17/19 19/23 23/29)a1 = 1/3, 2/3, 5/7 9/11, 11/13, 13/17 17/19, 19/23, 23/29(2) 用生成子矩阵的方法生成符号矩阵 a=100,cos(x);1/s,x a =100,cos(x)1/s,x (3)由数值矩阵转换为符号矩阵 M=30 1 1 1;6 1 5 9;9 8 25 4;32 45 6
23、2 0M = 30 1 1 1 6 1 5 9 9 8 25 4 32 45 62 0 S=sym(M)S = 30, 1, 1, 1 6, 1, 5, 9 9, 8, 25, 4 32, 45, 62, 0此时,虽然矩阵形式没有发生改变,但是在MATLAB 7的工作区间内,系统已经生成了一个新的矩阵,其数据类型为符号型。 2.5. 符号微积分 符号极限 (limit) Limit(F,x,a)命令用于计算符号表达式当x-a时F=F(x)的极限值。Limit(F,a)命令首先用findsym(x)确定F中的自变量,设为变量x,然后计算当x-a时F的极限值。Limit(F)命令使用findsym
24、(x)确定F中的自变量,设为变量x,然后计算x-0时F的极限值。Limit(F,x,a,right)或Limit(F,x,left)命令用来计算符号函数F的单侧极限:左极限x-a-或右极限x-a+。(1) 符号极限 (limit) syms x a t h; limit(sin(x)/x)ans = 1 limit(x-2)/(x2-4),2)ans = 1/4 limit(1+2*t/x)(3*x),x,inf)ans =exp(6*t)26符号微分和求导 diff函数的使用 Diff(x)命令根据由findsym(x)命令返回自变量v,求表达式x的一阶导数。Diff(x,n)命令根据由fi
25、ndsym(x)命令返回的自变量v,求表达式x的n阶导数,n必须是自然数。Diff(x,v)或diff(S,sym(v)命令根据findsym(x)命令返回的自变量v,计算x的一阶导数。Diff(S,v,n)命令根据由findsym(x)命令返回的自变量v,计算x的n阶导数。使用Dff函数进行符号微分和求导 syms x diff(x3+3*x2+4*x+6)ans = 3*x2+6*x+4 diff(sin(x3),4) ans =81*sin(x3)*x8-324*cos(x3)*x5-180*sin(x3)*x2对多个变量中的某个自变量求导。 syms x y diff(x*y+y2+s
26、in(x)+cos(y),y) ans = x+2*y-sin(y) diff(x*y+y2+sin(x)+cos(y),y,3)(把x看成常数,进行三次对Y求导)ans =sin(y)符号积分( int) Int(S)命令根据由findsym(S)命令返回自变量v,求S的不定积分,其中S为符号矩阵或符号常量。Int(S,v)命令对符号表达式S中指定的符号变量V计算不定积分。需要注意的是,表达式R只是S的一个原函数。Int(S,a,b)命令由findsym(S)命令返回的自变量V,对符号表达式S中的符号变量计算从a到b的定积分。例7-29 用int函数求符号积分。解:在命令窗口中输入如下命令,
27、并按Enter键确认。 syms x x1 alpha u t; A = cos(x*t),sin(x*t);-sin(x*t),cos(x*t)A = cos(x*t), sin(x*t) -sin(x*t), cos(x*t) int(1/(1+x2)ans =atan(x) int(sin(alpha*u),alpha)ans =-1/u*cos(alpha*u) int(besselj(1,x),x)ans =-besselj(0,x) int(x1*log(1+x1),0,1)ans =1/4 int(4*x*t,x,2,sin(t) ans =2*t*(sin(t)2-4) 对F(X)从2到sin(t)进行积分 int(exp(t),exp(alpha*t) ans = exp(t), 1/alpha*exp(alpha*t) int(A,t)ans = 1/x*sin(x*t), -cos(x*t)/x cos(x*t)/x, 1/x*sin(x*t) 6.符号积分变换 Fourier变换及其逆变换 Fourie
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1