MATLAB课程设计汇本报告(绝对完整)_第1页
MATLAB课程设计汇本报告(绝对完整)_第2页
MATLAB课程设计汇本报告(绝对完整)_第3页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计任务书学生某:董航专业班级:电信 1006班指导教师:阙大顺,李景松工作单位:信息工程学院课程设计名称:Matlab应用课程设计课程设计题目:Matlab运算与应用设计5初始条件:1. Matlab6.5以上版本软件;2. 课程设计辅导资料:“Matlab语言根底及使用入门"、“Matlab及在电子信息课程中的应用、线性代数及相关书籍等;3. 先修课程:高等数学、线性代数、电路、Matlab应用实践及信号处理类相关课程等。要求完成的主要任务:包括课程设计工作量及其技术要求,以及说明书撰写等具体要求1. 课程设计内容:根据指导教师给定的7套题目,按规定选择其中1套完成;2. 本

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

3、lab编程; 按要求参加课程设计实验演示和辩论等。3. 课程设计说明书按学校“课程设计工作规X中的“统一书写格式撰写,具体包括: 目录; 与设计题目相关的理论分析、归纳和总结; 与设计内容相关的原理分析、建模、推导、可行性分析; 程序设计框图、程序代码含注释、程序运行结果和图表、实验结果分析和总结; 课程设计的心得体会至少500字; 参考文献不少于 5篇; 其它必要内容等。时间安排:1.5周分散进展参考文献:1 (美)穆尔,高会生,X童娜,李聪聪.MATLAB实用教程(第二版).电子工业,2010.2 王正林,X明.精通 MATLAB(升级版)电子工业,2011.3 陈杰.MATLAB宝典(第

4、 3版).电子工业,2011.4 X保柱,苏彦华,X宏林.MATLAB 7.0从入门到精通(修订版).人民邮电,2010.指导教师签名:年月日系主任或责任教师签名:年月日目录1 MATLAB的简介i2课程设计内容42 . 152.222.322.422.522.622.722.822.9 22.10 23课程设计心得体会i4参考文献i1 Matlab软件简介1.1 MATLAB产生的历史背景MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数 据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB 和 Simulink两大局部。MATLAB

5、是矩阵实验室Matrix Laboratory的 简称,和Mathematica Maple并称为三大数学软件。它在数学类科技应用软件中 在数值计算方面首屈一指。MATLAB可以进展矩阵运算、绘制函数和数据、实 现算法、创立用户界面、连接其他编程语言的程序等,主要应用于工程计算、控 制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的根本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式 十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成一样的 事情简捷得多,并且 mathwork也吸收了像Maple等软件的优点,使MATLAB成 为一

6、个强大的数学软件。在新的版本中也参加了对 C,FORTRAN,C+ , JAVA 的支持。可以直接调用,用户也可以将自己编写的实用程序导入到 MATLAB函数 库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序, 用户可以直接进展下载就可以用。MATLAB的应用:利用MATLAB可以进展以下各种工作数值计算数值和符号计算工程和科学绘图控制系统的设计与仿真数字图像处理 数字信号处理 通讯系统设计与仿真 财务与金融工程12 MATLAB的语言特点和开发环境MATLAB作为一种科学计算的高级语言之所以受欢送,就是因为它有 丰富的函数资源和工具箱资源,编程人员可以根据自己的需要选

7、择函数, 而无需 再去编写大量繁琐的程序代码,从而减轻了编程人员的工作负担。 被称为第四代 编程语言的MATLAB最大的特点就是简洁开放的程序代码和直观实用的开发环 境。具体地说MATLAB主要有以下特点:(1) 库函数资源丰富(2) 语言精炼,代码灵活(3) 运算符多而灵活(4) 面向对象控制功能优良,使界面编程更方便、自由。(5) 程序设计自由(6) 图形功能强大(7) 程序的兼容性好(8) 源代码开放(9) 形形色色的工具箱2 .课程设计内容2.1t=linspace(0,2*pi,6)求t的正弦和正弦的绝对值理论分析该函数linspace为赋值向量函数,还要用到简单的正弦sin和绝对值

8、abs函数。程序代码t = lin space(0,2*pi,6);%产生6维的从0到2*pi等分行向量sin(t)%求t的正弦值abs(si n( t)%求sint的的绝对值程序运行结果ans =00.95110.5878-0.5878-0.9511-0.0000ans =00.95110.58780.58780.95110.0000总结在matlab中乘号不能不写,也不能写成X 。只能写成 *'2.2制函数y xe x在0 x 1时的曲线。理论分析:这是一个简单的函数,但要了解该函数用程序代码书写的正确和规X,以及2.2.2程序代码x = 0:0.01:1;y = x.*exp(-

9、x);Plot(x,y)2.2.3程序运行结果了解绘制二维曲线的函数。%x轴上以0.01的速度从0递增到1的数组%y关于x的表达式%以x为横坐标y为纵坐标画出二维曲线总结:在matlab中两数之间应该用*'符号,不能省略,而且注意如果是进展向量 的运算得用 .*'运算。1),a2=logical(112.3a=1,3,0;2,0,1;4,6,5ai=logical(100),b=a>1,求 a(a1,a2和 a(b)。理论分析:注意矩阵的赋值以及各种运算程序代码a = 1,3,0;2,0,1;4,6,5;%定义a的矩阵并赋值al = logical(1 0 1);%a1

10、的逻辑值数组a2 = logical(1 1 0);%a2 的逻辑值数组b = a > 1;%a,b的逻辑表达式a(a1,a2)%求矩阵a的1,3行和1,2列的子矩阵a(b)%求a中大于1的数程序运行结果ans =1346 ans =24234总结在matlab中矩阵的形式各种各样,还有各种赋值形式,我们要了解矩阵的各种形式以及运算2.4分析下面每条指令的功能并运行,观察执行结果。1X=0:0.25:3;Y=X.*exp(-X);plot(X,Y),xlabel( 'x' ), ylabey' ),title( 'y=x*exp(-x)');(2)

11、 A=zeros(3,5)A(:)=-4:5L=abs(A)>4islogical(L)X=A(L)(3) A=1:5;6:10pow2(A)(4) A=zeros(3,2)A(:)=1:6A=A*(1+i)A1=A.'B仁A '(5) A=ones(2,3)B=o nes(2)C=eyeD=diag(C)E=repmat(C,1,3)理论分析:该大题是让我们练习编写代码,观察执行结果,根据结果去了解各个函数的 功能及用法,所以我们必须熟练了解一些常用函数的用法。程序代码X=0:0.25:3;%生成数组Y=X.*exp(-X);%y1 的表达式plot(X,Y),xlab

12、el('x'), ylabel('y'),title('y=x*exp(-x)'); %标注 x,y 轴及标题程序运行结果242.2程序代码A(:) = -4:5%将A矩阵赋值L = abs(A) > 4%将A中绝对值与4比拟后的逻辑值矩阵islogical(L)%求L的逻辑值X = A(L)%求出L中逻辑值为1的那个元素对应A的值242.3程序运行结果A =-4-2024-3-1135L =0000000001ansX =1243.2程序代码pow2(A)%求该数组的每个元素的平方值243.3程序运行结果A =12345678910ans

13、 =2481632641282565121024244.2程序代码A=zeros(3,2)%生成一个3行2列的全0矩阵A(:)=1:6%将A从新赋值A=A*(1+i)%将A中的每个元素进展运算A仁 A.'%求A的转置矩阵B1=A'%求A的共轭转置矩阵2.443程序运行结果1.0000 + I.OOOOi2.0000 + 2.0000i3.0000 + 3.0000i4.0000 + 4.0000i5.0000 + 5.0000i6.0000 + 6.0000iA1 =1.0000 + 1.0000i2.0000 + 2.0000i3.0000 + 3.0000i4.0000 +

14、 4.0000i5.0000 + 5.0000i6.0000 + 6.0000iB1 =1.0000 -1.0000i2.0000 -2.0000i3.0000 -3.0000i4.0000 -4.0000i5.0000 -5.0000i6.0000 -6.0000i%生成一个2X 3的全为1的矩阵程序代码A = on es(2,3)C = eye D = diag(C)E = repmat(C,1,3)%生成一个4阶单位矩阵%取C矩阵中的对角元素作为列向量%将C矩阵复制为1 x3块的矩阵245.3程序运行结果A =111111B =1111C =10 0 0010 000 100 0 0 1

15、D =244总结:在该程序编程题中,有很多函数,要注意他们的用法以及他们之间的联系,比方A:=-4 :5是给矩阵数组赋值,在之前zeros(是确定A的矩阵形式,所以赋值是应与A数组矩阵有一样多的元素个数,本来原题中是 zeros(3,5)但运行 时却有错误,是因为zeros :3,5赋给A, A是3X 5矩阵共有15个元素,而后 来赋值时又只赋给-4:5只有10个元素所以就出错了;当改成 zeros :2,5就可 以了。还有各种其他函数的功能和用法。2.5 计算 y 2x5 0.1x3 10在 x=0.1 与 10 处的值。理论分析:该题是简单的二元方程带值求解问题,只需用matlab编写出该

16、方程的表达式,带值即可求解。程序代码x = 0.1;%将x初始化为0.1y = 2*xA5+0.1*xA3-10;%y关于x的表达式x = 10;%求当x=0.1时y的值%将x赋值为10y = 2*xA5+0.1*xA3-10;%y关于x的表达式%求当x=10时y的值2.5.3程序运行结果y =-9.9999y =2000902.5.4总结:在写出表达式之前一定要定义出表达式中的变量2.6求函数1 A丄A, n=100的值23n2.6.1理论分析:该题是一道用循环函数编写的数学题2.6.2程序代码s = 0;%为s变量赋初值为0for i = 1:100 s = s+1/iA3; ends%循

17、环函数,从1到100%s的累加求和表达式%求s的值263程序运行结果s =1.2020264总结:在这个题目中应该注意s = s+1/iA3的通式的表达,这是一个累加表达式,但是还要注意等比数列的写法。2.7求1500个元素的随机数向量 A中大于0.5的元素个数。理论分析:该题看起来很简单,其实涉及到了很多方面,产生1500个元素得用的随机函 数,依次比拟1500个数得用到循环函数,还要看是否大于 0.5,所以得用到if函 数,再其次就是要用到累加表达式。程序代码A = rand(1500); %随机函数产生1500个随机数向量赋给一维数组 A s = 0;%给s赋初值0for i = 1:1

18、500%循环语句,从1到1500循环1500次if A(i)>0.5%判断数组A中1500是否大于0.5s = s+1;%如果大于0.5,那么将s的值加1,累计个数end ends%求出s最后的累计值程序运行结果s =760总结要注意随机函数的用法,以及要分析好函数的嵌套,那个 rand是随机函 数所以每次产生的数都是不一样的, 即每次运行的结果应该是不同的。应该巧妙 运用到for函数与if函数的嵌套。2.8用图形表示连续调制波形y sin(t)sin(9t),运行下面的程序,观察结果,并简单说明。t1=(0:11)/11*pi;y1=si n(t1).*si n(9*t1);t2=(0

19、:100)/100*pi;y2=si n(t2) .*si n( 9*t2);subplot(2,2,1),plot(t1,y1,'r.'),axis(0,pi,-1,1),title子图(1)')subplot(2,2,2),plot(t2,y2,'r.'),axis(0,pi,-1,1),title子图(2)')subplot(2,2,3),plot(t1,y1,t1,y1,'r.')axis(0,pi,-1,1),title(子图(3)')subplot(2,2,4),plot(t2,y2)axis(0,pi,-1,

20、1),title(子图(4)')理论分析:这题是用图形表示连续调制函数y=sintsin9t的波形,注意比拟几个图得到不同282程序代码t1 = (0:11)/11*pi;%生成一个0到1/n步距为1/ 11* n的数组y1 = sin( t1).*si n(9*t1);%y1关于t1的数学表达式t2 = (0:100)/100*pi;%生成一个0到1/ n步距为1/ 100* n的数组y2 = sin (t2).*si n( 9*t2);%y2关于t2的数学表达式subplot(2,2,1),plot(t1,y1,'r.'),axis(0,pi,-1,1),tit風图

21、1')%指定分成一个图到指定位置,以r的格式画出tl, y1点图形,x轴从0到n,y轴-1到1,标记为子图1subplot(2,2,2),plot(t2,y2,'r.'),axis(0,pi,-1,1),titl子图2')%指定分成一个图到指定位置,以r的格式画出t2, y2点图形,x轴从0到n,y轴-1到1,标记为子图2subplot(2,2,3),plot(t1,y1,t1,y1,'r.')axis(0,pi,-1,1),title子图3')%指定分成一个图到指定位置,以r的格式画出t1, y1连线的折线图形,x轴从0到n,y轴-1到

22、1,标记为子图3subplot(2,2,4),plot(t2,y2)axis(0,pi,-1,1),title子图4')%指定分成一个图到指定位置,以r的格式画出t2, y2默认的曲线图形,x轴从0到n,y轴-1到1,标记为子图4总结:在这几个图中,子图1描写函数的能力最差,子图3也有较大的失真,因 为数据太少。对于离散数据,Plot指令默认处理方法是:自动地把这些离散点用 直线连接,使之成为连续曲线。Subplot是指定几号子图。Axis设置平面轴的X围、坐标分割线3x1 x2 2x392.9方程组-5Xi X2+3X3 5,用矩阵除法来解线性方程组。x1 x2 4x38理论分析:此

23、题是运用矩阵法来求解线性方程组,在matlab中有很简单实用的方法求解线性方程组程序代码A = sym(3,-1,2;-5,1,3;1,-1,4);%将方程组的各个元素的系数定义为符号数组b = sym(9;5;8);%将方程组等号后的值定义为符号列向量X = Ab%解出方程组总结:将各个方程组的各个元素的的系数赋给 A,用到方程组的符号解,矩阵计算是求 解线性方程组最简便有效的方法。用sym()符号函数,注意b要用sym9; 5; 8, 不能用 sym 9,5,8。2.10y e-1cos(t),其中t的X围是0 10,计算y的微分和积分并给出曲线图。理论分析:这是一个求积分和微分的题,以及

24、也涉及到画图函数。有各种不同的画图函数, 注意选择方便的。程序代码以及结果:syms t,y = exp(-1)*cos(t); %定义符号变量df = diff(y,'t')%将符号t视作变量求y对t的微分jf = in t(y,t)%将符号t作为变量求y对t的积分subplot(2,1,1),ezplot(df,0,10)%在分成后的指定地方绘制微分在0到10之间的曲线图subplot(2,1,2),ezplot(jf,0,10)%在分成后的指定地方绘制积分在0到10之间的曲线图程序运行结果总结要了解积分和微分函数的运用,该题用到了符号积分和符号微分,对ezplot画图函数

25、的运用;3心得体会通过这次MATLAB的学习,我对MATLAB有了一个根底的认识,matlab是 一个可以完成各种准确计算和数据处理的、可视化的、强大的计算工具。它集图示和准确计算于一身,在应用数学、物理、化工、机电工程、医药、金融和其他 需要进展复杂数值计算的领域得到了广泛应用。MATLAB是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据构造、输入和输出和面向对象编程的特点。 用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂程序M文件后再一起运行。在这短短的一周内从开场的一头雾水,到自己看书学习,到同学讨论,再 进展整个题目的理论分析和计算,参考课程上的代码,写出自己的代码。我们也明白了学无止尽的道理,在我们所查的很多参考书中,很多知识是我 们从没有接

温馨提示

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

评论

0/150

提交评论