资源预览内容
第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
第9页 / 共48页
第10页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
MATLAB数值计算MATLAB的数学计算数值计算符号计算其中符号计算是指使用未定义的符号变量进行运算,而数值计算不允许使用未定义的变量。2.1 变量和数据2.1.1数据类型数据类型包括:数值型、字符串型、元胞型、结构型等数值型双精度型、单精度型和整数类整数类无符号类(uint8、uint16、uint32、uint64)和符号类整数(int8、int16、int32、int64)。2.1.2数据1. 数据的表达方式 可以用带小数点的形式直接表示 用科学计数法 数值的表示范围是10-30910309。以下都是合法的数据表示:-2、5.67、2.56e-56(表示2.5610-56)、4.68e204(表示4.6810204)2. 矩阵和数组的概念在MATLAB的运算中,经常要使用标量、向量、矩阵和数组,这几个名称的定义如下: 标量:是指11的矩阵,即为只含一个数的矩阵。 向量:是指1n或n1的矩阵,即只有一行或者一列的矩阵。 矩阵:是一个矩形的数组,即二维数组,其中向量和标量都是矩阵的特例,00矩阵为空矩阵()。 数组:是指n维的数组,为矩阵的延伸,其中矩阵和向量都是数组的特例。3. 复数 复数由实部和虚部组成,MATLAB用特殊变量“i”和“j”表示虚数的单位。复数运算不需要特殊处理,可以直接进行。复数可以有几种表示:z=a+b*i或z=a+b*jz=a+bi或z=a+bj(当b为标量时)z=r*exp(i*theta)l 得出一个复数的实部、虚部、幅值和相角。a=real(z) %计算实部b=imag(z) %计算虚部r=abs(z) %计算幅值theta=angle(z) %计算相角说明:复数z的实部a=r*cos();复数z的虚部b=r*sin();复数z的幅值;复数z的相角theta=arctg(b/a),以弧度为单位。 a=1-2*i a = 1.0000 - 2.0000i real(a) ans = 1 imag(a) ans = -2 abs(a) ans = 2.2361 angle(a)*180/pi %以角度为单位计算相角ans = -63.4349 2.1.3变量1. 变量的命名规则 变量名区分字母的大小写。例如,“a”和“A”是不同的变量。 变量名不能超过63个字符,第63个字符后的字符被忽略,对于MATLAB6.5版以前的变量名不能超过31个字符。 变量名必须以字母开头,变量名的组成可以是任意字母、数字或者下划线,但不能含有空格和标点符号(如,。%等)。例如,“6ABC”、“AB%C”都是不合法的变量名。 关键字(如if、while等)不能作为变量名。2. 特殊变量MATLAB有一些自己的特殊变量,当MATLAB启动时驻留在内存。表2.1 特殊变量表特殊变量取值ans运算结果的默认变量名pi圆周率eps计算机的最小数flops浮点运算数inf无穷大,如1/0NaN或nan非数,如0/0、/、0i或 ji=j=nargin函数的输入变量数目nargout函数的输出变量数目realmin最小的可用正实数realmax最大的可用正实数l 在MATLAB中系统将计算的结果自动赋给名为“ans”的变量。 2*pi ans = 6.2832 2.2 矩阵和数组MATLAB最基本也是最重要的功能就是进行实数或复数矩阵的运算。2.2.1矩阵输入(1) 矩阵元素应用方括号()括住;(2) 每行内的元素间用逗号或空格隔开;(3) 行与行之间用分号或回车键隔开;(4) 元素可以是数值或表达式。1. 通过显式元素列表输入矩阵 c=1 2;3 4;5 3*2 % 表示构成矩阵,分号分隔行,空格分隔元素c = 1 2 3 4 5 6 用回车键代替分号分隔行: c=1 23 45 6 1 2 3 4 5 6 2. 通过语句生成矩阵(1) 使用from:step:to方式生成向量from:tofrom:step:to说明:from、step和to分别表示开始值、步长和结束值。当step省略时则默认为step=1;当step省略或step0而fromto时为空矩阵,当step0而fromto时也为空矩阵。【例2.1】使用“from:step:to”方式生成以下矩阵。 x1=2:5 x1 = 2 3 4 5 x2=2:0.5:4 x2 = 2.0000 2.5000 3.0000 3.5000 4.0000 x3=5:-1:2 x3 = 5 4 3 2 x4=2:-1:3%空矩阵 x4 = Empty matrix: 1-by-0 x5=2:-1:0.5 x5 = 2 1 x6=1:2:5;1:3:7%两行向量构成矩阵 x6 = 1 3 5 1 4 7 (2) 使用linspace和logspace函数生成向量linspace(a,b,n)说明:a、b、n三个参数分别表示开始值、结束值和元素个数。生成从a到b之间线性分布的n个元素的行向量,n如果省略则默认值为100。 logspace用来生成对数等分向量,它和linspace一样直接给出元素的个数而得出各个元素的值。logspace (a,b,n)说明:a、b、n三个参数分别表示开始值、结束值和数据个数,n如果省略则默认值为50。生成从10a到10b之间按对数等分的n个元素的行向量。【例2.2】用linspace和logspace函数生成行向量。 x1=linspace(0,2*pi,5) %从0到2*pi等分成5个点x1 = 0 1.5708 3.1416 4.7124 6.2832 x2=logspace(0,2,3) %从1到100对数等分成3个点x2 = 1 10 100 3. 由矩阵生成函数产生特殊矩阵MATLAB提供了很多能够产生特殊矩阵的函数,各函数的功能如表2.2所示。表2.2 矩阵生成函数函数名功能例子输入结果zeros(m,n)产生mn的全0矩阵zeros(2,3) ans = 0 0 0 0 0 0 ones(m,n)产生mn的全1矩阵ones(2,3) ans = 1 1 1 1 1 1 rand(m,n)产生均匀分布的随机矩阵,元素取值范围0.01.0。rand(2,3) ans = 0.9501 0.6068 0.8913 0.2311 0.4860 0.7621 randn(m,n)产生正态分布的随机矩阵randn(2,3) ans = -0.4326 0.1253 -1.1465 -1.6656 0.2877 1.1909 magic(N)产生N阶魔方矩阵(矩阵的行、列和对角线上元素的和相等)magic(3) ans = 8 1 6 3 5 7 4 9 2 eye(m,n)产生mn的单位矩阵eye(3) ans = 1 0 0 0 1 0 0 0 1 注意:zeros、ones、rand、randn和eye函数当只有一个参数n时,则为nn的方阵;当eye(m,n)函数的m和n参数不相等时则单位矩阵会出现全0行或列。【例2.3】查看eye函数的功能。 X1=eye(2,3) X1 = 1 0 0 0 1 0 X2=eye(3,2) X2 = 1 0 0 1 0 0 4. 通过MAT数据文件加载矩阵通过“load”命令或选择菜单“File”“Import Data”命令加载MAT数据文件来创建矩阵。5. 在M文件中创建矩阵M文件实际上是一种包含MATLAB代码的文本文件;通过在MATLAB命令窗口中运行M文件创建矩阵。2.2.2矩阵元素和操作矩阵和多维数组都是由多个元素组成的,每个元素通过下标来标识。1. 矩阵的下标(1) 全下标方式矩阵中的元素可以用全下标方式标识,即由行下标和列下标表示,一个mn的a矩阵的第i行第j列的元素表示为a(i,j)。注意:l 如果在提取矩阵元素值时,矩阵元素的下标行或列(i,j)大于矩阵的大小(m,n),则MATLAB会提示出错;l 而在给矩阵元素赋值时,如果行或列(i,j)超出矩阵的大小(m,n),则MATLAB自动扩充矩阵,扩充部分以0填充。 a=1 2;3 4;5 6 a = 1 2 3 4 5 6 a(3,3) %提取a(3,3)的值 ? Index exceeds matrix dimensions. a(3,3)=9 %给a(3,3) 赋值 a = 1 2 0 3 4 0 5 6 9 (2) 单下标方式先把矩阵的所有列按先左后右的次序连接成“一维长列”,然后对元素位置进行编号。 以mn的矩阵a为例,若元素a(i,j)则对应的“单下标”为s= (i-1)mj。2. 子矩阵块的产生子矩阵是从对应矩阵中取出一部分元素构成,用全下标和单下标方式取子矩阵。(1) 用全下标方式矩阵a为图2.2所示,则: 取行数为1、3,列数为2、3的元素构成子矩阵。a(1 3,2 3) ans = 2 0 6 9 取行数为13,列数为23的元素构成子矩阵,“1:3”表示1、2、3行下标。a(1:3,2:3) ans = 2 0
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号