1、M 专业基础实践课设专业基础实践课设 Matlab 应用课程设计任务书 学生姓名:杨博 专业班级:电信 1303 班 指导教师:肖攸安 工作单位:信息工程学院 题 目:Matlab应用第 7套综合题 初始条件:(1)提供实验室机房及其 Matlab6.5 以上版本软件;(2)MATLAB教程学习。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求):(1)选择一本MATLAB教程,认真学习该教程的全部内容,包括基本使用方法、数组运算、矩阵运算、数学运算、程序设计、符号计算、图形绘制、GUI设计等内容;(2)对该套综合题的 10道题,进行理论分析,针对具体设计部分的原
2、理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表)。(3)对实验结果进行分析和总结;(4)要求阅读相关参考文献不少于 5篇;(5)根据课程设计有关规范,按时、独立完成课程设计说明书。时间安排:(1)布置课程设计任务,查阅资料,学习MATLAB教程 十周;(2)进行编程设计 一周;(3)完成课程设计报告书 一周;指导教师签名:年 月 日 系主任(或责任教师)签名:年 月 日 目录 1 前言 1 1.1MATLAB简介 1 1.2MATLAB的功能 1 1.3MATLAB的典型应用 1 2 设计题目 3 3 设计内容
3、5 3.1题一 5 3.2题二 5 3.3题三 6 3.4题四 7 3.5题五 14 3.6题六 14 3.7题七 15 3.8题八 17 3.9题九 18 3.10题十 19 4 课程设计心得 22 参考文献 23 1 前言 1.1MATLAB 简介简介 MATLAB软件由美国 Math Works公司于 1984 年推出,经过不断的发展和完善,如今己成为覆盖多个学科的国际公认的最优秀的数值计算仿真软件。MATLAB具备强大的数值计算能力,许多复杂的计算问题只需短短几行代码就可在 MATLAB中实现。作为一个跨平台的软件,MATLAB已推出 Unix、Windows、Linux 和 Mac等
4、十多种操作系统下的版本,大大方便了在不同操作系统平台下的研究工作。MATLAB软件具有很强的开放性和适应性。在保持内核不变的情况下,MATLAB可以针对不同的应用学科推出相应的工具箱(toolbox),目前己经推出了图象处理工具箱、信号处理工具箱、小波工具箱、神经网络工具箱以及通信工具箱等多个学科的专用工具箱,极大地方便了不同学科的研究工作。国内已有越来越多的科研和技术人员认识到 MATLAB的强大作用,并在不同的领域内使用 MATLAB来快速实现科研构想和提高工作效率。MATLAB提供了 20 类图像处理函数,涵盖了图像处理的包括近期研究成果在内的几乎所有的技术方法,是学习和研究图像处理的人
5、员难得的宝贵资料和加工工具箱。这些函数按其功能可分为:图像显示;图像文件 I/O;图像算术运算;几何变换;图像登记;像素值与统计;图像分析;图像增强;线性滤波;线性二元滤波设计;图像去模糊;图像变换;邻域与块处理;灰度与二值图像的形态学运算;结构元素创建与处理;基于边缘的处理;色彩映射表操作;色彩空间变换;图像类型与类型转换。1.2MATLAB 的功能的功能 1)强大的科学计算机数据处理能力 2)出色的图形处理功能 3)应用广泛的模块集合工具箱 4)实用的程序接口和发布平台 1.3MATLAB 的典型应用的典型应用 1)数据分析 2)数值与符号计算;3)工程与科学绘图;4)控制系统设计;5)航
6、天工业;6)汽车工业;7)生物医学工程;8)语音处理;9)图像与数字信号处理;10)财务、金融分析;11)建模、仿真及样机开发;12)新算法研究开发;13)图形用户界面设计。2 设计题目设计题目 第第 7 套题:套题:Matlab 应用课程设计应用课程设计 7(1).求100,200之间第一个能被 21整除的整数。(2).绘制余弦曲线 y=cos(x)和指数函数 y=x2 曲线。(3).计算 2+4+6.+100 的值,当和大于 2000 时终止计算。(4).分析下面每条指令的功能并运行,观察执行结果。X=0:0.25:3;Y=X.*exp(-X);plot(X,Y),xlabel(x),yl
7、abel(y),title(y=x*exp(-x);A=zeros(3,5)A(:)=-7:7 L=abs(A)4 islogical(L)X=A(L)A=1:5;6:10 pow2(A)A=zeros(3,2)A(:)=1:6 A=A*(1+i)A1=A.B1=A A=ones(2,3)B=ones(2)C=eye(4)D=diag(C)E=repmat(C,1,3)(5).利用 whileend 循环结构编程求出 1+3+5+101 的值。(6).随机生成一个 10000 3 的矩阵,并绘制其柱状图。(7).利用 switchcase 编写以下程序:某商场对顾客所购买的商品实行打折销售,标
8、准如下(商品价格用 price来表示):price200 无折扣 200 price500 5折扣 500 price n n=105 3.2 题二题二 绘制余弦曲线 y=cos(x)和指数函数 y=x2 曲线。分析:绘制曲线用 plot 函数。为方便观察两个图像,应适当设置横纵坐标的大小,这需要用到 axis(xmin xmax ymin ymax)函数。设置其 x 在(0,2pi),y为(-3,3)较为合适。1)程序如下 x=0:pi/30:2*pi;%产生一个 0到 2pi 的等差数列 y1=cos(x);y2=x.*x;%定义关于 y1和 y2的函数 plot(x,y1,-ro,x,y
9、2)%将 y1 y2 的图像以不同的样式绘制出来 axis(0,2*pi,-3,3)%定义 x 和 y的最值 h=legend(cos_x,x.*x,2);%添加两个函数的标注 2)运行结果为 图 1 题 3.2程序运行结果 3.3 题三题三 计算 2+4+6.+100 的值,当和大于 2000时终止计算。分析:此题为求偶数的和第一次大于 2000 时的值,因此要设置累加后的值放在sum 里面,用 while循环,令 m 的初值为 2步长为 2,终值为 100.1)程序如下:sum=0;%定义 sum 的初值为 0 m=2;%定义 m 的初值为 2 while sum4 islogical(L
10、)X=A(L)分析:A=zeros(3,5)会产生一个 3*5阶的全 0 矩阵 A,A(:)=-7:7 会将矩阵元素从-7到 7 依次赋值,L=abs(A)4 会标记矩阵 A中元素的绝对值大于 4的元素,islogical(L)判断 L是不是逻辑数,X=A(L)取出 A中绝对值大于 4的元素组成一个新的矩阵 A。1)程序如下:A=zeros(3,5)A(:)=-7:7 L=abs(A)4 islogical(L)x=A(L)2)结果如下:A=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A=-7-4-1 2 5 -6-3 0 3 6 -5-2 1 4 7 L=1 0 0 0 1
11、1 0 0 0 1 1 0 0 0 1 ans=1 x=-7 -6 -5 5 6 7 3.4.3 分析下面指令的功能并运行,观察执行结果。A=1:5;6:10 pow2(A)分析:A=1:5;6:10为矩阵的第一行从 1到 5依次赋值,第二行,从 6 到 10依次赋值,pow2(A)将 A按矩阵运算出平方。1)程序如下:A=1:5;6:10 pow2(A)2)结果如下:A=1 2 3 4 5 6 7 8 9 10 ans=2 4 8 16 32 64 128 256 512 1024 3.4.4 分析下面指令的功能并运行,观察执行结果。A=zeros(3,2)A(:)=1:6 A=A*(1+i
12、)A1=A.B1=A 分析:A=zeros(3,2)得到一个 3*2的全零矩阵。A(:)=1:6 将 1到 6内的整数值赋给A,形成新的矩阵 A。A=A*(1+i)计算 A*(1+i),得到新矩阵 A。A1=A.得到非共轭转置矩阵 A1。B1=A得到共轭转置矩阵 B1。1)程序如下:A=zeros(3,2)A(:)=1:6 A=A*(1+i)A1=A.B1=A 2)运行结果如下:A=0 0 0 0 0 0 A=1 4 2 5 3 6 A=1.0000+1.0000i 4.0000+4.0000i 2.0000+2.0000i 5.0000+5.0000i 3.0000+3.0000i 6.00
13、00+6.0000i 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=1.0000-1.0000i 2.0000-2.0000i 3.0000-3.0000i 4.0000-4.0000i 5.0000-5.0000i 6.0000-6.0000i 3.4.5 分析下面指令的功能并运行,观察执行结果。A=ones(2,3)B=ones(2)C=eye(4)D=diag(C)E=repmat(C,1,3)分析:A=ones(2,3)得到 2*3 全 1矩
14、阵 A。B=ones(2)得到全 1 二阶方阵 B。C=eye(4)得到四阶单位矩阵 C。D=diag(C)提取 C 的对角矩阵 D。E=repmat(C,1,3)复制矩阵 C 并在第一行平铺三个。1)程序如下:A=ones(2,3)B=ones(2)C=eye(4)D=diag(C)E=repmat(C,1,3)2)结果如下:A=1 1 1 1 1 1 B=1 1 1 1 C=1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 D=1 1 1 1 图 3 题 3.4.5运行结果 3.5 题五题五 利用 whileend循环结构编程求出 1+3+5+101 的值。分析:用 whil
15、eend 循环结构编程求 1+3+5+101 需要一个循环变量 k和一个累加变量 s,最终得到的 s 即为求和的值。1)程序如下:s=0;%定义 s 并赋初值 0 k=1;%定义 k 并赋初值 1 while k 3.6 题六题六 随机生成一个 10000 3 的矩阵,并绘制其柱状图。分析:生成随即矩阵需要用到函数 rand(),绘制柱状图需要用到函数 bar()。1)程序如下:A=rand(10000,3);bar(A)2结果如下 图 4 题 3.6运行结果 3.7 题七题七 利用 switchcase编写以下程序:某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用 price来表示
16、):price200 无折扣 200 price500 5折扣 500 price1000 10折扣 Price 1000 15折扣 输入所售商品的价格,求其实际销售价格。分析:用 switch语句来编写,需要将价格的不同区间对应不同的数字,用 fix 函数将 price/100 的结果靠近 0 取整后,可以使小于 200对应情况为(0 1),200到 500 对应情况为(2 3 4),500到 1000 对应情况为(5 7 8 9)。同时为避免用户输入负数这种不可能出现的价格情况,用 while 语句设置一个循环判断,是用户输入小于 0的数字时提示其输入错误,需要重新输入,这样的话剩下的最后
17、一种情况即为价格大于 1000 的情况,可以用 otherwise语句编写。1)程序如下:price=input(price);while price circle(0.5);s=0.7854 l=3.1416 circle(5);s=78.398 l=31.4159 3.9 题九题九 已知,其中 t 的范围是0 10,计算 y的微分和积分并给出曲线图。分析:首先需要定义两个变量 t 和 y,将所求函数用 y=exp(-1)*cos(t)表示出来,求积分需要用到 int()函数,求微分需要用到 diff()函数,vpa 函数用于控制精度,画图像用 ezplot()函数比较简单,只需方程式即可画
18、出图像。1)程序如下:syms t y a b c d%定义变量 t y y=exp(-1)*cos(t)%表达出函数 y=exp(-1)*cos(t)a=int(y,0,10);%求 y的积分并赋给 a b=diff(y,0,10);%求 y的微分并赋给 b ezplot(y,0,10)%画出 y的图像 c=vpa(a);%控制 a的精度后并把其赋给 c d=vpa(b);%控制 b 的精度后并把其赋给 d c d 2)运行如下 c=-.20013418225944862880696669467031 d=-.36787944117144233402427744294982*cos(t)图
19、5 题 3.9运行结果 3.10.题十题十 编写程序,用 plot(x,y)绘制图六、图七所示曲线。图 6 图 7 3.10.1 分析:有图像很容易可以求出函数的表达式为 y=3*x+1,x 取值范围为(0,5),画图像可以用到 plot()函数,再用 xlabel(x),ylabel(y)两个语句确定其横纵坐标轴的名称。1)程序如下:x=0:0.001:5;y=3*x+1;plot(x,y);%画出 y的曲线 xlabel(x),ylabel(y);2)结果如下:图 8 题 3.10.1运行结果 3.10.2 分析:容易看出这是两个表达式的图像所形成的图形,分别为分析:容易看出这是两个表达式
20、的图像所形成的图形,分别为 y1=x+1 和和 y2=-x+3,可以用,可以用 plot()函数画出其图形,但要注意的是画出第一个图形后需要用()函数画出其图形,但要注意的是画出第一个图形后需要用 hold on 语句将第一个图形锁住,再画第二个图形,否则第二个图形会将第一个图形覆盖,语句将第一个图形锁住,再画第二个图形,否则第二个图形会将第一个图形覆盖,无法得出如题所示图形。无法得出如题所示图形。1)程序如下:x=0:0.1:1;y1=x+1;y2=-x+3;plot(x,y1),hold on,plot(x,y2);%画出 y1和 y2 的两条曲线并同时显示 2)结果如下:图 9 题 3.
21、10.2运行结果 4 课程设计心得课程设计心得 Matlab 作为一款数学处理软件,其功能是非常强大的,通过对该软件的学习,我有学会了一种方法去解决比较纠结的数学问题。刚开始我是先找了一本电子工业出版社的MATLAB及在电子信息工程课程中的应用这本书,通过对这本书的学习,我对 Matlab 有了初步的了解,然后又在网上找了些视频,跟着学做了几次就开始自己做了,感觉只要是以认真学 Matlab 不是很难。首先,Matlab 是针对矩阵的,然后好多的与方程的解有关的问题便迎刃而解,还有就是比较强大的绘图功能,以前在高中的时候只看过书本上做的一些比较复杂的图像,但现在可以自己做感觉还是蛮激动的,Ma
22、tlab 有个很方便的工具,就是它的帮助,遇到什么不懂的问题只要查一下 help 就能解决了。在 help 中输入不理解的函数语句,就会弹出非常详细的解释,当然这是全英文的,不过正好可以锻炼一下我的英文水平。遇到看不懂的,可以自己把它导入有道里面,一般都能找到翻译,还有些错误不能解决的我就自己还上网 XX,越发觉得 XX是一个非常强大的搜索引擎,上面有好多与 Matlab 相关的知识,所以说网络是个非常好的学习语言的平台,可以通过网络与其他人交流经验。通过这次课程设计,我体会到了 Matlab 的强大功能,其次就是它在我们专业中的用处也是很大的,比如说在信号处理和自动控制上的应用等等,以后我还
23、得深入学习Matlab,并在以后的专业学习中去应用它.参考文献 1 唐向宏.MATLAB 及在电子信息类课程中的应用.电子工业出版社.M 2006 2 穆尔.MATLAB实用教程(第二版).电子工业出版社.M 2010 3 陈杰.MATLAB宝典(第 3 版).电子工业出版社.M 2011 4 刘保柱.MATLAB 7.0 从入门到精通(修订版).人民邮电出版社.M 2010 5 陈怀琛.MATLAB 及在电子信息课程中的应用.电子工业出版社.M 2006 6 张琨.MATLAB 2010 从入门到精通.电子工业出版社.M 2011 7 薛山.MATLAB基础教程.清华大学出版社.M 2011 8 张圣勤.MATLAB7.0 使用教程.机械工业出版社.M 2006 本科生课程设计成绩评定表 姓 名 性 别 专业、班级 电子信息工程 1303班 课程设计题目:课程设计答辩或质疑记录:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字:年 月 日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1