第二章矩阵运算的基础

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第二章矩阵运算的基础MATLAB提供了一种计算机高级编程语言——M语言MATLAB提供了不同类型的数据MATLAB专门以矩阵作为基本的运算单位MATLAB提供了关于数组和矩阵不同的运算方法一.概述在M语言中最常用的数据类型表现手段和形式就是变量和常量M语言的基本处理单位是数值矩阵或者数值向量回顾有关概念变量和常量数组向量矩阵变量和常量变量:程序运行过程中需要改变数值的量每一个变量都具有一个名字变量在内存中占据一定的空间变量必须以字母开头,后面可以是字母、数字或者下划线的组合MATLAB仅识别前面N个字符,在不同的操作系统下可以识别的字符个数不同常量:在程序运行的过程中不需要改变数值的量常量具有名字在M语言中不存在常量的定义,只在MATLAB中提供一些常用的常数作为常量数组是有序数据的集合数组的每一个成员(元素)都属于同一种数据类型,它们使用同一个数组名称和不同的下标来唯一确定数组中的成员(元素)。在MATLAB中元胞数组比较特殊,数组中的元素可以是不同的数据类型。向量从编程语言的角度上看,向量其实就是一维数组从数学的角度上看,向量就是1×N或者N×1的矩阵,即行向量或列向量b1,1b2,1B=b3,1和B=[b1,1b1,2b1,3······b1,n]∶∶bn,1矩阵是用一对圆括号或方括号括起来,符合一定规则的数学对象b11b12b13B=b21b22b23b31b32b33对于编程语言,矩阵就是二维的数组二.矩阵和向量创建1.向量的创建(1)在命令窗口逐个输入元素X=[13pi3+5i](2)利用冒号运算符创建向量X=J:INC:KJ为向量的第一个元素,K为向量的最后一个元素,INC为向量元素递增的步长J、INC、K之间必须用“:”间隔若忽略INC,则默认的递增步长为1INC可以为正数,也可以为负数X=1:10X=1:0.01:1.1(3)定数线性采样法:在设定的“总点数”下,均匀采样生成向量(一维“行”数组)使用函数linspace和logspacelinspace是用来创建线性间隔向量的函数linspace的基本语法X=linespace(X1,X2,n)X1为向量的第一个元素,X2为向量的最后一个元素,n为向量具有的元素个数,函数将根据n的数值平均计算元素之间的间隔,间隔计算公式为若在表达式中忽略参数n,则系统默认地将向量设置为100个元素112nXX使用linspace函数创建向量X=linspace(1,2,5)X=1.00001.25001.50001.75002.0000logspace是用来创建对数空间的向量logspace的基本语法X=logspace(X1,X2,n)该函数创建的向量第一个元素值为10X1,而最后一个元素的数值为10X2,n为向量的元素个数,元素彼此之间的间隔按照对数空间的间隔设置若在表达式中忽略参数n,则系统默认地将向量设置为50个元素例使用logspace函数创建向量X=logspace(1,3,3)X=101001000创建列向量使用分号作为元素与元素之间的间隔使用转置运算符“'”例2-6:A=[1;2;3;4;5;6]或A=(1:6)'2.创建矩阵矩阵的元素可以为任意MATLAB数据类型的数值或对象创建矩阵的方法直接输入法使用数组编辑器(1)直接输入法规则:整个矩阵的元素必须用[]括住同一行的矩阵元素之间必须用逗号或空格分隔在[]内矩阵的行与行之间必须用分号分隔,也可以在需要分行的地方用回车键间隔矩阵元素可以是任何MATLAB表达式,可以是实数,也可以是复数,复数用i,j输入例2-7:A=[1,2,3;4,5,6;7,8,9]X=[2pi/2;sqrt(3)3+5i]逗号和分号的作用逗号和分号可作为指令间的分隔符,MATLAB允许多条语句在同一行出现。分号如果出现在指令后,屏幕上将不显示结果。只要是赋过值的变量,不管是否在屏幕上显示过,都会存储在工作空间中,以后可随时显示或调用。变量名尽可能不要重复,否则会覆盖。例2-8:A=[1,2,3;4,5,6;7,8,9],X=[2pi/2;sqrt(3)3+5i]?A=[1,2,3;4,5,6;7,8,9];X=[2pi/2;sqrt(3)3+5i]?例:A=[1,2,3;4,5,6;7,8,9],X=[2pi/2;sqrt(3)3+5i]A=123456789X=2.00001.57081.73213.0000+5.0000iA=[1,2,3;4,5,6;7,8,9];X=[2pi/2;sqrt(3)3+5i]X=2.00001.57081.73213.0000+5.0000i冒号的作用用于生成等间隔的向量,默认间隔为1。例2-9:y=[1:3;4:6;7:9]矩阵的基本运算函数基本数学运算规则数组的运算运算函数运算指令三.基本运算函数说明zeros产生元素全为0的矩阵ones产生元素全为1的矩阵eye产生单位矩阵rand产生均匀分布的随机数矩阵,数值范围(0,1)randn产生均值为0,方差为1的正态分布随机数矩阵diag获取矩阵的对角线元素,也可生成对角矩阵tril产生下三角矩阵triu产生上三角矩阵pascal产生帕斯卡矩阵magic产生幻方阵矩阵生成函数示例A=zeros(3)A=000000000A=ones(3)A=111111111A=eye(3)A=100010001A=rand(3)A=0.95010.48600.45650.23110.89130.01850.60680.76210.8214A=randn(3)A=-0.43260.28771.1892-1.6656-1.1465-0.03760.12531.19090.3273矩阵生成函数示例A=magic(3)A=816357(15)492A=magic(4)A=162313511108(34)97612414151基本矩阵运算运算命令说明A’矩阵转置A^n矩阵求幂,n可以为任意实数A*B矩阵相乘A/B矩阵右除(一般的除法,A/B=A÷B)A\B矩阵左除(一种倒置的除法,A\B=B÷A)A+B矩阵相加A-B矩阵相减inv矩阵求逆,注意不是所有的矩阵都有逆矩阵det求方阵的行列式rank求矩阵的秩eig求矩阵的特征向量和特征值svd对矩阵进行奇异值分解norm求矩阵的范数1.矩阵加、减运算(A+B、A-B)规则:相加、减的两矩阵必须有相同的行和列,两矩阵对应元素相加减。MATLAB允许参与运算的两矩阵之一是标量,标量与矩阵的所有元素分别进行加减操作。例:A=[123;456]B=[345;789]C=3A+B=[468;111315]A+C=[456;789]B+C=[678;101112]2.矩阵乘运算A*B:A矩阵的列数必须等于B矩阵的行数。s*A或A*s:标量可与任何矩阵相乘,标量s分别与矩阵A每个元素相乘。例:A=[123;456;780];B=[1;2;3];C=A*BC=143223D=[-1;0;2];F=pi*DF=-3.141606.2832基本矩阵运算(续)3.矩阵除运算及线性方程组的解在线性代数中没有矩阵的除运算,只有矩阵逆的运算,在MATLAB中有两种矩阵除运算。A/B—矩阵右除,相当于Ainv(B)A\B—矩阵左除,相当于inv(A)B因此,x=A\B是线性方程组Ax=B的解。例:求解方程组3x1+x2-x3=3.6x1+2x2+4x3=2.1-x1+4x2+5x3=-1.4A=[31-1;124;-145];B=[3.6;2.1;-1.4];x=A\Bx=1.4818-0.46060.3848基本矩阵运算(续)4.矩阵乘方A^n——A自乘n次幂例a=[1,2,3;4,5,6;7,8,9];a^2ans=303642668196102126150方阵1的整数基本矩阵运算(续)数组运算指元素对元素的算术运算,与通常意义上的由符号表示的线性代数矩阵运算不同。1.数组加减(+,-)运算规则:相加、减的两数组必须有相同的行和列,两数组对应元素相加减。MATLAB允许参与运算的两数组之一是标量,标量与数组的所有元素分别进行加减操作A+BA-B基本数组(元素群)运算与矩阵加减运算等效,数组之一也可为标量。2.数组乘()运算ABA,B两数组必须有相同的行和列,两数组相应元素相乘。sA或As标量与数组相乘,标量s分别与数组A每个元素相乘,与sA或As相同。例16:A=[123;456;789];B=[246;135;7910];A.*Bans=281841530497290A=[123;456;789];B=[246;135;7910];A*Bans=2537465585109851331723.数组除(/,\)运算C=A./B——数组右除C(i,j)=A(i,j)/B(i,j)C=A.\B——数组左除C(i,j)=B(i,j)/A(i,j)A./B=B.\AA./s=s.\A—A的元素分别被标量s除s./A=A.\s—标量s分别被A的元素除例:A=[123];B=[456];C1=A./BC1=0.25000.40000.5000C2=B.\AC2=0.25000.40000.5000C3=A.\BC3=4.00002.50002.0000A=[123];B=[456];A/Bans=0.4156A\Bans=0000001.33331.66672.00004.数组乘方(.^)A.^n——A的每个元素自乘n次A.^p——对A各元素分别求非整数幂p.^A——以p为底,分别以A的元素为指数求幂值C=A.^B——元素对元素的幂C(i,j)=A(i,j).^B(i,j)例:A=[123];B=[456];X=A.^2X=1.004.009.00Y=A.^0.5Y=1.00001.41421.7321C=3.^BY=81.00243.00729.003^43^53^6Z=A.^BZ=1.0032.00729.001^42^53^65.数组转置(.’)例:A=[135;246]A=135246A'ans=123456A.'ans=123456结论:对于实数矩阵,矩阵转置和数组转置的计算结果是一致的。例:A=A*iA=0+1.0000i0+3.0000i0+5.0000i0+2.0000i0+4.0000i0+6.0000iA'ans=0-1.0000i0-2.0000i0-3.0000i0-4.0000i0-5.0000i0-6.0000iA.'ans=0+1.0000i0+2.0000i0+3.0000i0+4.0000i0+5.0000i0+6.0000i结论:对于复数矩阵,矩阵转置和数组转置的计算结果不一致。矩阵转置运算——共轭转置数组转置运算——非共轭转置函数的主要类别三角函数指数运算函数复数运算函数圆整和求余函数函数在处理参数时,是按照数组运算的规则进行的基本数学函数三角函数函数说明函数说明函数说明sin正弦函数tanh双曲正切函数csch双曲余割函数sinh双曲正弦函数atan反正切函数acsc反余割函数asin反正弦函数atan2四象限反正切函数acsch反双曲余割函数asinh反双曲正弦函数atanh反双曲正切函数cot余切函数cos余弦函数sec正割函数coth双曲余切函数cosh双曲余弦函数sech双曲正割函数acot反余切函数acos反余弦函数asec反正割函数acoth反双曲余切函数acosh反双曲余弦函数asech双曲反正割函数tan正切函数csc余割函数指数运算函数函数说明函数说明exp指数函数realpow实

1 / 41
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功