《使用简介.ppt》由会员分享,可在线阅读,更多相关《使用简介.ppt(21页珍藏版)》请在三一文库上搜索。
1、1.5 Matlab 使用简介,1.5.3 简单程序设计,1.5.2 Matlab语言语法要点,1.5.1 Matlab系统的常用概念,1.5 Matlab 使用简介,Matlab是由美国Math Works公司推出的用于数值计算和图形处理的科学计算系统环境。它具有优秀的数值计算能力和卓越的数据可视化能力。Matlab是英文Matrix Laboratory(矩阵实验室)的缩写。它的第1版(DOS版本1.0)发行于1984年。经过MathWork公司不断完善,时至今日,Matlab已经发展成为适合多学科,多种工作平台的功能强劲的大型软件。在国外,Matlab已经经受了多年考验。在欧美等高校,M
2、atlab已经成为信息与计算科学领域中很多高级课程的基本教学工具,成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。,由于本课程的内容是数值计算方法及其理论,Matlab很适合于作为本课程的学习工具。为此,这里对Matlab的有关内容做简要的介绍,以后各章将给出一些具体数值计算方法的Matlab函数文件,以便读者更好地理解和应用本课程所学的内容。关于Matlab的更详细介绍请参阅有关文献。,在命令窗口中,用户可以发出Matlab命令。例如,为了生成一个 阶的矩阵,可以在提示符下,键入如下命令 A = 1 2 3;4 5 6;7 8 9 , 方括号命令表示矩阵,空格或逗号将每行的元素分开,
3、而分号将矩阵的各行数值分开。,等待用户输入命令。所有的Matlab命令、Matlab函数,以及Matlab程序都要在这个窗口下运行。,1.5.1 Matlab系统的常用概念 1. 命令窗口 启动Matlab系统后,会弹出一个窗口,这个窗口称为Matlab的命令窗口。它是用户与Matlab解释器进行通信的工作环境。提示符“”表示Matlab解释器正,Matlab将计算出相应的结果。如果不想在命令窗口中显示计算结果,只要如上所示,在该命令后输入一个分号即可。此时,Matlab系统只完成该命令所要求的计算任务,其计算结果不回显。这项功能在程序设计中是非常必要的。,2. 图形窗口 Matlab系统的强
4、大功能之一是其优秀的图形功能。对于任何作图命令,Matlab将打开另一个窗口来绘制与输出图形,这样的窗口在Matlab系统中被称为图形窗口。,3. 搜索路径 Matlab管理着一条搜索路径,它在搜索路径下寻找与命令相关的函数文件。使,在同一个图形窗口中,可以绘出多个图形,也可以生成多个图形窗口,并选择其中的一个图形窗口,在其中绘制图形。在没有图形窗口存在时,每个绘图函数都被自动生成一个图形窗口,也可以用figure命令生成一个新的图形窗口。,在Matlab环境中调用任何绘图函数绘图时,Matlab将自动生成一个图形输出窗口,并在其中绘出图形。在缺省情况下,图形窗口的标题栏标题为“Figure
5、No:号码”,其中“号码”为图形窗口的序号,也称为图形窗口的句柄值。在标题栏下面是图形窗口的主菜单栏。,用Matlab的path函数,可以查看Matlab系统的当前搜索路径。用户可以用path命令在 Matlab的搜索路径中添加新的搜索路径。例如,下面的命令 path (C:/MYFILES,path); 将搜索顺序改为在搜索完成当前目录之后,先搜索目录C:/MYFILES,再在当前的Matlab搜索路径的目录中搜索。,1.5.2 Matlab语言语法要点 Matlab语言是一种表达式语言,其语句类似于数学式子的格式。与Fortran和C语言相比,Matlab的语法更简单,符号基本相同,下面作
6、一些补充说明。,1. 变量和表达式 在Matlab中有两个基本概念:变量和表达式。变量由变量名表示,函数名作为特殊的变量名看待。变量的类似有数值型、字符型和符号型。表达式则是由运算符、函数调用、变量名以及特殊字符组成的类似于数学表达式的式子。,A = 1 2 3 4 5 6 7 8 9 对于大的矩阵,可以按矩阵的输入方式编辑一个文件。,Matlab能区分组成变量名的大小写字母,这样,变量A和a表示不同的变量,但所有的函数名要求是小写字母。例如矩阵A的逆用 inv (A)表示,而若用 Inv (A) 则会遇到“未定义函数”的警告。用引号表示字符变量的值,如”向量范数“。 在Matlab的矩阵管理
7、方式中,Matlab每执行一条输入的语句,表达式运算求值的结果都是一个矩阵。一般地,运算结果在命令窗口中显示出来。每条语句以回车符结束。,最简单的创建矩阵的方法是在命令窗口显示地输入矩阵的元素序列。具体方法是:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,元素与元素之间用空格或逗号分开,分号将每行的元素分开。例如,前面所述矩阵A的键入命令。也可以用回车键代替分号,按下列方式输入:,Format命令只影响数据输出格式,对Matlab的内部计算和数据存储的数值精度不产生任何影响。,除了在语句的后面有分号的情况下,Matlab将回显任何赋值语句的运算结果。用户可以用format命令设置或改变
8、数据输出格式。例如,若输入 x = 4/3 1.2345e 6 那么,在不同的输出格式下的输出为,format short 1.3333 0.0000 format shorte 1.3333e + 00 1.2345e 06 format long 1.333333333333 0.00000123450000,A/B 方程XA = B 的解 X 。 AB 方程AX = B 的解 X 。 A. * B 矩阵A 和 B的对应元素相乘 。 A. B 等于 A ( i , j ) B ( i ,j ) ,A与B的维数相同或其中之一为数量。 ones ( m , n ) 生成一个元素均为1的 阶矩阵
9、。 zeros ( m , n ) 生成一个 阶零矩阵。 eye ( n ) 生成一个 n 阶单位矩阵。 A = 生成空矩阵A。 J : K 生成向量 j , j + 1 , j + 2, k 。 J : i : K 生成向量 j , j + i , j + 2i , k ,如果j k ,则生成空矩阵,2. Matlab的部分基本运算符,% 解释行的标识符,该标识符后的内容将被称为注释内容,A ( : , j ) 矩阵A 的第j 列。 A ( i , : ) 矩阵A 的第i 行。 A ( j : k ) 向量A ( j ) ,A (j + 1 ) ,A( k )。 A ( : , j : k
10、) 从第j 列到第k 列的矩阵子块。,asin 反正弦函数。 acos 反余弦函数。 atan 反正切函数。 sinh 双曲正弦函数。 cosh 双曲余弦函数。 tanh 双曲正切函数。 sqrt 方根函数。,3. Matlab 的部分常用数学函数,real 复数的实部。 imag 复数的虚部。 round 最邻近整数截断(四舍五入)。 floor 不大于自变量的最大整数。 ceil 不小于自变量的最小整数。 exp 自然指数函数(以e 为底)。 log 自然对数函数(以e 为底)。 bessel Bessel函数。 beta 完全与不完全Beta函数。 gamma 完全与不完全 。 rat
11、有理逼近。 erf 误差函数。,inv( A ) 方阵A 的逆矩阵。 lu( A ) 矩阵A 的列主元LU分解。 det( A ) 求方阵A 的行列式的值。 fmin 单变量函数的极小值。 fmins 多变量函数的极小值(无约束非线性优化)。 fzero 求单变量函数的零点。,plot 二维绘图,是将所给点列的相邻两点之间用直线连接。 plot3 三维空间绘图。 mesh 绘制三维网络曲面,三维消隐图。 surf 绘制三维彩色曲面。 title 题头标注。,4. Matlab 的部分常用绘图命令,xlable x 轴标注。 ylable y 轴标注。 text 任意定义的标注。 gtext 鼠
12、标定位的标注。 grid 设置网格线。 subplot 在指定位置建立坐标。,Matlab的语言结构很简单,可归纳为 Matlab语言结构 = 窗口命令 + M 文件 在命令窗口输入的Matlab语句称为窗口命令,用以调用并执行M文件。M文件在记 事本窗口建立,扩展名为. m。M文件可以有很多个,它们可互相调用,也可自己调,1.5.3 简单程序设计,用自己。注意,M文件要放在Matlab搜索路径下,且文件名不要与Matlab的内置函数重名。在功能上M文件分两种类型:,1. 文本文件 文本文件包含一系列Matlab命令,当命令窗口调用它时,自动执行这些命令。文本文件的语句在工作空间中对全局变量进
13、行运算。在文件运行过程中产生的所有变量都等价于直接从Matlab工作空间中建立,因而其他的文本文件和函数都可以访问这些变量。,2. 函数文件 函数文件的第1行是以function开头的语句(文本文件没有这一行),其中至少有一个输入或输出参数,然后是一系列Matlab语句。函数文件中定义的变量都是局部变量,它们只在本函数内有效。函数文件实际上定义的是一个Matlab的子函数,其作用与其他高级语言的子函数基本相同。 与其他计算机高级语言相似,Matlab语言也提供了用于控制程序执行顺序的循环 语句,条件转移语句,它们使得我们可以简单地实现复杂的操作和运算。凡学习过其他高级语言的人都觉得Matlab
14、的语言结构容易理解和掌握。,下面给出几个简单程序,说明编程的基本方法,1. 程序简化的例子 设 是一个列向量。要创建一个Vandermonde矩阵,其各列元素是 的各次幂,即,那么,有下面的循环语句: n = length ( t ) ;,for j = 1 :n for i = 1 :n A ( i , j ) = t ( i ) ( n j ); end end,A ( :,n ) = ones (n ,1 ) ; for j = n 1 :-1 :1 A( :,j ) = t . * A(:,j + 1 ); end 其中,ones(n ,1)的作用是生成一个n 行1 列的元素全为1 的
15、向量。,如果使用Matlab提供的矩阵向量运算功能,则可将上述程序简化如下:,2. 用窗口命令调用函数文件的例子,下面是以squsum. m 为函数文件名的求矩阵元素平方和的函数文件: function y = squsum ( x ) m ,n = siza ( x ); y = 0; for i = 1:m for j = 1:n y = y + x ( i,j ) * x ( i,j ); end end,引用函数的名称并代入相应的变量,即可在命令窗口调用M函数文件。上述程序,的调用方式如下。由 A = 1,2,3,4,5 ; Asum = squsum ( A ) 可得Asum = 5
16、5。由 B = 1,1,1;6,6,6;8,8,8 ; Bsum = squsum(B) 可得Bsum = 303。,3. 用文本文件调用函数文件的例子,然后在命令窗口输入命令fig, 即可绘出函数的图形。这里,第一个函数的图形以实线绘出,第二个函数的图形以点划线给出。,function y = fun1(x) y = 10. /( 1+x. 2 ) ; 以及以fun2. m为函数文件名的函数文件 function y = fun2 ( x ) y = 5 + 4 * sin ( x ) ;,再建立一个以fig. m 为名的文本文件 x = -5 : 0.1: 5 y = fun1 ( x )
17、; z = fun2 ( x ); plot ( x , y , x , z , - . );,虽然Matlab有丰富的函数库,并且在日益扩大,但毕竟是有限的,不可能覆盖各种数值计算方法。因此,用户总要针对具体问题编制部分或全部程序。结合本书的内容,将在以后各章若干Matlab函数文件,作为算法描述和方法应用的补充。,由上述例子可见,程序的一般结构和调用过程是 窗口命令文本文件函数文件,,其中后两个可以缺省。在通常情况下,一个作业只需要一个文本文件,其主要功能是 组织函数文件,完成复杂的计算任务。当有文本文件时,只要在命令窗口输入文本文件的名称,就可以自动完成规定的全部任务。当没有文本文件但一个主函数文件时,只要命令窗口输入初始数据和该文件的函数语句,就可以自动完成规定的任务。一个作业可能需要很多函数文件,它们是作业的核心内容。函数文件也就是用户文件,可以把它们看成是库函数,供任何作业调用。,
链接地址:https://www.31doc.com/p-2635955.html