武汉理工MATLAB课设报告套题十.docx
《武汉理工MATLAB课设报告套题十.docx》由会员分享,可在线阅读,更多相关《武汉理工MATLAB课设报告套题十.docx(32页珍藏版)》请在冰点文库上搜索。
武汉理工MATLAB课设报告套题十
Matlab应用课程设计任务书
学生姓名:
王鼎专业班级:
电信1103班
指导教师:
桂林工作单位:
信息工程学院
题目:
Matlab应用第10套综合题
初始条件:
(1)提供实验室机房及其Matlab6.5以上版本软件;
(2)《MATLAB教程》学习。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求):
(1)选择一本《MATLAB教程》,认真学习该教程的全部内容,包括基本使用方法、数组运算、矩阵运算、数学运算、程序设计、符号计算、图形绘制、GUI设计等内容;
(2)对该套综合题的10道题,进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表)。
(3)对实验结果进行分析和总结;
(4)要求阅读相关参考文献不少于5篇;
(5)根据课程设计有关规范,按时、独立完成课程设计说明书。
时间安排:
(1)布置课程设计任务,查阅资料,学习《MATLAB教程》十周;
(2)进行编程设计一周;
(3)完成课程设计报告书一周;
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
目录
摘要………………………………………………………………………………1
1MATLAB概述...............................................................................2
1.1MATLAB简介..................................................................................2
1.2MATLAB的功能...............................................................................2
1.3MATLAB的典型应用.........................................................................3
2设计题目:
MATLAB运算与应用设计套题十.................................4
3设计内容...............................................................................................6
3.1题一.....................................................................................................................6
3.2题二.....................................................................................................................8
3.3题三.....................................................................................................................8
3.4题四.....................................................................................................................10
3.5题五...................................................................................................................15
3.6题六...................................................................................................................17
3.7题七....................................................................................................................................18
3.8题八....................................................................................................................................19
3.9题九....................................................................................................................................21
3.10题十....................................................................................................................22
4课程设计心得....................................................................................24
5参考文献...........................................................................................25
6本科生课程设计成绩评定表............................................................26
摘要
MATLAB是一种高性能的工程计算语言。
它集计算,可视化,可编程于一体,并在一个易于使用的环境下用熟悉的数学符号解决问题。
典型用途包括数学计算,算法,开发,日期,采集,建模,仿真,可视化,科学和工程图形,包括图形界面的应用开发。
MATLAB有可以用于曲线拟合的内建函数。
MathWorks公式也提供了很多工具箱可以用于曲线拟合。
这些方法可以用来做线性或者非线性曲线拟合。
MATLAB也有一个开放的工具箱――曲线拟合工具箱(CurveFittingToolbox),它可以用于参数拟合,也可以用于非参数拟合。
在MATLAB中,多项式拟合函数polyfit可以用来计算拟合的得到多项式系数。
默认的拟合目标是最小方差最小,即最小二乘法拟合数据。
此时,判断的依据过拟合曲线的道德原始数据之间的平均误差是否达到最小。
关键词:
工程语言;数学计算;曲线拟合
1MATLAB概述
1.1MATLAB简介
MATLAB软件由美国MathWorks公司于1984年推出,经过不断的发展和完善,如今己成为覆盖多个学科的国际公认的最优秀的数值计算仿真软件。
MATLAB具备强大的数值计算能力,许多复杂的计算问题只需短短几行代码就可在MATLAB中实现。
作为一个跨平台的软件,MATLAB已推出Unix、Windows、Linux和Mac等十多种操作系统下的版本,大大方便了在不同操作系统平台下的研究工作。
MATLAB软件具有很强的开放性和适应性。
在保持内核不变的情况下,MATLAB可以针对不同的应用学科推出相应的工具箱(toolbox),目前己经推出了图象处理工具箱、信号处理工具箱、小波工具箱、神经网络工具箱以及通信工具箱等多个学科的专用工具箱,极大地方便了不同学科的研究工作。
国内已有越来越多的科研和技术人员认识到MATLAB的强大作用,并在不同的领域内使用MATLAB来快速实现科研构想和提高工作效率。
MATLAB提供了20类图像处理函数,涵盖了图像处理的包括近期研究成果在内的几乎所有的技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。
这些函数按其功能可分为:
图像显示;图像文件I/O;图像算术运算;几何变换;图像登记;像素值与统计;图像分析;图像增强;线性滤波;线性二元滤波设计;图像去模糊;图像变换;邻域与块处理;灰度与二值图像的形态学运算;结构元素创建与处理;基于边缘的处理;色彩映射表操作;色彩空间变换;图像类型与类型转换。
1.2MATLAB的功能
(1)强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。
其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。
在通常情况下,可以用它来代替底层编程语言,如C和C++。
在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。
MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快
速傅立叶变换的复杂函数。
函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
(2)出色的图形处理功能
图形处理功能MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。
可用于科学计算和工程绘图。
新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。
同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。
另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
(3)应用广泛的模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。
一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。
目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
(4)实用的程序接口和发布平台
新版本的MATLAB可以利用MATLAB编译器和C/C++数学库以及图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++的代码。
允许用户编写可以和MATLAB进行交互的C或C++语言程序。
另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。
MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。
工具箱是MATLAB函数的子程序库,每
一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
(5)应用软件开发(包括用户界面)
在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5进行连接。
1.3MATLAB的典型应用
MATLAB的应用领域十分广阔,典型的应用举例如下:
(1)数据分析
(2)数值与符号计算;
(3)工程与科学绘图;
(4)控制系统设计;
(5)航天工业;
(6)汽车工业;
(7)生物医学工程;
(8)语音处理;
(9)图像与数字信号处理;
(10)财务、金融分析;
(11)建模、仿真及样机开发;
(12)新算法研究开发;
(13)图形用户界面设计。
2设计题目:
Matlab运算与应用设计10
1.有一组测量数据满足
,t的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线,并加入标题和图列框(用代码形式生成)。
2.
当x和y的取值范围均为-2到2时,用建立子窗口的方法在同一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图。
3.求和
。
4.分析下面每条指令的功能并运行,观察执行结果。
a)X=0:
0.7:
10;
Y=X.*exp(-X);
plot(X,Y),xlabel(‘x’),ylabel(‘y’),title(‘y=x*exp(-x)’);
b)A=zeros(1,10)
A(:
)=-3:
6
L=abs(A)>3
islogical(L)
X=A(L)
(2)A=[3:
7;8:
12]
pow2(A)
(3)A=zeros(2,4)
A(:
)=1:
8
A=A*(1+i)
A1=A.’
B1=A’
(4)A=ones(2,3)
B=ones
(2)
C=eye(4)
D=diag(C)
E=repmat(C,1,3)
5.设
求A的逆、特征值和特征向量;验证Ax=λx。
6.求解线性方程组
的通解。
7.试用matlab求函数
的极值,初值为
。
8.求积分
,并且画出所求的平面区域。
9.用matlab编写一个判断某一年是否为闰年的程序。
10.设x+2y=1,2x+3y=6,y=2x2,画出各个方程图形,求出曲线交点。
3设计内容
3.1题一
1.有一组测量数据满足
,t的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线,并加入标题和图列框(用代码形式生成)。
分析:
先对t进行范围定义,再定义三个曲线的函数,然后进行绘图,并加上标题和图列框。
在MATLAB中常用的三维图形绘制及相关操作如下所示。
(1)二维图形绘制plot函数
格式:
plot(x,y)
功能:
输入两个数组的情况。
绘出以x数组中的元素作为横坐标,y数组中的元素作为纵坐标的曲线。
还可以使用plot(x,[y1,y2,….])的命令格式,以x为向量(即横轴),以y=[y1,y2,…]为数据矩阵,且其中的y1,y2,……为横向量还是列向量都可以得出多条基于相同横轴的曲(折)线。
y的个数即为曲线的条数。
此命令可以在同一张图中绘制多条曲线。
(2)subplot函数
格式:
subplot(m,n,p)
功能:
将图形窗口分成n×m个子图形窗口,并选择第p个窗口作为当前的图形窗口,供绘制函数图形使用。
(3)添加图形标题吗命令title
格式:
title(’string’)
功能:
在当前坐标系的顶部加一个文本串string,作为该图形的标题。
(4)添加坐标轴标志函数xlabel,ylable,zlable
格式:
xlabel(‘text’)或ylable(‘text’)或zlable(‘text’)
功能:
给当前的X轴或Y轴或Z轴标注文本标注
(5)图形标注函数legend
格式:
legend(string1,string2,string3,…)
功能:
在当前图中添加图例
(6)文本注释函数text
格式:
text(X,Y,’string’)
功能:
二维图形(X,Y)位置处标注文本注释’string’
根据这些函数的作用,我们可以选择plot函数。
我们可以直接在Commandwindow命令行输入程序,运行即可,如图:
图3.1-1
程序运行结果如图3.1-2所示
图3.1-2
3.2题二
2.
当x和y的取值范围均为-2到2时,用建立子窗口的方法在同一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图。
分析:
这道题目需要我们在[-2,2]范围内绘制曲线,查书可知使用surf函数可以在Matlab中画出三维图形。
在MATLAB中常用的三维图形绘制及相关操作如下所示。
plot3函数与plot函数用法十分相似,其调用格式为:
plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)
其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。
当x,y,z是同维向量时,则x,y,z对应元素构成一条三维曲线。
当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。
三维曲面
1.产生三维数据
在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。
其格式为:
x=a:
d1:
b;y=c:
d2:
d;
[X,Y]=meshgrid(x,y);
语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
2.绘制三维曲面的函数
surf函数和mesh函数的调用格式为:
mesh(x,y,z,c):
画网格曲面,将数据点在空间中描出,并连成网格。
surf(x,y,z,c):
画完整曲面,将数据点所表示曲面画出。
一般情况下,x,y,z是维数相同的矩阵。
x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。
程序运行代码如图3.2-1所示:
图3.2-1
程序运行结果如图3.2-2所示
图3.2-2
3.3题三
3.求和
。
分析:
这道题需要使用两次循环,此处我选用for循环来解题,for循环的相关操作如下
for语句:
for语句的格式为:
for循环变量=表达式1:
表达式2:
表达式3
循环体语句
end
其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。
步长为1时,表达式2可以省略。
for语句更一般的格式为:
for循环变量=矩阵表达式
循环体语句
end
执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。
程序编写如图3.2-1
图3.2-1
最后,运行出来的结果如图3.2-2
图3.2-2
3.4题四
4.分析下面每条指令的功能并运行,观察执行结果。
(1)X=0:
0.7:
10;
Y=X.*exp(-X);
plot(X,Y),xlabel(‘x’),ylabel(‘y’),title(‘y=x*exp(-x)’);
(2)A=zeros(1,10)
A(:
)=-3:
6
L=abs(A)>3
islogical(L)
X=A(L)
(3)A=[3:
7;8:
12]
pow2(A)
(4)A=zeros(2,4)
A(:
)=1:
8
A=A*(1+i)
A1=A.’
B1=A’
(5)A=ones(2,3)
B=ones
(2)
C=eye(4)
D=diag(C)
E=repmat(C,1,3)
分析:
(1)此题中需要用到绘制二维图形的基本函数polt,常用形式为plot(x,y1,x,y2)。
并用title(‘y=x*exp(-x)’)为他加上图形标题;以及用xlabel(‘x’)为他加上x轴说明;和用ylabel(‘y’)为他加上y轴说明。
执行结果:
如图3-4-1
图3.4-1
(2)
1)分析:
先用函数产生一个1行10列的零矩阵,然后给A从-3到6(步长为1)赋值,并判断其绝对值是否大于3,若是值为1,否则为0。
后面为判断L是否为逻辑数组,若是值为1,否则为0。
X为逻辑数组L对应为1的位置的数据是列向量。
2)执行结果如图3.4-2
图3.4-2
(3)
1)分析:
A=[3:
7;8:
12]创建一个2×5的矩阵,其值大小从3至12依次递增1;pow2(A)
将矩阵A中的每个值都变为2^x,x为矩阵中的每个值。
2)程序运行结果如图3.4-3
图3.4-3
(4)
1)分析:
A=zeros(2,4);A(:
)=1:
8;A=A*(1+i)先创建一个2×4的矩阵,依次赋值1
至8,再将A2*(1+i)的值赋给A;A1=A.将A行列转置后赋给A1;B1=A’将A转置后再取其共轭复数将其赋给B1。
2)程序运行结果如图4.1-5所示。
图3.4-4
(5)
1)A=ones(2,3)产生一个2×3的全1矩阵;B=ones
(2)产生一个二阶的全1方阵;C=eye(4)产生一个四阶的单位矩阵;D=diag(C)取C矩阵主对角线上的元素构成向量D。
E=repmat(C,1,3)将矩阵复制1×3块,构成新的矩阵E。
2)程序的运行结果如图4.1-6所示。
图3.4-5
3.5题五
5.设
求A的逆、特征值和特征向量;验证Ax=λx。
分析:
该题是求已知矩阵的逆矩阵,特征值和特征向量。
我们知道,MATLAB提供了求逆矩阵和特征值,特征向量的函数。
常见的及其作和用法如下所示。
在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有
5种:
(1)E=eig(A):
求矩阵A的全部特征值,构成向量E。
(2)[V,D]=eig(A):
求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成
V的列向量。
(3)[V,D]=eig(A,'nobalance'):
与第2种格式类似,但第2种格式中先对A作相似
变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量。
(4)E=eig(A,B):
由eig(A,B)返回N×N阶方阵A和B的N个广义特征值,构成向量E。
(5)[V,D]=eig(A,B):
由eig(A,B)返回方阵A和B的N个广义特征值,构成N×N阶对角阵D,其对角线上的N个元素即为相应的广义特征值,同时将返回相应的特征向量构成N×N阶满秩矩阵,且满足AV=BVD。
显然,此题我们要用eig函数。
其程序代码及运行结果如图3.5-1所示。
图3.5-1
经过计算,特征值特征向量求得正确。
3.6题六
6.求解线性方程组
的通解。
分析:
从题目我们可以知道这是一个求非线性方程通解的题,首先我们需要用A,B两个矩阵来表示未知数系数矩阵和常数矩阵,然后求出一组特解和通解的系数,再进行处理,组合得到方程组的通解。
常见的两种求方程组通解的方法如下:
方法一:
在命令窗口输入以下命令:
(注意: