MATLAB语言的数值运算.ppt
《MATLAB语言的数值运算.ppt》由会员分享,可在线阅读,更多相关《MATLAB语言的数值运算.ppt(66页珍藏版)》请在三一办公上搜索。
1、2 MATLAB语言的数值运算,MATLAB 程序设计基本原则(1)设置完整的路径,把当前的处理位置设为现在的目录;(2)参数值集中放在程序的开始部分,便于程序维护;(3)若在每行程序的最后输入分号,则执行后结果不会显示在屏幕上;(4)符号“%”后面的内容、是程序的注解,不作为命令运行;(5)程序尽量模块化,也就是采用主程序调用子程序的方法,将所用子程序和并在一起来执行全部的操作;(6)注意变量的定义;(7)留意各种命令的书写格式。,程序的基本组成%说明部分 清除命令(可选)定义变量(局部变量和全局变量)按照顺序行执行的命令语句 控制语句开始 控制语句体 控制语句结束 其他命令(如绘图等),2
2、.1 基本语法结构2.1.1 变量与赋值语句 1、变量 变量命名规则(1)必须以字母开头;(2)可以由字母、数字和下划线混合组成;(3)变量长度应不大于31个;(4)字母区分大小写。,a=3;A=1 2 3;4 5 6 f1=this is a string;2 基本语句结构:变量名列表=表达式 c=a*b2.1.2 数据类型 共有6种数据类型:双精度型(double)、字符型(char)、稀疏型(sparse)、存储型(storage)、细胞型(cell)和结构型(struct),变量的定义 Matlab使用变量前不需专门语句定义变量的数据类型,根据语句执行结果自动指定变量的数据类型。,2.
3、1.3 运算符 Matlab的运算符可分为三类:算术运算符、关系运算符和逻辑运算符。其中算术运算符的优先级最高,其次是关系运算符,最后是逻辑运算符。下面将分别介绍这三类运算符和逻辑函数。1.算术运算符 算术运算符按优先级由低到高分为五级,每一级优先级相同,运算时从左向右进行结合。各优先级包含的运算符为:(1)转置“”、幂“”、复共轭转置“”、矩阵幂“”;,(2)标量“+”、“-”;(3)数组“”、“”、“”,矩阵“”、“”、“”;(4)“+”、“-”;(5)冒号“:”运算符。2.关系运算符 关系运算符对于程序的流程控制非常有用,在MATLAB的循环和条件控制中经常使用。大于=大于等于=等于=不
4、等于,关系运算符将生成一个01矩阵,当运算数相应元素为真时,对应位置上生成1,否则为0.3.逻辑运算符&(与)(或)(非)逻辑运算符也对运算数的相应元素一一运算,最后结果是一个01矩阵。当逻辑表达式的值为真时,赋值1,否则为0。对于数值矩阵,当元素为0时,逻辑上为假;当元素为非0时,逻辑上为真。,2.1.4 常量,常量的表示方法:十进制数字,可以带正负号和小数点,也可采用科学计数法。如:1,2.5,0.0033,2 e-7,pi,2+3 i 等,特殊的常量和变量(1)ans 缺省变量名,以操作中最近应答作为它的值(2)pi 圆周率(3)i 或 j 虚数单位(4)inf 正无穷大(5)nan 不
5、定值(或称非数),MATLAB的永久常数 i或j 基本虚数单位 esp 容差变量,系统floating-point 精度 Inf 表示正无穷大,定义为1/0 NaN 非数值(not a number)它产生于0,0/0,/等运算 pi 圆周率 realmax 系统所能表达的最大数 realmin 系统所能表达的最小数 nargin 函数输入变量的个数 nargout 函数输出变量的个数,2.1.5 程序控制语句 为编写结构化的程序提供了必不可少的条件,可提高程序的效率和可读性1、for循环语句:用来执行循环次数已知的情况调用格式:for x=初值:步长:终值 循环体 end,其中:变量 x 称
6、为循环变量,初值、终值和步长可以是标量,也可以是表达式。当循环语句开始执行时,x 的值被赋为和初值相同的内容,每执行一次循环体的内容,x 的值就会按照步长的大小来改变,如果步长为正数,每执行一次就增加一个步长,否则减小一个步长,一直到变量的值大于或者小于终值,for语句循环结束,继续执行结束语句下面的命令。,eg:下面for语句中的循环体将执行 100 次,计算 1 到 100 的和,a=0;for i=1:100a=a+i;end aa=5050,for循环语句可利用嵌套方式使用,如下例计算 1 到 6 的乘法表,注:当步长省略不写时,系统默认为 1。for循环语句允许嵌套;每一个“for”
7、关键字必须和一个“end 配对,for i=1:6for j=1:iA(i,j)=i*j;endend AA=1 0 0 0 0 0 2 4 0 0 0 0 3 6 9 0 0 0 4 8 12 16 0 0 5 10 15 20 25 0 6 12 18 24 30 36,2、while循环语句:一般用于事先不能确定循环次数的情况时候调用格式:while 表达式 循环体 end 当表达式的值为真时,执行循环体,当循环体执行完毕后,继续判断表达式的值,如果仍为真,继续执行,如此循环,直到表达式的值为假时终止循环 注:利用break语句,可在任何时候终止循环(while循环或者for循环)例:求
8、 10 的阶乘,s=1;n=1;while(n ss=3628800,3、条件选择语句if根据不同逻辑表达式的值来判断程序在执行过程中需要执行那些语句调用格式:if 逻辑表达式 命令语句体 end程序在执行过程中,首先判断逻辑表达式的值,若为真,则执行命令语句体中所有语句,否则,跳过命令语句体,执行结束语句之后的语句if语句可以通过嵌套的方式使用,但不同的 if 语句之间不能互相交叉,调用格式:if 逻辑表达式 1 语句体 1 elseif 逻辑表达式 2 语句体 2 elseif 逻辑表达式 3 语句体 3 else 语句体 end,例 1:,a=100;b=345;if a cc=3.45
9、00,例 2:,X=1 2 3;4 5 6;7 8 9;i=2;j=3;if i=jX(i,j)=0;elseif abs(i-j)=1X(i,j)=-1;else X(i,j)=10;end XX=1 2 3 4 5-1 7 8 9,2.1.6 M 文件 为代替在 MATLAB 提示符下输入的 MATLAB 命令语句,可以把这些命令写入一个文本文件,每当用户输入文件名和它的自变量时,命令语句就由 MATLAB 执行,当文件中最后一个命令被执行后,MATLAB 能再从终端读取命令,这样的文件就叫 M 文件。1、M 文件的类型 两类:命令(Script)文件和函数(function)文件(1)命
10、令文件 主要用途:使命令输入更简单化(没有输入参数也没有输出参数)当用户需要重复输入许多相同的命令时,可将它们放在一个命令文件中,每次只要输入文件名,即可得相同的运行结果。,实质是将用户在 MATLAB 命令窗口中输入的一串命令用另外一个名称来代替。(2)函数文件 主要用途:扩充 MATLAB 的应用范围和满足用户不同的实际应用需求。函数文件可接受输入变量也可返回输出变量。函数文件对变量工作的运算是在其本身的工作空间内进行的,它和 MATLAB 的命令窗口的工作空间是相互独立的。,2、M 文本编辑器 利用 MATLAB 编程语言所写的程序被称作 M 文件后缀均为“.m”。(1)启动编辑器的方法
11、:A.直接在 MATLAB 命令窗口中运行命令编辑 B.单击 MATLAB 命令窗口工具栏上的图标 C.从 MATLAB 命令窗口种选择菜单 file“new M-file。(2)打开已有 M 文件的操作方法:,A.直接在命令窗口运行命令edit filename filename 是待打开的文件名。B.单击 MATLAB 命令窗工具栏上的图标,从弹出对话框中选取需打开的文件。C.单击命令窗口中的“file”“open”子菜单,从弹出对话框中选取需打开的文件,编辑或修改的文件经保存后可单击“debug”项中的“run”进行运行。或者在命令窗中直接输入此 M 文件的名称,就可观察运行结果;如果有
12、错误,会在命令窗口中给出相应的提示,根据出错提示找到错误进行修改。,3、命令文件 最简单的 M 文件,不含输入变量和输出变量,主要用途是使命令输入更简单,调用时 MATLAB 自动执行文件中的全部语句,因此在实现分析问题,解决问题和设计复杂命令等方面十分有用。eg:建立一个命令文件,输出 500 以内的 Fibonacci 数。打开文本编辑器,输入如下命令行,保存文件名为“fibon”,然后再命令窗口中输入命令“fibon”,就能立即看到结果。,fibonf=Columns 1 through 12 1 1 2 3 5 8 13 21 34 55 89 144 Columns 13 throu
13、gh 14 233 377,4、函数文件 可以传递参数,接受输入变量和返回输出变量且对变量的运算是在函数本身的工作空间内进行,和 MATLAB 命令行窗口的工作空间互相独立。函数文件的第一行必须包含关键字“function”。函数名的命名规则和变量名的命名规则一样:必须以字母开头,其余部分可以是字母、数字、下划线。eg:建立一个函数文件,计算序列的平均值。打开编辑器输入如下内容,并保存文件名为 aver.m,function a=aver(x)%AVERAGE mean value%for vectors,AVERAGE is the mean value%for matrix,AVERAGE
14、 is a row vector%Non-vector input results in an errorm,n=size(x);if m=1;m=n;enda=sum(x)/m;,然后在命令窗口中输入变量 x。,x=26:1000;aver(x)ans=513,函数文件的几点说明:(1)文件的第 1 行说明了该函数的名称、输入参数、输出参数。(2)“%”后面的语句用来注释说明,只是为了程序易于理解。(3)文件前面几行由“%”开始的语句构成了 M 文件的帮助信息。(4)变量 m,n 及 y 为局部变量,程序执行完后,变量随之消失。(5)函数体包含所有计算和为输出参数附值的代码。(6)调用函数文
15、件时,传递的参数名称可与函数文件中定义的参数名称不相同。,2.2.1 矩阵变量赋值方法,1、用中括号 将矩阵所有元素括起来;2、同一行的不同元素之间用空格或逗号间隔;3、用分号(;)指定一行结束,也可以分成几行 进行输入,用回车代替分号;4、数据元素可以是表达式,系统将自动计算结果,2.2 矩阵运算,例1:直接 输入 a=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 例2:利用表达式输入 b=1,sqrt(25),9,13;2,6,10,7*2;3+sin(pi/2),6,7,2;4,abs(-8),12,18 例3:修改矩阵各元素的值 a(1,1)=0;a(2
16、,2)=a(1,1)+3*a(1,2);a(4,4)=cos(3*pi/4),2.2.2 矩阵常规运算,加减运算矩阵乘法矩阵除法矩阵的乘方矩阵转置矩阵求逆求特征值求特征多项式求方阵的行列式的值矩阵的迹和秩,(1)加减运算 c=a+b;d=a-b;e=a+3(2)矩阵乘法 c=a*b;d=a*3(3)矩阵除法 矩阵除法分左除“”和右除“/”两种,如果a矩阵为非奇异,则“ab”和“b/a”可实现:ab=inv(a)*b b/a=b*inv(a),例3:设矩阵满足如下关系:a*b-a=2*b 求b b=(a 2*eye(3)a b=inv(a-2*eye(3)*a,(4)矩阵乘方 例:计算:a2 a
17、3 a4(5)矩阵转置 例:x=a(6)矩阵求逆 例:y=inv(a)(7)矩阵特征值 例:lmd=eig(a)(8)矩阵特征多项式 例:v=poly(a)(9)矩阵行列式的值 例:x=det(a),(10)矩阵的非线性运算 例:a=sin(b)x=log(a)y=round(b)(11)矩阵指数函数 exp(a)指数函数 expm(a)矩阵指数函数 例:已知:当T=0.1,0.2,0.3 时,计算,2.2.2 数据统计与分析1.求矩阵最大和最小元素(1)求向量的最大最小元素y=max(X)返回向量X的最大元素存入y。y,I=max(X)返回向量X的最大元素存入y,最大元素的序号存入I。(2)
18、求矩阵的最大和最小元素max(A)返回一个行向量,向量的第i个元素是A矩阵的第i列上的最大元素。Y,U=max(A)返回两个行向量,Y向量记录A的每列的最大元素,U向量记录每列最大元素的行号。max(A,dim)dim取1或2。dim取1时,该函数和max(A)完全相同。dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大元素。,(3)两个向量或矩阵对应元素的比较U=max(A,B)A,B是两个同型的向量或矩阵。结果U是与A,B同型的向量或矩阵,U的每个元素等于A,B对应元素的较大者。U=max(A,n)n是一个标量。结果U是与A同型的向量或矩阵,U的每个元素等于A对应元素
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 语言 数值 运算
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5439325.html