




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学matlab应用课程设计说明书matlab应用课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 信息工程学院 题 目:matlab应用第3套综合题初始条件:(1)提供实验室机房及其matlab6.5以上版本软件; (2)matlab教程学习。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求):(1)选择一本matlab教程,认真学习该教程的全部内容,包括基本使用方法、数组运算、矩阵运算、数学运算、程序设计、符号计算、图形绘制、gui设计等内容;(2)对该套综合题的10道题,进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表)。(3)对实验结果进行分析和总结;(4)要求阅读相关参考文献不少于5篇;(5)根据课程设计有关规范,按时、独立完成课程设计说明书。时间安排:(1) 布置课程设计任务,查阅资料,学习matlab教程 十周;(2) 进行编程设计 一周;(3) 完成课程设计报告书 一周;指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日i题目:matlab应用课程设计第3套题1.算y1=和y2=;2.绘制函数在时的曲线。3.用图形表示离散函数。4.分析下面每条指令的功能并运行,观察执行结果。(1) x=0:0.5:6;y=x.*exp(-x);plot(x,y),xlabel(x), ylabel(y),title(y=x*exp(-x);(2) a=zeros(3,5)a(:)=-4:10l=abs(a)4islogical(l)x=a(l)(3) a=1:5;6:10b=rand(2,5)a*b(4) a=zeros(3,2)a(:)=-1:4a=a*(1+i)a1=a.;b1=a;(5) a=ones(2,3)b=eye(3)c=magic(4)d=diag(c)e=repmat(c,1,3)5.计算在x=0.1与10处的值。6.求函数, n=100的值。7.求1500个元素的随机数向量a中大于0.5的元素个数。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,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,1),title(子图 (4)9. 计算下列矩阵a的标准正交基 10有如下数据:x11.11.21.31.4y1.000001.233681.552711.993722.61170利用三次样条插值方法对其进行插值,得到每隔 0.05 的结果。目录摘要i1 matlab概述11.1 matlab简介 11.2 matlab的功能11.3 matlab应用22设计内容及分析32.1 题目一 32.2 题目二 32.3 题目三 42.4 题目四 52.5 题目五112.6 题目六 122.7题目七132.8 题目八 142.9 题目九 152.10题目十163 课程设计心得 18参考文献 20摘要matlab可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其它编程语言的程序等。matlab主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。本次课程设计对该套综合题的10道题,进行了理论分析,针对具体设计部分作了原理分析、建模、必要的推导和可行性分析,并且画出了程序设计框图,编写了程序代码(含注释),上机调试了运行程序,并且记录下了实验结果(含计算结果和图表)。最后对实验结果进行分析和总结。关键词:matlab;课程设计;理论分析;上机调试;总结 20武汉理工大学matlab应用课程设计说明书1 matlab概述1.1 matlab简介matlab是集数值计算、符号运算及图形处理等强大功能于一体的科学计算语言,它是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如c、fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。matlab的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用matlab来解算问题要比用c,fortran等语言完成相同的事情简捷得多,并且matlab也吸收了像maple等软件的优点,使matlab成为一个强大的数学软件。matlab具有友好的工作平台和编程环境、简易易用的程序语言、强大地科学计算及数据处理能力、出色的图形处理功能、应用广泛的模块集和工具箱、实用的程序接口和发布平台以及模块化的设计和系统级的仿真。在美国及其他发达国家的理工科院校里,matlab已经成为了一门必修的课程,在科研院所、大型公司或企业的工程计算部门,matlab也是最为普遍的计算工具之一。1.2 matlab的功能(1)matlab以矩阵作为数据操作的基本单位,但无需预先指定矩阵维数(2)按照ieee的数值计算标准进行计算(3)提供十分丰富的数值计算函数,方便计算,提高效率(4)matlab命令与数学中的符号,公式非常接近,可读性强,容易掌握(5)matlab提供丰富的绘图命令,很方便实现数据的可视化(6)matlab具有程序结构控制,函数调用,数据结构,输入输出,面向对象等程序语言特征,而且简单易学,编程效率高1.3 matlab应用 matlab 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 matlab 函数集)扩展了 matlab 环境,以解决这些应用领域内特定类型的问题。matlab 产品族可以用来进行以下各种工作:(1)数值分析 (2)数值和符号计算 (3)工程与科学绘图 (4)控制系统的设计与仿真 (5) 数字图像处理 技术(6) 数字信号处理 技术 2 设计内容及分析2.1计算和理论分析:利用matlab的基本函数cos()和sqrt()就可以处理这两个算式。程序代码如下: 20*cos(0.5*pi)/(2+sqrt(3)ans = 3.2814e-016 5*cos(0.4*pi)/(4+sqrt(3)ans =0.2696小结:要注意乘法要用*而不能用 或者不写。分母要用括号括起来,而直接写pi就可以了。这与平时的一些书写习惯有所差别。matlab在处理类似的数学算式方面很有优势,以后要多加运用。2.2绘制函数在时的曲线。理论分析:利用matlab的绘图功能绘制曲线图,我用的是最基本的plot()函数.程序代码:x=0:0.05:1;y=x.*exp(-x);plot(x,y)运行结果如图1所示:图1函数在时的曲线小结:在二维绘图函数中,最重要、最基本的函数就是plot函数。其可以在二维坐标系中绘制线性图形。其调用格式为 plot(x) plot(x,y1,x,y2.) 2.3用图形表示离散函数。理论分析:在这道题目中,运用到绝对值函数abs(),坐标方格函数grid on 以及上题所用到的绘图函数plot()程序代码: n=(0:12); % 产生一组自变量数据y=1./abs(n-6); % 产生相应的函数值plot(n,y,rx,markersize,20) % 用大x红花标出数据点grid on %画坐标方格运行结果如图2所示:图2用图形表示离散函数总结:描点时出现“warning: divide by zero.”,说明除法的分母出现零的情况.2.4分析下面每条指令的功能并运行,观察执行结果。(1)题目 x=0:0.5:6;y=x.*exp(-x);plot(x,y),xlabel(x), ylabel(y),title(y=x*exp(-x);理论分析:x=0:0.5:6;表示自变量x的变化范围是0到6,每次自增0.5;y=x.*exp(-x)表示应变量与自变量之间的函数关系;plot(x,y)表示用plot函数在二维坐标系里绘制线性函数;xlabel(x), ylabel(y)表示在当前坐标轴上加注x轴,y轴的表示依次为x,y。而title(y=x*exp(-x)表示将y=x*exp(-x)标注为图形的标题。或者注释如下:x=0:0.5:6; %长度为13的x轴采样点y=x.*exp(-x); %函数表达式plot(x,y); %绘制一条曲线,如下所示xlabel(x); %将水平轴标注为x轴ylabel(y); %将竖直轴标注为y轴title(y=x.*exp(-x); %将函数图形取名为 y=x.*exp(-x)程序代码: x=0:0.5:6; y=x.*exp(-x); plot(x,y); xlabel(x); ylabel(y); title(y=x.*exp(-x);运行结果如图3所示:图3 y=x.*exp(-x) 的函数图形(2)题目a=zeros(3,5)a(:)=-4:10l=abs(a)4islogical(l)x=a(l)理论分析: a=zeros(3,5) %取0数组a,3行5列a(:)=-4:10 %将-4至10的15个数值按列依次给a数组赋值l=abs(a)4 %判断a中元素的绝对值与4的大小,将结果赋值给lislogical(l) %将l变为l的逻辑数组x=a(l) %将逻辑值为1 的元素列写出来程序代码: a=zeros(3,5)a(:)=-4:10l=abs(a)4islogical(l)x=a(l)运行结果如下a = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0a = -4 -1 2 5 8 -3 0 3 6 9 -2 1 4 7 10l = 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1ans = 1x = 5 6 7 8 910(3)题目:a=1:5;6:10b=rand(2,5)a*b理论分析:a=1:5;6:10 %输入数组ab=rand(2,5) %生成一个2行,5列随机数组ba*b %矩阵a和b的转置矩阵相乘程序代码:a=1:5;6:10b=rand(2,5)a*b运行结果如下:a = 1 2 3 4 5 6 7 8 9 10b = 0.1934 0.3028 0.1509 0.3784 0.8537 0.6822 0.5417 0.6979 0.8600 0.5936ans = 7.0333 10.2671 16.4288 27.1440(4)题目 a=zeros(3,2)a(:)=-1:4a=a*(1+i)a1=a.;b1=a;理论分析: a=zeros(3,2) %取0数组a,3行2列a(:)=-1:4 %将-1至4的6个数值按列依次给a数组赋值a=a*(1+i) %将矩阵a转化为复数矩阵a1=a. %将矩阵a转置b1=a %将矩阵a转置程序代码:a=zeros(3,2)a(:)=-1:4a=a*(1+i)a1=a.b1=a运行结果:a = 0 0 0 0 0 0a = -1 2 0 3 1 4a = -1.0000 - 1.0000i 2.0000 + 2.0000i 0 3.0000 + 3.0000i 1.0000 + 1.0000i 4.0000 + 4.0000ia1 = -1.0000 - 1.0000i 0 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000ib1 = -1.0000 + 1.0000i 0 1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i 4.0000 - 4.0000i(5)题目 a=ones(2,3)b=eye(3)c=magic(4)d=diag(c)e=repmat(c,1,3 ) 理论分析: a=ones(2,3) %2行3列全1矩阵ab=eye(3) %3阶单位方阵bc=magic(4) %生成一个4阶幻方矩阵,并赋值给cd=diag(c) %提取对角矩阵ce=repmat(c,1,3) %生成一个包含3个c的复制的大矩阵e程序代码: a=ones(2,3)b=ones(2)c=eye(4)d=diag(c)e=repmat(c,1,3)运行结果如下:a = 1 1 1 1 1 1b = 1 0 0 0 1 0 0 0 1c = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1d = 16 11 6 1e = 16 2 3 13 16 2 3 13 16 2 3 13 5 11 10 8 5 11 10 8 5 11 10 8 9 7 6 12 9 7 6 12 9 7 6 12 4 14 15 1 4 14 15 1 4 14 15 1小结:利用矩阵函数可以方便快捷的生成我们所想要的矩阵,并且可以进行矩阵运算,很方便,很实用。ones()函数生成全1矩阵,zeros()生成全0矩阵,magic()函数生成幻方矩阵,其对角线上元素的和相等,并且幻方矩阵的元素值从1到n2,repmat()函数按指定维上的数目复制矩阵。2.5计算在x=0.1与10处的值。理论分析1:可以直接输入方程式,然后就可以计算出结果,如下所示。程序代码:x=0.1y=2*x5+0.1*x3-10x=10y=2*x5+0.1*x3-10运行结果:x = 0.1000y = -9.9999x = 10y = 200090理论分析2: 这道题目是运用matlab计算多项式。这里运用到的是polyval()函数,通过polyva()函数可以很快的计算出在相应值下的多项式的值。程序代码:p=2 0 0.1 0 0-10;polyval(p,0.1)polyval(p,10)运行结果如下:ans = -9.9988ans = 20000总结:对于多项式的计算,matlab提供了专用的函数polyval(),通过polyval()函数可以很快的计算出在相应值的下的多项式结果。2.6求函数, n=100的值。理论分析1:在这道题目中我用了两种方法,这是第一种即编写程序算出结果。代码如下: y=0;n=100;for k=1:n y=y+1/(k3);endy结果:y =1.2020理论分析2:在matlab中有专门的计算级数和的函数即symsum()函数。其格式为:symsum(x,y,a,b)计算级数x的和,其中y为自变量,x为符号表达式,a,b为参数y的取值范围。代码如下:syms n;s=1/n3;symsum(s,n,1,100)运行结果ans = 81473483330743503583074181861672511931518122336172216406894149391331289704097519580221863303145356050828007873151451209887/67781182783092495848656345091844021571734190630914590229332161379950257170828098031102950264769178652556660142954086400000而 81473483330743503583074181861672511931518122336172216406894149391331289704097519580221863303145356050828007873151451209887/67781182783092495848656345091844021571734190630914590229332161379950257170828098031102950264769178652556660142954086400000ans =1.2020小结:对于级数求和函数symsum()要注意先定义变量,而计算结果一开始是一大串数数字,我以为错了,最后才发现中间还有一个/号。我把结果运算一下,和上面所得结果一样。2.7求1500个元素的随机数向量a中大于0.5的元素个数。理论分析:对于列写随机数需要用到函数rand().得到矩阵后需要用程序控制,有循环语句,选择语句和嵌套循环语句。程序代码: a=rand(50,30);n=0;for i=1:50;for j=1:30;if a(i,j)0.5,n=n+1;end,end,endn运行结果如下:n = 755小结:在写代码的过程中需要注意,与;之间的区别,而最后三个end与for,for,if三者依次对应,缺一不可,否则得不到最终结果。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,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,1),title(子图 (4)解答: 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), %将窗口分为4个,当前为第一个plot(t1,y1,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,t1,y1,r.) %点少时显示的是折线axis(0,pi,-1,1),title(子图 (3)subplot(2,2,4),plot(t2,y2) %点多时才显示曲线axis(0,pi,-1,1),title(子图 (4)结果如图4所示:图4 图像总结:plot()函数和subplot()函数是matlab中非常有用的绘图工具,可以很方便很直观的展示复杂函数的图形图像,在以后的工作学习中,要多加运用和学习。2.9计算下列矩阵a的标准正交基 理论分析:运用orth()函数处理即可程序代码:a=1 1 4;2 2 5;3 3 6q,r=qr(a)运行结果如下:a = 1 1 4 2 2 5 3 3 6q = % q即为所求标准正交基 -0.2673 0.9562 0.1195 -0.5345 -0.0439 -0.8440 -0.8018 -0.2895 0.5228r = -3.7417 -3.7417 -8.5524 0 -0.0000 1.8685 0 0 -0.6050总结: orth函数的功能是求矩阵正交基。b = orth(a),返回矩阵a的正交基,b的列与a的列具有相同的空间,b的列向量是正交向量,满足b*b = eye(rank(a),b的列数是a的秩。但是正交基和标准正交基不是同一个概念。求一个矩阵的标准正交基需要用q,r=qr(a),结果中q即为所求标准正交基。 2.10有如下数据:x11.11.21.31.4y1.000001.233681.552711.993722.61170利用三次样条插值方法对其进行插值,得到每隔 0.05 的结果。理论分析:利用三次样条插值函数即可,或者利用一维插值函数也可以。(1)程序代码:x=11.11.21.31.4;y=1.000001.233681.552711.993722.61170;xi=1:0.05:1.4;yi=spline(x,y,xi)运算结果如下:yi =1.0000 1.1082 1.2337 1.3805 1.5527 1.7548 1.9937 2.2769 2.6117(2) 程序代码x=1 1.1 1.2 1.3 1.4;y=1.00000 1.23368 1.55271 1.99372 2.61170;xi=1:0.05:1.4;yi=interp1(x,y,xi,spline)运算结果如下:yi =1.0000 1.1082 1.2337 1.3805 1.5527 1.7548 1.9937 2.2769 2.6117总结:在matlab中,三次样条插值可以采用函数spline(),该函数的调用格式如下。yi=spline(x, y, xi):通过初始数据产生插值函数,然后对数据xi进行插值,返回值。采用这种调用方式时,其相当于yi=interp1(x, y, xi, spline)。 pp=spline(x, y):该函数通过对初始数据x和y产生插值函数,并进行返回。然后利用函数ppval()对数据xi进行插值计算,其调用方式yi=ppval(pp, xi),其中pp为插值函数。3课程设计心得通过这次课设的学习,我学习到了很多知识。虽然临近期末考试,但是我还是花了很多时间去准备,从接到任务后就开始去图书馆借书,上网搜相关资料。从来没有接触过matlab,很早就听说过matlab了,久仰其功能强大,但由于各种原因一直没有安上matlab这个软件所以就一直没有见到其庐山真面目。得益于这次课设我领略到了matlab的风采,其功能的强大超乎了我的想象,想想以后的学习过程中有了matlab可以处理很多复杂的数学计算。这是我第一次进行课程设计并撰写课程设计说明书,通过这次课程设计,我了解了课程设计的步骤,并熟悉了课程设计说明书的撰写要求和其工作规范,了解了它的统一书写格式,为以后的其他课程设计及相关的内容打下了基础。从图书馆借了书之后我就马不停蹄的看
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家人和谐幸福承诺书电子版范本3篇
- 2025福建省大学生志愿服务乡村振兴计划工作模拟试卷含答案详解
- 2025江苏苏州国家历史文化名城保护区、苏州市姑苏区区属国资集团副总裁招聘2人考前自测高频考点模拟试题及答案详解(夺冠系列)
- 客户代表聘用合同7篇
- 2025年淮南寿县安徽寿州控股集团有限公司人才引进10人模拟试卷及答案详解1套
- 数据完备准确保障责任承诺书7篇
- 2025安徽含山县县级公立医院招聘紧缺人才13人考前自测高频考点模拟试题及1套完整答案详解
- 销售合同审核标准化工具快速响应版
- 2025福建亿力集团有限公司所属单位生招聘98人第三批考前自测高频考点模拟试题及答案详解1套
- 2025江西吉安市井冈山大学招聘177人考前自测高频考点模拟试题附答案详解(完整版)
- GB 16663-2025醇基液体燃料
- 广东上进联考2025-2026学年领航高中联盟2026届高三10月一轮复习阶段检测化学(含答案)
- 2024年全国统计师之初级统计基础理论及相关知识考试快速提分卷(附答案)
- 土地法律知识培训内容课件
- 2025年湖北省荆门市辅警考试题库(附答案)
- 气象科研课题申报书
- 人工智能+开放共享城市安全监控数据共享分析报告
- GB/T 39126-2020室内绿色装饰装修选材评价体系
- GB/T 28726-2012气体分析氦离子化气相色谱法
- 企业降本增效培训课件
- 分则第二章危害国家安全罪课件
评论
0/150
提交评论