《matlab运算与应用设计》课程设计说明书-Matlab运算与应用设计.doc

上传人:椰子壳 文档编号:5091409 上传时间:2020-02-01 格式:DOC 页数:19 大小:175.50KB
返回 下载 相关 举报
《matlab运算与应用设计》课程设计说明书-Matlab运算与应用设计.doc_第1页
第1页 / 共19页
《matlab运算与应用设计》课程设计说明书-Matlab运算与应用设计.doc_第2页
第2页 / 共19页
《matlab运算与应用设计》课程设计说明书-Matlab运算与应用设计.doc_第3页
第3页 / 共19页
《matlab运算与应用设计》课程设计说明书-Matlab运算与应用设计.doc_第4页
第4页 / 共19页
《matlab运算与应用设计》课程设计说明书-Matlab运算与应用设计.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《《matlab运算与应用设计》课程设计说明书-Matlab运算与应用设计.doc》由会员分享,可在线阅读,更多相关《《matlab运算与应用设计》课程设计说明书-Matlab运算与应用设计.doc(19页珍藏版)》请在三一文库上搜索。

1、武汉理工大学matlab运算与应用设计课程设计说明书 课程设计任务书学生姓名: 专业班级: 电信1002 指导教师: 工作单位: 信息工程学院 题 目: Matlab运算与应用设计 初始条件:1.Matlab7.0版本软件;2.课程设计辅导资料:“Matlab语言基础及使用入门”、“Matlab及在电子信息课程中的应用”等;3.先修课程:高等数学、线性代数,电路分析基础、复变函数等。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书 撰写等具体要求) 1.课程设计时间:一周;2.课程设计内容:从指导老师所给的七套题目中,选择其中的一套来完成;3. .本课程设计统一技术要求:研读

2、辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析总结。具体设计要求包括:初步了解Matlab、熟悉Matlab界面、进行简单操作;MATLAB的数值计算:创建矩阵、矩阵运算、多项式运算、线性方程组、数值统计;基本绘图函数:plot, plot3, mesh, surf等,要求掌握以上绘图函数的用法、简单图形标注、简单颜色设定等;使用文本编辑器编辑m文件,函数调用;能进行简单的信号处理Matlab编程;时间安排:指导教师签名:

3、 年 月 日系主任(或责任教师)签名: 年 月 日目录1. MATLAB简介(1)2.具体题目分析(2)2.1试题1(2)2.2试题2(2)2.3试题3(3)2.4试题4(4)2.5试题5(9)2.6试题6(9)2.7试题7(10)2.8试题8(10)2.9试题9(11)2.10试题10(12)3.课程设计心得(15)4.参考文献(16)5.本科生课程设计成绩评表(15)1. MATLAB软件功能简介MATLAB的名称源自Matrix Laboratory,1984年由美国Mathworks公司推向市场。它是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成

4、在一起,并提供了大量的内置函数,从而被广泛的应用于科学计算、控制系统和信息处理等领域的分析、仿真和设计工作。MATLAB软件包括五大通用功能,数值计算功能(Nemeric)、符号运算功能(Symbolic)、数据可视化功能(Graphic)、数字图形文字统一处理功能(Notebook)和建模仿真可视化功能(Simulink)。其中,符号运算功能的实现是通过请求MAPLE内核计算并将结果返回到MATLAB命令窗口。该软件有三大特点,一是功能强大;二是界面友善、语言自然;三是开放性强。目前,Mathworks公司已推出30多个应用工具箱。MATLAB在线性代数、矩阵分析、数值及优化、数值统计和随机

5、信号分析、电路与系统、系统动力学、图像处理、控制理论分析和系统设计、过程控制、建模和仿真、通信系统以及财政金融等众多领域的理论研究和工程设计中得到了广泛应用。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且math work也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写

6、了一些经典的程序,用户可以直接进行下载就可以用。MATLAB应用:MATLAB 产品族可以用来进行以下各种工作:数值分析 数值和符号计算 工程与科学绘图 控制系统的设计与仿真 数字图像处理 数字信号处理 通讯系统设计与仿真 财务与金融工程 MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。2.具体题目分析2.1已知t=linspace(0,2*pi,6),求t的正弦和正弦的绝对值。理论分析 这是利用ma

7、tlab处理数值运算的题目。这其中要用到linspace()等函数。程序代码 t=sin(linspace(0,2*pi,6) %求t的正弦值t = %运行结果 Columns 1 through 5 0 0.9511 0.5878 -0.5878 -0.9511 Column 6 -0.0000 t=abs(sin(linspace(0,2*pi,6) %求t的绝对值t =%运行结果 Columns 1 through 5 0 0.9511 0.5878 0.5878 0.9511 Column 6 0.0000总结我们注意到matlab中的pi与真正的有差距,而且数字与因式相乘要使用乘法符

8、号*.通过这个计算,我了解到matlab有处理数据计算的功能。2.2绘制函数在时的曲线。理论分析 利用MATLAB软件绘制曲线图。在这里用到的是funtool命令。熟悉使用funtool命令。程序代码 funtool %调出函数图像框在Figure3框中f= 处填入表达式x*exp(-x) 在x=处填入0,1最后按回车,在Figure1的窗口中出现所需的函数图像。如下图:总结funtool命令是很好使用的命令。他可以很方便的画出所需区域的函数图像。甚至可以很轻松的描绘处函数运算之后以及符合函数的图像。2.3 已知a=1,3,0;2,0,1;4,6,5, a1=logical(1 0 1),a2

9、= logical(1 1 0),b=a1,求a(a1,a2)和a(b)。理论分析这道题目中还是要用到logical()函数,关键是要理解logical函数的功能。程序代码 a=1,3,0;2,0,1;4,6,5; %定义一个矩阵 a1=logical(1 0 1); %返回一组逻辑值 a2= logical(1 1 0);%返回一组逻辑值 b=a1; 执行结果: a(b) %取出矩阵a中大于1的元素ans = 2 4 3 6 5执行结果: a(a1,a2) %求满足条件a(a1,a2)的矩阵ans = 1 3 4 62.4.分析下面每条指令的功能并运行,观察执行结果。分析指令X=0:0.25

10、:3; %产生一组自变量数据Y=X.*exp(-X); %数组的乘法plot(X,Y),xlabel(x), ylabel(y),title(y=x*exp(-x); %将函数视图划并表明x,y轴和标题执行结果:指令分析A=zeros(3,5) %定义一个3*5的全零矩阵A(:)=-4:10 %将元素-4到10按列取出生成3行5列数组L=abs(A)4 %绝对值大于4的值变为1,小于等于4的为0islogical(L) %判断L是不是逻辑数X=A(L) %取出A中大于1的元素组成一个新矩阵执行结果: A(:)=-4:10A = -4 -1 2 5 8 -3 0 3 6 9-2 1 4 7 10

11、 L=abs(A)4 L = 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 islogical(L) ans = 1 X=A(L) X = 5 6 7 8 9 10指令分析 A=1:5;6:10 %生成一个矩阵 pow2(A) %矩阵相应位子的值变成原来的平方执行结果: A=1:5;6:10A = 1 2 3 4 5 6 7 8 9 10 pow2(A)ans = 2 4 8 16 32 64 128 256 512 1024指令分析A=zeros(3,2) %生成一个3*2的全零矩阵A(:)=1:6 %将1到6分别赋给矩阵的各元素A=A*(1+i) %给A矩阵的元素从新赋值A1

12、=A.; %A的转置矩阵B1=A; %A的共轭转置矩阵执行结果: A=zeros(3,2) A = 0 0 0 0 0 0 A(:)=1:6A = 1 4 2 5 3 6 A=A*(1+i) A = 1.0000 + 1.0000i 4.0000 + 4.0000i 2.0000 + 2.0000i 5.0000 + 5.0000i 3.0000 + 3.0000i 6.0000 + 6.0000i A1=A.; B1=A; A1A1 = 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i 5.0000 + 5

13、.0000i 6.0000 + 6.0000i B1B1 = 1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i 4.0000 - 4.0000i 5.0000 - 5.0000i 6.0000 - 6.0000i 指令分析 A=ones(2,3) %定义一个2*3的全一矩阵 B=ones(2) %定义一个2*2的全一矩阵 C=eye(4) %生成四行四列的单位矩阵 D=diag(C) %生成C的对角矩阵E=repmat(C,1,3) %将C矩阵作为一个元素生成一个1行3列的矩执行结果: A=ones(2,3) A = 1 1 1 1 1 1

14、B=ones(2) B = 1 1 1 1 C=eye(4) C = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 D=diag(C) D = 1 1 1 1 E=repmat(C,1,3)E = 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 12.5.计算在x=0.1与10处的值。理论分析这道题目是运用MATLAB计算多项式。这里运用到的是polyval()命令。通过polyval()命令可以很快的计算出在相应值下的多项式的值。程序代

15、码 a=2 0 0.1 0 0 -10; %列写多项式系数x=0.1; %给x赋值p=polyval(a,x) %求多项式在x处的值p = -9.9999 a=2 0 0.1 0 0 -10; %列写多项式系数x=(-10); %给x赋值p=polyval(a,x) %求多项式在x处的值p = -200110 2.6求函数, n=100的值理论分析在matlab中,有专门计算级数和的函数。这个函数就是symsum()。例如symsum(s,x,a,b)计算表达式s的级数和,其中x为自变量,x省略则默认为对自由变量求和;s为符号表达式;a,b为参数x的取值范围。程序代码 syms n s; %定

16、义符号变量n s=1/n3; %列写函数表达式 symsum(s,n,1,100) %求和ans =81473483330743503583074181861672511931518122336172216406894149391331289704097519580221863303145356050828007873151451209887/67781182783092495848656345091844021571734190630914590229332161379950257170828098031102950264769178652556660142954086400000总结 在计

17、算级数和的过程中,注意要先定义变量,否则将不会得到最终结果。会出现 Undefined function or variable n.需要用syms()将n符号化,同时结果是因为软件自动进行了分母通分。2.7.求1500个元素的随机数向量A中大于0.5的元素个数。理论分析这道题中要用到随机函数rand()。在生成矩阵后还要用程序控制。其中还要用到循环语句,和选择语句。其中用到嵌套循环语句。程序代码 A=rand(50,30); %随机产生一个50行30列的矩阵n=0;for i=1:50, %定义变量i从1到50for j=1:30, %定义变量j从1到30if A(i,j)0.5,n=n+1

18、; %矩阵的每个元素和0.5比较,如果为真,变量n就加1end,end,end, nn = 762 总结做的过程中要注意,与;的用法 就只有正确的用法才能得出结果。 另一方面,end的使用也要注意,注意需要使用的个数。2.8.用图形表示连续调制波形,运行下面的程序,观察结果,并简单说明。简要分析t1=(0:11)/11*pi; %定义一组自变量 y1=sin(t1).*sin(9*t1); %数组的乘法t2=(0:100)/100*pi; %定义一组自变量y2=sin(t2).*sin(9*t2); %数组的乘法subplot(2,2,1), %将窗口分为四个,当前为第一个plot(t1,y1

19、,r.), %将点描在坐标图上axis(0,pi,-1,1), %控制x,y轴的数值范围title(子图 (1) %显示标题 subplot(2,2,2),plot(t2,y2,r.),axis(0,pi,-1,1),title(子图 (2)subplot(2,2,3),plot(t1,y1,t2,y2,r.) %点少时显示的是折线axis(0,pi,-1,1),title(子图 (3) subplot(2,2,4),plot(t2,y2) %点多时才显示曲线axis(0,pi,-1,1),title(子图 (4) 2.9. 已知方程组,用矩阵除法来解线性方程组。理论分析这里是运用matlab

20、中的函数来处理矩阵,从而生成所需要的矩阵。这里所用到的函数为inv()程序代码 A=3,-1,2;-5,1,3;1,-1,4;b=9;5;8;xinv=inv(A)*b %求逆执行结果xinv = 5.5000 17.5000 5.0000总结在MATLAB中有很多很方便的函数帮助我们处理数据。我们要时常注意相关的函数,在以后的数据处理中就显得很轻松了。2.10已知,其中t的范围是0 10,计算y的微分和积分并给出曲线图。理论分析此题比较简单,只是在运行过程中要注意diff()函数,int()函数,以及格式。程序设计 syms t y ; %定义符号变量t,y y=exp(-1)*cos(t)

21、; %列写函数表达式 t=0:10; %表示自变量t的范围 diff(y) %求y的微分ans = -828390857088487/2251799813685248*sin(t) syms t y ; %定义符号变量t,yy=exp(-1)*cos(t);int(y,t,0,10) %列写函数表达式,求y的积分ans =828390857088487/2251799813685248*sin(10)Plot(diff(y) %画出y的微分曲线运行结果实验总结最初实验的时候一直出不来图像,后来发现原因好像是只能打开一个图像,因为上一个图像没关,所以这个图像就打不开。同时在这个实验里面要先定义t

22、,y,然后在编写程序。3.课程设计心得正所谓“纸上得来终觉浅,觉知此事要躬行。”学习任何知识,仅从理论上去求知,而不去实践、探索是不够的。因此在学期末来临之际,我们迎来了MATLAB课程设计。在整个设计过程中我懂得了许多东西,也培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力, 使自己充分体会到了在设计过程中的成功喜悦。虽然这个设计做的不怎么好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。在没有做课程设计以前,觉得课程设计只是对知识的单纯总结,但是通过这次课程设计发现自己的看法有点太片

23、面,课程设计不仅是对前面所学知识的一种检验,也是对自己能力的一种提高,通过这次课程设计使自己明白了原来的那点知识是非常欠缺的,要学习的东西还很多,通过这次课程设计,明白学习是一个长期积累的过程,在以后的工作和生活中都应该不断的学习,努力提高自己的知识和综合素质。希望以后像这样的课程设计在多一点。4.参考文献:4.1. 姚东.MATLAB及在电子信息课程中的应用M.第二版.北京:北京电子工业出版社,20004.2. 张智星.MATLAB程序设计与应用.北京:清华大学出版社,20024.3. 陈怀琛.MATLAB及其在理工课程中的应用指南.西安:西安电子科技大学出版社,1999.104.4. 肖伟、刘忠. MATLAB程序设计与应用M.北京:清华大学出版社 20055.本科生课程设计成绩评表姓 名性 别专业、班级课程设计题目:课程设计答辩或质疑记录:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 年 月 日 19

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 绩效管理


经营许可证编号:宁ICP备18001539号-1