Matlab的使用matlab_第1页
Matlab的使用matlab_第2页
Matlab的使用matlab_第3页
Matlab的使用matlab_第4页
Matlab的使用matlab_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

1、matlab的使用的使用l matlab的历史回顾的历史回顾一、一、matlab 简介简介 matlab全称全称matrix laboratory, 该语言是美国该语言是美国new mexico大学计算机系主任大学计算机系主任cleve moler在在79年代后年代后期首先设计的期首先设计的. 并于并于80年代初开发了第二代专业版年代初开发了第二代专业版. 1984年年, cleve moler和和john litter成立了成立了math works公司公司, 并开始把并开始把matlab推向市场推向市场. math works公司在公司在90年代陆续推出了年代陆续推出了matlab4.x和

2、和5.x版版. 尤其是尤其是5.x版版, 在帮助信息上采用了超文本格式和在帮助信息上采用了超文本格式和pdf格式格式. 时至今日时至今日, matlab以达到了以达到了7.0版版. 可以说可以说, matlab已经发展成为适合多学科已经发展成为适合多学科, 多种工作平多种工作平台的功能强大的大型软件台的功能强大的大型软件. l matlab的语言特点的语言特点 语言简洁紧凑语言简洁紧凑, 使用方便灵活使用方便灵活, 库函数丰富库函数丰富. 用用c, fortran语言编写一个程序去解决一个实际问题语言编写一个程序去解决一个实际问题, 少则几十行少则几十行, 多则几百行多则几百行. 要调试这样的

3、程序有时是相当要调试这样的程序有时是相当困难的困难的. 而而 matlab提供了相当多的库函数和工具来解决提供了相当多的库函数和工具来解决此类问题此类问题. 我们以下面的问题为例我们以下面的问题为例: 设设321345671237985122,432354653983471354ab 求解矩阵方程求解矩阵方程.axb 在在matlab的的command窗口中窗口中, 先建立矩阵和列向量先建立矩阵和列向量, 然后执行命令然后执行命令 即得问题的解即得问题的解 ,xa b0.18090.51820.53330.1862.tx 运算丰富运算丰富 在在matlab中中, 软件提供了几乎和软件提供了几乎

4、和c语言一样多的运算语言一样多的运算符符, 灵活使用灵活使用matlab的运算符将使得程序极为简单的运算符将使得程序极为简单. 结构化的编程方法结构化的编程方法 如同其它编程语言如同其它编程语言, matlab既提供了具有结构化的控既提供了具有结构化的控制语句(如制语句(如for while if break 等)等),又具有面向对象编又具有面向对象编程的特性程的特性. 图形功能强大图形功能强大 matlab提供了功能强大的绘图功能提供了功能强大的绘图功能, 利用此功能利用此功能, 使得使得数据的可视化更为数据的可视化更为简单简单. 在下面的问题中在下面的问题中, 我们针对人口我们针对人口增长

5、模型增长模型, 采用指数二次曲线拟合采用指数二次曲线拟合, 观察实际数据与计算观察实际数据与计算曲线的接近程度曲线的接近程度, 从而检验模型的实际意义从而检验模型的实际意义. 在上图中可以看到在上图中可以看到, 指数的二次曲线拟合与实际数据指数的二次曲线拟合与实际数据拟合得是相当好的拟合得是相当好的. 不足之处不足之处 与其它高级语言相比与其它高级语言相比, matlab的一个显著缺点是运行的一个显著缺点是运行的速度较慢的速度较慢, 其原因是其原因是matlab并不产生编译程序和可执并不产生编译程序和可执行文件行文件,而是边解释边运行而是边解释边运行, 因而速度较低因而速度较低.二、二、mat

6、lab的基本计算的基本计算 1.矩阵计算矩阵计算 在在matlab下下, 矩阵的运算极为简便矩阵的运算极为简便. 定义矩阵定义矩阵 矩阵的运算矩阵的运算 求解矩阵方程求解矩阵方程 由于矩阵乘法的不可换性由于矩阵乘法的不可换性, 故求解矩阵方程时要注意故求解矩阵方程时要注意和右乘的差别和右乘的差别, 因而求解矩阵方程的命令也是不相同的因而求解矩阵方程的命令也是不相同的.对矩阵方程对矩阵方程 求解命令为求解命令为 而对矩阵方而对矩阵方程程 则求解命令为则求解命令为,axb .xa b,xab/ .xa b 求特征和特征向量求特征和特征向量 求解矩阵特征值的命令为求解矩阵特征值的命令为( ).dei

7、g a 例如对前面的矩阵例如对前面的矩阵, 命令命令 则可得到特征值则可得到特征值向量向量( )deig a193.447556.690548.19191.9461.t 2.函数的定义与函数值的计算函数的定义与函数值的计算 与其它编程语言不同的是与其它编程语言不同的是, matlab中对用户自定义的中对用户自定义的函数必须存放在特定的文件中函数必须存放在特定的文件中m文件中文件中, 使用十调使用十调用该函数用该函数. 在程序文件中使用的函数也必须加以调用在程序文件中使用的函数也必须加以调用. 例如自定义函数例如自定义函数 及计算函及计算函数值数值 先建立函数文件先建立函数文件 再在再在comm

8、and窗口中窗口中执行命令执行命令 要作出函数在区间要作出函数在区间 中的图形中的图形, 可可执行命令执行命令 2132,yfxxx 13 .f1. ,f m 13 .f6,66:1/100:6;1( );( , , ).tyftplot t y r 同样可以执行命令同样可以执行命令( 1, 6,6).fplotf 3.多项式的定义及计算多项式的定义及计算 多项式的定义命令为多项式的定义命令为 对应的对应的次多项式为次多项式为012 .npa a aan 12012.nnnnnpxa xa xa xa在前例中在前例中, 对函数对函数 可定义多项可定义多项式为式为 求多项式的值的命令为求多项式的

9、值的命令为 2132,yfxxx1 3 2.p ( , ).polyval p x 多项式求根命令多项式求根命令.roots 在上例中在上例中, 求多项式的根求多项式的根: 得根为得根为( ),rroots p3.5616, 0.5616.表表1 基本函数及功能表基本函数及功能表函数名函数名功功 能能max求向量或矩阵列的最大值求向量或矩阵列的最大值min求向量或矩阵列的最小值求向量或矩阵列的最小值mean求向量或矩阵列的平均值求向量或矩阵列的平均值median求向量或矩阵列的中间值求向量或矩阵列的中间值std求标准差求标准差sum 求和求和cov 求协方差求协方差函数名函数名功功 能能cum

10、prod 累计积累计积cumtrapz 累计数值积分累计数值积分gradient 求数值偏导数求数值偏导数 4.曲线拟合曲线拟合 曲线拟合是数据分析中的一项重要内容曲线拟合是数据分析中的一项重要内容. 下面的例子下面的例子说明对已知的数据如何使用曲线拟合的方法说明对已知的数据如何使用曲线拟合的方法.例例 使用使用3次多项式来拟合次多项式来拟合5个数据点个数据点 1,5.5 , 2,43.1 , 3,128 , 4,290.75,498.4 .在在matlab下分别执行命令下分别执行命令, 并得到曲线并得到曲线例例 已知某城市已知某城市20年的人口数据为年的人口数据为19791980198119

11、821989.612.91984198519861987198838.650.2表表2 人口数据表人口数据表 但是对于一些较为复杂的问题但是对于一些较为复杂的问题, 直接计算可能会造成直接计算可能会造成数据上较大的误差数据上较大的误差, 故要对数据进行预处理故要对数据进行预处理, 下面的例下面的例子说明了对该类问题的解决方法子说明了对该类问题的解决方法.1989199019911992199362.976.092.0105.7122.819941995199619971998131.7150.7179.0205.0226.0在在matlab下分别执行

12、命令下分别执行命令, 并得到曲线并得到曲线一次和二次多项式的曲线拟合一次和二次多项式的曲线拟合一次一次, 二次和四多项式的曲线拟合二次和四多项式的曲线拟合 5.双重函数双重函数 双重函数是双重函数是matlab的一个特征的一个特征, 主要应用于求函数的主要应用于求函数的极值极值, 函数的极限函数的极限, 数值积分等数值积分等.类别类别函数名函数名功功 能能求极值和根求极值和根 fminbnd求单变量函数的极小值求单变量函数的极小值fmins求多变量函数的极小值求多变量函数的极小值fzero求单变量函数的根求单变量函数的根数值积分数值积分quadl低阶数值积分低阶数值积分quads高阶数值积分高

13、阶数值积分dblquad双重数值积分双重数值积分绘制曲线绘制曲线 ezplot绘制字符串形式的函数绘制字符串形式的函数fplot 绘制函数曲线绘制函数曲线 求函数的极值求函数的极值 格式格式12fmin(fun,options).x x 其中的其中的 应是一个应是一个matlab的内部库函数或者用户的内部库函数或者用户自己定义的函数自己定义的函数.fun例例 求函数求函数 在区间在区间 中的最小值和最大值中的最小值和最大值, 则需要经过下面的过程则需要经过下面的过程: 32392f xxxx2,41.建立一个建立一个m文件文件, 在文件中定义函数在文件中定义函数 32392,f xxxx2.使

14、用命令使用命令fminbnd, 求出函数的极值点求出函数的极值点;3.求出函数值求出函数值. 求定积分求定积分 求所给函数的定积分的命令为求所给函数的定积分的命令为quad1.例例 求函数求函数 在区间在区间 中中的定积分的定积分. 32392f xxxx1,3 在在matlab下执行命令下执行命令 得积分值得积分值quadl(f2,1,3).38. 二重积分的相应命令为二重积分的相应命令为 dblquad.例例 求函数求函数 在区域在区域 上上的二重积分的二重积分.sincosyxxy ,20,dblquad(integrnd, pi, 2*pi, 0, pi), 首先建立函数文件首先建立函

15、数文件 该文件定义了二元该文件定义了二元函数函数 再执行命令再执行命令integrnd.msincos ,yxxy得积分值得积分值9.8696.平行地平行地: 三重积分的命令为三重积分的命令为triplequad.三、绘制图形三、绘制图形 1.plot plot命令是对给出的二维点集描绘相应的曲线命令是对给出的二维点集描绘相应的曲线. 或用点或用点来表示来表示.基本格式基本格式 plot(a,b,options).其中其中 为两个同维数的向量为两个同维数的向量, 可选参数主要有可选参数主要有a,b linespec 指定所描绘曲线的外部特征指定所描绘曲线的外部特征: 线型线型; 颜色颜色sin

16、,sin 2tt线宽等线宽等.例例 在同一个区域中分别画出函数在同一个区域中分别画出函数sin ,sin,2tt 的图形的图形. 2.fplot 基本格式基本格式fplot(function,limits,linespec). 例例 在同一坐标系统做出函数在同一坐标系统做出函数2sin,200 xyxyx的图形的图形. 建立函数文件建立函数文件 并在命令窗口执行命令并在命令窗口执行命令myfun,fplot(myfun,-20 20)即得到曲线的图形即得到曲线的图形.四、四、matlab的编程的编程 matlab的程序文件分为两类的程序文件分为两类: 函数文件与命令执行文函数文件与命令执行文件

17、件, 这两类文件的扩展名均为这两类文件的扩展名均为.m. 在函数文件中在函数文件中, 定义了定义了用户所需要的函数用户所需要的函数, 当某些程序使用该函数时即可调用当某些程序使用该函数时即可调用该函数该函数. 另一类是程序执行文件另一类是程序执行文件, 在该类文件中赋予了一在该类文件中赋予了一些命令些命令, 通过对这些命令的执行通过对这些命令的执行, 用户能完成某些计算用户能完成某些计算. 1.函数文件函数文件 函数文件的基本格式是函数文件的基本格式是function fname( )expr.yxy例例 定义函数定义函数 32423.yfxxx操作操作 在在matlab命令窗口中单击新建文件

18、图标命令窗口中单击新建文件图标, 并输入并输入下面语句下面语句function 4( )32*3yfxyxx输入完毕后输入完毕后, 以文件名以文件名 存盘存盘. 默认扩展名为默认扩展名为 使使用时直接调用该文件名即可用时直接调用该文件名即可. 例如在命令窗口中输入例如在命令窗口中输入 即得到相应的函数值即得到相应的函数值9. 输入命令输入命令4f.m 4 2 ,froots(4)f可得到函数的零点可得到函数的零点-0.5098fplot(f4,-4 5)执行命令执行命令可得到函数的图形可得到函数的图形. 多元函数的定义多元函数的定义例例 定义函数定义函数22.zxy操作操作 在文件编辑窗口中输

19、入在文件编辑窗口中输入function ztwo_varf( )(1);(2);z 2 2vxvyvxy执行命令执行命令 2 3;two_varf vv 输出结果输出结果13. 2.程序文件的建立与运行程序文件的建立与运行 由于高版本的由于高版本的matlab是用是用c语言编写的语言编写的, 因而其语言因而其语言风格类似于风格类似于c语言的风格语言的风格, 但比但比c语言更为宽松语言更为宽松. 例如为例如为求数求数1到到50的和的和, 可以通过下面的程序来完成可以通过下面的程序来完成:sum1=0;k=1;while k=100 sum1=sum1+k; k=k+1;endsum1k输入完成后

20、以文件名输入完成后以文件名 存盘存盘. 若要运行此程序若要运行此程序, 只只需在命令窗口中输入需在命令窗口中输入 即可即可, 运行结束后在命令窗运行结束后在命令窗sum1sum1口中显示相应的输出结果口中显示相应的输出结果:k=101,sum1=5050. 循环控制循环控制 循环控制是任何一种程序设计中的一个重要组成部分循环控制是任何一种程序设计中的一个重要组成部分. 在在matlab中的循环控制语句有中的循环控制语句有for,if,while. for 的基本格式是的基本格式是forfor n1 n2 n3 命令语句命令语句end表达式中的表达式中的 为循环的初始值为循环的初始值, 为步长为

21、步长, 为循环的终为循环的终值值. 如只有两个值如只有两个值, 则取步长为则取步长为1. 看下面的一段程序看下面的一段程序n1n2n3for n=1:5 for m=1:n r(n,m)=n*m; endendr计算结果输出了一个计算结果输出了一个5阶方阵阶方阵:r =1 0 0 0 0 2 4 0 0 0 3 6 9 0 0 4 8 12 16 0 5 10 15 20 25 while 一般用于不能确定循环次数的情况一般用于不能确定循环次数的情况.while例例 求积不超过求积不超过100000的阶乘的阶乘.n1;while prod(1:n)100000 nn+1; aprod(1:n)

22、;程序如下程序如下:endaa/n,nn-1运行结果运行结果n8,n!40320. 逻辑表达式逻辑表达式2 逻辑表达式逻辑表达式1 if 基本格式基本格式 if 语句体语句体1elseif 语句体语句体2 else 语句体语句体end例例 看下面一段程序看下面一段程序clearfor k=1:6for m = 1:k for n = 1:k if m = n a(m,n) = 2; elseif abs(m-n) = 2 a(m,n) = 1; else a(m,n) = 0; end endendaend想象一下想象一下, 程序运行的结果如何程序运行的结果如何?该程序产生了该程序产生了6个方

23、阵个方阵, 5阶的和阶的和6阶的分别为阶的分别为2 0 1 0 0 0 2 0 1 0 1 0 2 0 1 0 1 0 2 0 0 0 1 0 22 0 1 0 0 00 2 0 1 0 01 0 2 0 1 00 1 0 2 0 10 0 1 0 2 00 0 0 1 0 2 switch 如果在一段程序中有多个判定条件如果在一段程序中有多个判定条件, 则使用则使用比比 要简单得多要简单得多.switchif 在在 中中, 可以使用可以使用 来中断循环来中断循环. 请看下请看下面的求根程序面的求根程序.if whichbreaka0;b3;k1while k100 c(a+b)/2+eps*

24、b; fcc3+2*c-3; faa3+2*a-3; if fc0 break elseif sign(fc)sign(fa) ac; else bc; end kk+1;endk,c,fc五、在微积分中的应用五、在微积分中的应用 1.求极限求极限 基本格式基本格式0limit(f, ,).x x 由于由于matlab偏重于数值计算偏重于数值计算, 而求极限是一个符号运而求极限是一个符号运算的过程算的过程, 因此在此之前要赋予命令因此在此之前要赋予命令syms.例例 求极限求极限0sinlim.xxx 在命令窗口执行命令在命令窗口执行命令syms limit(sin( )/ , ,0)xxx x输出结果为输出结果为1.例例 求极限求极限0sinsinlim.hxhxh 执行命令执行命令syms h;limit(sin( +h)-sin( )/h,h,0)xxx从而得到极限从而得到极限0sinlimcos .xxxx 2.求导数求导数 基本格式基本格式 diff ( f ).例例 求函数求函数 的导数的导数.sinyax 执行命令执行命令: syms a x f = sin(a*x)diff(f)输出

温馨提示

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

评论

0/150

提交评论