《Matlab应用课程设计》课程设计说明书Matlab运算与应用设计_第1页
《Matlab应用课程设计》课程设计说明书Matlab运算与应用设计_第2页
《Matlab应用课程设计》课程设计说明书Matlab运算与应用设计_第3页
《Matlab应用课程设计》课程设计说明书Matlab运算与应用设计_第4页
《Matlab应用课程设计》课程设计说明书Matlab运算与应用设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、matlab应用课程设计课程设计说明书 课程设计任务书学生姓名: 专业班级: 电信0804 指导教师: 工作单位: 信息工程学院 题 目: matlab运算与应用设计7 初始条件: 1.matlab6.5以上版本软件; 2.课程设计辅导资料:“matlab语言基础及使用入门”、“数字信号处理原理与实现”、“matlab及在电子信息课程中的应用”等; 要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1. 本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序

2、代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结。具体设计要求包括: 初步了解matlab、熟悉matlab界面、进行简单操作; matlab的数值计算:创建矩阵、矩阵运算、多项式运算、线性方程组、数值统计; 基本绘图函数:plot, plot3, mesh, surf等,要求掌握以上绘图函数的用法、简单图形标注、简单颜色设定等; 使用文本编辑器编辑m文件,函数调用; 能进行简单的信号处理matlab编程;2. 课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括: 目录; 与设计题目相关的理论分析、归纳和总结; 与设计内容相

3、关的原理分析、建模、推导、可行性分析; 程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结; 课程设计的心得体会(至少500字); 参考文献;其它必要内容等。时间安排:指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日matlab运算与应用设计目 录 课程设计任务书.11 matlab 软件简介.32 设计题目.53 设计内容.64 课程设计心得.185 参考文献.196 本科生课程设计成绩评定表.20 1 matlab 软件简介 matlab是美国mathworks公司生产的一个为科学和工程计算专门设计的交互式大型软件,是一个可以完成各种精确计算和数据处理

4、的、可视化的、强大的计算工具。它集图示和精确计算于一身,在应用数学、物理、化工、机电工程、医药、金融和其他需要进行复杂数值计算的领域得到了广泛应用。它不仅是一个在各类工程设计中便于使用的训算工具,而且也是一个在数学、数值分析和工程计算等课程教学中的优秀的教学工具,在世界各地的高等院校中十分流行,在各类工业应用中更有不俗的表现。matlab可以在几乎所有的pc机和大型计算机上运行,适用于windows、unix等多种系统平台。1.1 matlab产生的历史背景 matlab名称是由两个英文单词maix和laboratory的前二个字母组成。20世纪70年代后期,美国新墨西哥大学计算机系主任cle

5、vemoler教授为了便于教学,减轻学生编写fortran程序的负担,为两个矩阵运算软件包linpack和eispack编写了接口程序,这也许就算matlab的第一个版本。1984年,在jacklittle(也称johnlittle)的建议推动下,由little、moler、stevebangert三人合作,成立rmathworks公司,同时把matlab正式推向市场。从那时开始,matlab的源代码采用c语言编写,除加强了原有的数值计算能力外,还增加了数据图形的可视化功能。1993年,mathworks公司推出了matlab的40版本,系统平台由dos改为windows,推出了功能强大的、可

6、视化的、交互环境的用于模拟非线性动态系统的工具simulink,第一次成功开发出了符号计算工具包symbolic math toolbox 10,为matlab进行实时数据分析、处理和硬件开发而推出了与外部直接进行数据交换的组件,为matlab能融科学计算、图形可视、文字处理于一体而制作了notebook,实现了matlab与大型文字处理软件word的成功对接。至此,mathworks使matlab成为国际控制界公认的标准计算软件。 1997年,mathworks公司推出了matlab的50版本,紧接着产生了51、52版本,至1999年matlab发展到53版本。matlab拥有了更丰富的数据

7、类型和结构,更好的面向对象的快速精美的图形界面,更多的数学和数据分析资源,matlab工具也达到了25个,几乎涵盖了整个科学技术运算领域。在大部分大学里,应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教材都把matlab作为必不可少的内容。在国际学术界,matlab被确认为最准确可靠的科学计算标准软件,在许多国际一流的学术刊物上都可以看到matlab在各个领域里的应用。 matlab当前推出的最新版本是70版(r14),本书无特殊注明均指70版。12 matlab的语言特点和开发环境 matlab作为一种科学计算的高级语言之所以受欢迎,就是因为它

8、有丰富的函数资源和工具箱资源,编程人员可以根据自己的需要选择函数,而无需再去编写大量繁琐的程序代码,从而减轻了编程人员的工作负担。被称为第四代编程语言的matlab最大的特点就是简洁开放的程序代码和直观实用的开发环境。具体地说matlab主要有以下特点: (1)库函数资源丰富 数百种库函数大大减轻了用户子程序的编写工作量,也避免了一些不必要的错误,因而用户也不必担心程序的可靠性问题。 (2)语言精炼,代码灵活 matlab的编程语言符合人们的思维习惯,对代码的书写也没有特别严格的控制,语言精炼,程序的亢余度非常小。 (3)运算符多而灵活 matlab的内核是用c语言编写的,它为用户提供了和c语

9、言一样多的运算符,用户运用这些运算符可以使程序更加简炼。 (4)面向对象,控制功能优良 matlab在5x各版本中优化了数据结构,使得程序的结构化控制更精良,面向对象的功能更加友善。特别是当前的70版,在可视化编程方面比以前的版本又有了更大的提高,使界面编程更方便、自由。 (5)程序设计自由 matlab70版支持长变量名达到63个字符,用户可以不对矩阵进行预定义就使用,变量和数组的应用也有了很大的扩展,这为用户编写程序提供了更大的自由度,使编程更加简单、方便。 (6)图形功能强大 在很多程序语言中,绘制图形是一件很麻烦的事情。但在matlab中,只需调用相应的绘图函数即可,既方便又迅速。随着

10、硬件的发展和matlab70推出,matlab的图形功能更好,可视化编程能力得到更进一步的提高。 (7)程序的兼容性好 matlab可以在各种pc机、大型计算机和各种操作系统上运行。 (8)源代码开放 matlab的最重要的特点是源代码的开放性,除了内部函数,所有的matlab核心文件和工具箱文件都完全开放,都可渎可改。用户对源文件修改就可以生成适合自己的源代码文件。 (9)形形色色的工具箱 凡有工具箱的软件大都分为两大部分,就是核心部分和形形色色的工具箱。matlab有数百个核心内部函数,数十个形形色色的工具箱。工具箱大致可以分为两大类,类是学科性工具箱,另一类是功能性工具箱。学科性工具箱大

11、都涵盖了本学科所有的已有的基本概念和基本运算,大都十分专业。如符号数学工具箱,简直就是一个高等数学、工程数学解题器。极限、导数、微分、积分、级数运算与展开、微分方程求解、laplace变换等应有尽有。还有控制系统、信号处理、模糊逻辑、神经网络、小波分析、统计;优化、金融预测等工具箱,无一不是非常优秀的运算工具。这些工具箱都可以添加自己根据需要编写的函数,用户可以不断更新自己的工具箱,使之更适合于自己的研究和计算 1.3 基本语法1.3.1变量1、变量的命名:变量的名字必须以字母开头(不能超过19个字符),之后可以是任意字母、数字或下划线;变量名称区分字母的大小写;变量中不能包含有标点符号。2、

12、一些特殊的变量:ans:用于结果的缺省变量名 i、j:虚数单位pi:圆周率 realmin:最小正实数realmax:最大正实数 1.3.2简单的数学运算1、常用的数学运算符:,*(乘),/(左除),(右除),(幂)在运算式中,matlab通常不需要考虑空格;多条命令可以放在一行中,它们之间需要用分号隔开;逗号告诉matlab显示结果,而分号则禁止结果显示。2、常用数学函数:abs,sin,cos,tan,sqrt,exp,imag,real, rem,1.3.3流程控制语句1、if语句基本格式:if 逻辑表达式 执行语句 end 其执行过程为:当条件成立时,则执行语句组,执行完之后继续执行i

13、f语句的后继语句,若条件不成立,则直接执行if语句的后继语句。2、while循环语句基本格式:while 表达式 循环体 end其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。 4、switch语句基本格式:switch 表达式(可以是标量或字符串) case 值1 语句1 case 值2 语句2 . otherwise 语句3 end其执行过程为:当表达式的值等于表达式1的值时,执行语句组1,当表达式的值等于表达式2的值时,执行语句组2,当表达式的值等于表达式m的值时,执行语句组m,当表达式的值不等于case所列的表达式的值时,执行语句组n。当任意

14、一个分支的语句执行完后,直接执行switch语句的下一句。5、for语句基本格式:for 循环变量=表达式1:表达式2:表达式3 循环体语句 end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。1.3.4特殊矩阵:常用的产生通用特殊矩阵的函数有:zeros:产生全0矩阵(零矩阵)。ones:产生全1矩阵(幺矩阵)。eye:产生单位矩阵。rand:产生01间均匀分布的随机矩阵。randn:产生均值为0,方差为1的标准正态分布随机矩阵。1.3.5

15、函数文件 1、函数文件的基本结构函数文件由function语句引导,其基本结构为:function 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句其中以function开头的一行为引导行,表示该m文件是一个函数文件。函数名的命名规则与变量名相同。输入形参为函数的输入参数,输出形参为函数的输出参数。当输出形参多于一个时,则应该用方括号括起来。2、函数调用函数调用的一般格式是: 输出实参表=函数名(输入实参表)要注意的是,函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错。函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。1.3

16、.6二维数据曲线图 1绘制单根二维曲线 plot函数的基本调用格式为:plot(x,y) 其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。 2设置曲线样式matlab提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号,它们可以组合使用。例如,“b-.”表示蓝色点划线,“y:d”表示黄色虚线并用菱形符标记数据点。当选项省略时,matlab规定,线型一律用实线,颜色将根据曲线的先后顺序依次。要设置曲线样式可以在plot函数中加绘图选项,其调用格式为:plot(x1,y1,选项1,x2,y2,选项2,xn,yn,选项n) 3 图形标注与坐标控制 有关图形标注函数的调用格式为

17、:title( 图形名称)xlabel(x轴说明)ylabel(y轴说明)text(x,y,图形说明)2.设计题目第1套题目:matlab运算与应用设计11 计算y1=和y2=;2 画出衰减震荡曲线及其他的包络线,t的取值范围是0,4.3 画出所表示的三维曲面。x,y的取值范围是-8,8。4 分析下面每条指令的功能并运行,观察执行结果。(1) x=0:0.1:1;y=x.*exp(-x);plot(x,y),xlabel(x), ylabel(y),title(y=x*exp(-x);(2) a=zeros(2,5)a(:)=-4:5l=abs(a)3islogical(l)x=a(l)(3)

18、 a=1:4;5:8pow2(a)(4) a=zeros(2,3)a(:)=1:6a=a*(1+i)a1=a.;b1=a;(5) a=ones(1,2)b=ones(2)c=eye(3)d=diag(c)e=repmat(c,1,3)5 计算在x=0.1与10处的值。6 求函数1+1/2+1/3+1/n, n=100的值。7 求500个元素的随机数向量a中大于0.5的元素个数。8.求线性方程组ax=b的根。9.画出y=|1000sin(4x)|+1的x轴为对数的图。10用fft直接计算x=cos(2*pi*40*t)+2sin(2*pi*120*t)+w(t)的功率谱。3.设计内容1. 计算分

19、析:该题为多项式运算,可直接写出y1,y2的matlab的语言表达形式y1=2*sin(0.3*pi)/(1+ 50.5 ) %产生向量y1y1 = 0.5000 %运算结果y2=2*cos(0.3*pi)/(1+50.5) % 产生向量与y2y2 = 0.3633 %运算结果2. 画出衰减震荡曲线y=exp(-t/3)*sin3t 及其他的包络线y0=exp(-t/3) 的取值范围是0,4.t=0:pi/180:4*pi; %产生向量ty=exp(-t/3).*sin(3*t); %产生向量yplot(t,y) %绘制曲线 (图2-1)t=0:pi/180:4*pi; %产生向量ty0=ex

20、p(-t/3); plot(t,y0) %绘制包络线 (图2-2)3.画出所表示的三维曲面。x,y 的取值范围是-8,8 x=-8:0.1:8; %产生向量xy=-8:0.1:8; %产生向量yx,y=meshgrid(x,y); %形成格点矩阵z=sin(sqrt(x.2+y.2)./sqrt(x.2+y.2); %产生向量zsurf(x,y,z); %绘制三维曲面xlabel(x), ylabel(y), zlabel(z); %坐标名 (图3-1)4分析下面每条指令的功能并运行,观察执行结果。(1)x=0:0.1:1 %产生向量x x = columns 1 through 5 0 0.

21、1000 0.2000 0.3000 0.4000 columns 6 through 10 0.5000 0.6000 0.7000 0.8000 0.9000 column 11 1.0000 y=x.*exp(-x) %产生向量yy = columns 1 through 5 0 0.0905 0.1637 0.2222 0.2681 columns 6 through 10 0.3033 0.3293 0.3476 0.3595 0.3659 column 11 0.3679 plot(x,y),xlabel(x),ylabel(y),title(y=x*exp(-x) %绘制曲线;规

22、定坐标名 (图4-1)(2) a=zeros(2,5) %产生2行5列全为零的矩阵a(:)=-4:5 %a的元素从-4到5共12个元素按照由上到下从左到右排列过去l=abs(a)3 %标记矩阵a中元素的绝对值大于3的元素,其中大于1是,0就不是islogical(l) %判断l是不是逻辑数x=a(l) % 取出a中绝对值大于3的元素组成一个新的矩阵a = 0 0 0 0 0 0 0 0 0 0a = -4 -2 0 2 4 -3 -1 1 3 5l = 1 0 0 0 1 0 0 0 0 1ans = 1x = -4 45 (3)a=1:4;5:8 pow2(a) %分别取a中元素的平方 a

23、= 1 2 3 4 5 6 7 8ans = 2 4 8 16 32 64 128 256 (4)a=zeros(2,3) %产生2行3列全为零的矩阵a = 0 0 0 0 0 0 a(:)=1:6 %1,2,3,4,5,6分别赋给a a = 1 3 5 2 4 6 a=a*(1+i) %a中元素分别与(1+i)相乘 a = columns 1 through 2 1.0000 + 1.0000i 3.0000 + 3.0000i 2.0000 + 2.0000i 4.0000 + 4.0000i column 3 5.0000 + 5.0000i 6.0000 + 6.0000i a1=a.

24、 %对a进行非共轭转置a1 = 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i 5.0000 + 5.0000i 6.0000 + 6.0000i b1=a %对a进行共轭转置 b1 = 1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i 4.0000 - 4.0000i5.00 - 5.0000i 6.0000 - 6.0000i (5)a=ones(1,2) %生成12全为1的矩阵 b=ones(2) %生成22全为1的矩阵c=eye(3) %产生对角线

25、为1,其余为0的3阶矩阵d=diag(c) %取c中对角线的元素e=repmat(c,1,3) %重新复制矩阵c, 生成39的矩阵a = 1 1b = 1 1 1 1c = 1 0 0 0 1 0 0 0 1d = 1 1 1e = columns 1 through 8 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 column 9 0 0 1 5.计算在x=0.1与10的值。a=1 0.1 0 0 0 -100; % 将y函数表示成行相量 y=polyval(a,0.1) %求出多项式在x处的值 y = -100.0000 a=1 0.1

26、0 0 0 -100; %将y函数表示成行向量y=polyval(a, 10) %求出多项式在x处的值y = 100900 6.求函数1+1/2+1/3+1/n, n=100的值。分析:第一次通过for循环n=1,执行y=y+1/n; 第二次,n=2, 执行y=y+1/n; 第100次,n=100, 执行y=y+1/y; 在n=101时,for循环结束,然后执行end语句后面的命令。y=0; for n=1:100 y=y+1/n;endy y =5.18747求500个元素的随机数向量a中大于0.5的元素个数。分析:流程图为:判断y(n)0.5是否成立执行i=i+1for循环1500真假endn500结束forn0.5 %判断y(n)是否大于0.5 i=i+1; %成立就执行此语句 end; %一次if结束end %for循环结束 n i n = 500i = 243 8.求线性方程组ax=b的根。a=0.4156 0.2319 0.2024 0.2930 0.3690;0.3206 0.4650 0.5662 0.1812 0.4631; 0.5146 0.3734 0.8315 0.3575 0.6278; 0.7192 0.0500 0.4226 0.9341 0.9445; 0.8420 0.0739 0.8395 0.5894 0.4058

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论