MATLAB学习论文和心得体会.docx
《MATLAB学习论文和心得体会.docx》由会员分享,可在线阅读,更多相关《MATLAB学习论文和心得体会.docx(18页珍藏版)》请在冰豆网上搜索。
MATLAB学习论文和心得体会
GuizhouMinzuUniversity
学校代码
10672
编号
《MATLAB》学习论文
论文题目:
学院(系):
专业:
年级:
姓名:
学号:
完成时间:
摘要------------------------------------------------------------------------------------------------3
关键字---------------------------------------------------------------------------------------------3
一、MATLAB发展现状------------------------------------------------------------------------3
1MATLAB简介-------------------------------------------------------------------------------3
1、2MATLAB语言特点及优势-------------------------------------------------------------4
1、2、1语言特点-------------------------------------------------------------------------------4
1、2、2优势--------------------------------------------------------------------------------------5
1、3MATLAB的功能--------------------------------------------------------------------------7
1、3、1二维图形-------------------------------------------------------------------------------8
1、3、2三维图形------------------------------------------------------------------------------14
二、MATLAB发展预期-----------------------------------------------------------------------16
三、学习MATLAB的心得体会------------------------------------------------------------17
四、参考文献-----------------------------------------------------------------------------------18
摘要:
通过本学期《MATLAB》课程的学习,我认识到了其强大的功能,以及对现实的重大指导意义,对于以后我们专业课程的学习乃至工作后专业知识的应用会起到很大的指导和帮助作用。
而现在只是对MATLAB的发展应用有了初步的了解,对其数值计算、符号运算、图形处理等功能及MATLAB在计算方法和建模仿真中的应用有初步学习。
如果要将MATLAB运用到现实生活学习中屈,那么我们还须进一步深层次的学习研究MATLAB的使用,对于现实中存在的问题再敢于提出可行性的方案,尝试去解决我们遇到的问题,学以致用,只有这样才能真正的把我们所学习知识的意义展现出来,把MATLAB科学有效的运用起来。
本文以MATLAB6.5为基础通过简单介绍MATLAB发展,特点优势以及MATLAB的不同功能和其在各种数学物理模型中的应用来论述MATLAB的发展现状,并对MATLAB将来发展进行展望,进一步巩固学习成果,加深对知识的了解。
尤其,本文将着重介绍MATLAB的图形处理功能和Simulink的应用。
最后部分本文将描写作者在本学期课程学习中的心得体会。
关键字:
MATLAB发展现状图形处理功能Simulink
一、MATLAB发展现状
1、1MATLAB简介
Matlab是“MatrixLaboratory”的缩写,意为“矩阵实验室”,是当今美国很流行的科学计算软件.信息技术、计算机技术发展到今天,科学计算在各个领域得到了广泛的应用.在许多诸如控制论、时间序列分析、系统仿真、图像信号处理等方面产生了大量的矩阵及其相应的计算问题.自己去编写大量的繁复的计算程序,不仅会消耗大量的时间和精力,减缓工作进程,而且往往质量不高.美国Mathwork软件公司推出的Matlab软件就是为了给人们提供一个方便的数值计算平台而设计的.
Matlab是一个交互式的系统,它的基本运算单元是不需指定维数的矩阵,按照IEEE的数值计算标准(能正确处理无穷数Inf(Infinity)、无定义数NaN(not-a-number)及其运算)进行计算。
系统提供了大量的矩阵及其它运算函数,可以方便地进行一些很复杂的计算,而且运算效率极高。
Matlab命令和数学中的符号、公式非常接近,可读性强,容易掌握,还可利用它所提供的编程语言进行编程完成特定的工作。
除基本部分外,Matlab还根据各专门领域中的特殊需要提供了许多可选的工具箱,如应用于自动控制领域的ControlSystem工具箱和神经网络中NeuralNetwork工具箱等。
1、2MATLAB语言特点及优势
1、2、1语言特点
MATLAB被称为第四代计算机语言,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。
MATLAB的最突出的特点就是简洁。
MATLAB用更直观的、符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。
MATLAB给用户带来的是最直观、最简洁的程序开发环境。
以下简单介绍一下MATLAB的主要特点。
(1)语言简洁紧凑,使用方便灵活,库函数极其丰富。
MATLAB程序书写形式自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。
由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。
(2)运算符丰富。
由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短,具体运算符见附表。
(3)MATLAB既具有结构化的控制语句(如for循环、while循环、break语句和if语句),又有面向对象编程的特性。
(4)语法限制不严格,程序设计自由度大。
例如,在MATLAB里,用户无需对矩阵预定义就可使用。
(5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。
(6)MATLAB的图形功能强大。
在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。
MATLAB还具有较强的编辑图形界面的能力。
(7)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。
由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。
(8)功能强劲的工具箱是MATLAB的另一重大特色。
MATLAB包含两个部分:
核心部分和各种可选的工具箱。
核心部分中有数百个核心内部函数。
其工具箱又可分为两类:
功能性工具箱和学科性工具箱。
功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及及硬件实时交互功能。
功能性工具箱能用于多种学科。
而学科性工具箱是专业性比较强的,如control、toolbox、signalprocessingtoolbox、communicationtoolbox等。
这些工具箱都是由该领域内的学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。
下表列出了MATLAB的核心部分及其工具箱等产品系列的主要应用领域。
(9)源程序的开放性。
开放性也许是MATLAB最受人们欢迎的特点。
除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。
1、2、2优势
(1)友好的工作平台和编程环境
MATLAB由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。
包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。
而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。
简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
(2)简单易用的程序语言
Matlab一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
用户可以在命令窗口中将输入语句及执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征及C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。
使之更利于非计算机专业的科技人员使用。
而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
(3)强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。
其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。
在通常情况下,可以用它来代替底层编程语言,如C和C++。
在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。
MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。
函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
(4)出色的图形处理功能
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。
可用于科学计算和工程绘图。
新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。
同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。
另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
(5)应用广泛的模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。
一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。
目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP及通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
(6)实用的程序接口和发布平台
新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。
允许用户编写可以和MATLAB进行交互的C或C++语言程序。
另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。
MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。
工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
(7)应用软件开发(包括用户界面)
在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5进行连接。
1、3MATLAB的功能
MATLAB有着强大的功能,可以用来进行多种工作,具体如下:
数值分析、数值和符号计算、工程及科学绘图、控制系统的设计及仿真、数字图像处理技术、数字信号处理技术、通讯系统设计及仿真、财务及金融工程等。
由于MATLAB功能太多,不可能一一介绍,并且每一个功能涉及内容又很多,介绍起来比较繁琐,因此我们只以图形处理功能为例,通过对MATLAB图形处理的介绍来展示它的强大功能,并以点代面,进而进一步体现MATLAB的发展现状。
MATLAB提供了大量用于将矢量数据以曲线图形方式进行显示的函数,包括用于实现图标绘制、科学曲线绘制和各种专业数据可视化显示的二维图形绘制函数;用于表示向量场的数据及二元函数的图形表达的三维图形绘制函数;提供了用于图形效果高级处理的相关函数以及图形句柄操作函数;柱状图、饼图和直方图等特殊图形绘制函数;动画制作等丰富的3D可视化功能。
1、3、1二维图形(Twodimensionalplotting)
1.基本绘图函(Basicplottingfunction):
Plot,semilogx,semilogy,loglog,polar,plotyy
(1).单矢量绘图(singlevectorplotting):
plot(y),矢量y的元素及y元素下标之间在线性坐标下的关系曲线。
例1:
单矢量绘图
y=[00.62.358.311.71517.719.420];
plot(y)
可以在图形中加标注和网格,
例2:
给例1的图形加网格和标注。
y=[00.62.358.311.71517.719.420];
plot(y)
title('简单绘图举例');
xlabel('单元下标');
ylabel('给定的矢量');grid
(2).双矢量绘图(Doublevectorplotting):
如x和y是同样长度的矢量,plot(x,y)命令将绘制y元素对应于x元素的xy曲线图。
例:
双矢量绘图。
x=0:
0.05:
4*pi;
y=sin(x);
plot(x,y)
(3).对数坐标绘图(plotinginlogarithmcoordinate):
x轴对数semilogx,y轴对数semilogy,双对数loglog,
例:
绘制数组y的线性坐标图和三种对数坐标图。
y=[00.62.358.311.71517.719.420];
subplot(2,2,1)
plot(y)
subplot(2,2,2)
semilogx(y)
subplot(2,2,3)
semilogy(y)
subplot(2,2,4)
loglog(y)
(4)极坐标绘图(Plottinginpolarcoordinate):
polar(theta,rho)theta—角度,rho—半径
例:
建立简单的极坐标图形。
t=0:
.01:
2*pi;
polar(t,sin(2*t).*cos(2*t))
多重曲线绘图(Multiplecurveplotting)
(5)一组变量绘图(Agroupvariableplotting)
plot(x,y)
(a)x为矢量,y为矩阵时plot(x,y)用不同的颜色绘制y矩阵中各行或列对应于x的曲线。
例1:
x=0:
pi/50:
2*pi;
y(1,:
)=sin(x);
y(2,:
)=0.6*sin(x);
y(3,:
)=0.3*sin(x);
plot(x,y)
(b)x为矩阵,y为矢量时绘图规则及(a)的类似,只是将x中的每一行或列对应于y进行绘图。
。
例2:
x(1,:
)=0:
pi/50:
2*pi;
x(2,:
)=pi/4:
pi/50:
2*pi+pi/4;
x(3,:
)=pi/2:
pi/50:
2*pi+pi/2;
y=sin(x(1,:
));
plot(x,y)
(c)x和y是同样大小的矩阵时,plot(x,y)绘制y矩阵中各列对应于x各列的图形。
例3:
x(:
1)=[0:
pi/50:
2*pi]';
x(:
2)=[pi/4:
pi/50:
2*pi+pi/4]';
x(:
3)=[pi/2:
pi/50:
2*pi+pi/2]';
y(:
1)=sin(x(:
1));
y(:
2)=0.6*sin(x(:
1));
y(:
3)=0.3*sin(x(:
1));
plot(x,y)
x和y是同样大小的矩阵时,plot(x,y)绘制y矩阵中各列对应于x各列的图形。
这里x和y的尺寸都是101×3,所以画出每条都是101点组成的三条曲线。
如行列转置后就会画出101条曲线,每条线由三点组成。
x(1,:
)=[0:
pi/50:
2*pi];x(2,:
)=[pi/4:
pi/50:
2*pi+pi/4];x(3,:
)=[pi/2:
pi/50:
2*pi+pi/2];
y(1,:
)=sin(x(1,:
));y(2,:
)=0.6*sin(x(1,:
));y(3,:
)=0.3*sin(x(1,:
));
plot(x,y)
(d)如果y是矩阵,则plot(y)绘出y中各列相对于行号的图形,对于n行矩阵,x轴的坐标为[1:
n]。
(6)多组变量绘图(Multiplegroupvariablesplotting):
对于一系列相应的矩阵yi和xi,可以使用多组变量绘图法:
plot(x1,y1,x2,y2,…,xn,yn),
这种方法的优点是允许将不同大小的矩阵或矢量的图形绘制在一张图上。
例:
多组变量绘图。
x=0:
pi/50:
2*pi;
y1=sin(x);
y2=0.6*sin(x);
y3=0.3*sin(x);
plot(x,y1,x,y2,x,y3)
Ø(7)双y轴绘图:
plotyy,
在一个图形窗口绘制两组数据曲线,共用一个x轴,图形两边各有一个y轴。
两条图线可以调用不同的绘图方法。
例1:
x=0:
0.3:
12;
y=exp(-0.3*x).*sin(x)+0.5;
plotyy(x,y,x,y,'plot','stem')
左侧y轴对应plot形式的绘图,右侧y轴对应stem形式的曲线。
(8)图线形式和颜色(Styleandcolorofplot)
图线的形式:
(styleofplot)MATLAB提供的四种线形,
实线虚线--,冒号线:
,点划线--.
标记点类型:
.,+,*,o,×,s(或square),d(或diamond),△,▽,<,>,p(或pentagram),h(或hexagram),
plot(x,y,’—‘),plot(x1,y1,’:
’,x2,y2,’*’)
例1:
选择不同的线形绘图。
t=0:
pi/100:
2*pi;
y=sin(t);
y2=sin(t-0.25);
y3=sin(t-0.5);
plot(t,y,'-',t,y2,'-',t,y3,':
')
线的颜色(colorofplot):
MATLAB中可选的颜色:
红r,绿g,蓝b,黄y,紫红m(mycetin),青c(cyan)黑k.
例:
x=0:
pi/20:
2*pi;
y=sin(x);
plot(x,y,'r'),plot(x,y,'g+')
图线的其他属性(othercharactersofplot):
可设置图线的宽度、标记点的边缘颜色、填充颜色、标记点的大小等。
例:
设置图线的线形、颜色、宽度、标记点的颜色及大小。
t=0:
pi/20:
pi;
y=sin(4*t).*sin(t)/2;
plot(t,y,'-bs','LineWidth',2,'MarkerEdgeColor','k',...
'MarkerFaceColor','y','MarkerSize',10)
(9)复数绘图(Complexplotting)
plot用于函数绘制复数的图形时,通常虚部是被忽略的。
但plot只作用于单个复变量z时,则绘出的是实部对虚部的关系图(复平面上的一组点)。
即这时plot(z)等价于plot(real(z)).
例:
画一个20边的多边形(用exp函数生成),顶角用小圆圈表示。
t=0:
pi/10:
2*pi;
plot(exp(i*t),'o')
axis('square')
如果在复平面绘制多重线,只能分别以实部和虚部为坐标来绘制,否则虚部将被忽略,并给出警告。
1、3、2三维图形
MATLAB语言提供了三维图形的处理功能。
及二维图形相似,绘制三维图形时可以使用MATLAB语言提供的相关函数:
三维线图指令plot3
>>%该程序用于绘制三维的螺旋曲线图
>>t=0:
pi/50:
20*pi;
>>plot3(sin(t),cos(2*t),sin(t)+cos(t))
Ø
(1)三维网线图
使用mesh函数来绘制三维网格图形:
>>z=peaks(50);
>>mesh(z);
Ø
(2)三维曲面图
图3、1、13
可是使用surf函数来绘制三维表面图形:
>>[X,Y]=meshgrid([-4:
0.2:
4]);
>>Z=exp(-0.5*(X.^2-Y.^2));
>>surf(X,Y,Z)
二、MATLAB发展预期
随着科学技术的发展,尤其是计算机啊的快速发展和普及,行行业业都产生了自己的专用软件。
那么,在数学领域,Matlab也将进一步发展和完善。
MATLAB进一步的发展,其用于算法开发、数据可视化、数据分析以及数值计算等方面的功能会进一步提高和完善。
目前MATLAB主要包括MATLAB和Simulink两大部分。
它在数学类科技应用软件中在数值计算方面首屈一指。
由于MATLAB是主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
在未来它将会将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序