矩阵的各种运算详细讲解

矩阵的各种运算详细讲解
矩阵的各种运算详细讲解

一、矩阵的线性运算

定义1 设有两个矩阵和,矩阵与的和记作, 规定为

注:只有两个矩阵是同型矩阵时,才能进行矩阵的加法运算. 两个同型矩阵的和,即为两个矩阵对应位置元素相加得到的矩阵.

设矩阵记

,

称为矩阵的负矩阵, 显然有

.

由此规定矩阵的减法为

.

定义2 数与矩阵A的乘积记作或, 规定为

数与矩阵的乘积运算称为数乘运算.

矩阵的加法与矩阵的数乘两种运算统称为矩阵的线性运算. 它满足下列运算规律:设都是同型矩阵,是常数,则

(1)

(2) ;

(3)

(4)

(5)

(6)

(7)

(8)

注:在数学中,把满足上述八条规律的运算称为线性运算.

二、矩阵的相乘

定义3设

矩阵与矩阵的乘积记作, 规定为

其中,(

记号常读作左乘或右乘.

注: 只有当左边矩阵的列数等于右边矩阵的行数时, 两个矩阵才能进行乘法运算.

若,则矩阵的元素即为矩阵的第行元素与矩阵的第列对应元素乘积的和. 即

.

矩阵的乘法满足下列运算规律(假定运算都是可行的):

(1)

(2)

(3)

(4)

注: 矩阵的乘法一般不满足交换律, 即

例如, 设则

于是且

从上例还可看出: 两个非零矩阵相乘, 可能是零矩阵, 故不能从必然推出

此外, 矩阵乘法一般也不满足消去律,即不能从必然推出例如, 设

定义4如果两矩阵相乘, 有

则称矩阵A与矩阵B可交换.简称A与B可换.

注:对于单位矩阵, 容易证明

或简写成

可见单位矩阵在矩阵的乘法中的作用类似于数1.

更进一步我们有

命题1设是一个n阶矩阵,则是一个数量矩阵的充分必要条件是与任何n阶矩阵可换。

命题2设均为n阶矩阵,则下列命题等价:

(1)

(2)

(3)

(4)

三、线性方程组的矩阵表示

设有线性方程组

若记

则利用矩阵的乘法, 线性方程组(1)可表示为矩阵形式:

(2)

其中矩阵称为线性方程组(1)的系数矩阵. 方程(2)又称为矩阵方程.

如果是方程组(1)的解, 记列矩阵

这时也称是矩阵方程(2)的解; 反之, 如果列矩阵是矩阵方程(2)的解, 即有矩阵等式

成立, 则即也是线性方程组(1)的解. 这样, 对线性方程组(1)的讨论便等价于对矩阵方程(2)的讨论. 特别地, 齐次线性方程组可以表示为

将线性方程组写成矩阵方程的形式,不仅书写方便,而且可以把线性方程组的理论与矩阵理论联系起来,这给线性方程组的讨论带来很大的便利.

四、矩阵的转置

定义6把矩阵的行换成同序数的列得到的新矩阵, 称为的转置矩阵, 记作(或). 即若

.

矩阵的转置满足以下运算规律(假设运算都是可行的):

(1)

(2)

(3)

(4)

五、方阵的幂

定义5设方阵, 规定

称为的次幂.

方阵的幂满足以下运算规律(假设运算都是可行的):

(1)

(2)

注: 一般地,为自然数

命题3 设均为n阶矩阵,则有为自然数,反之不成立。

六、方阵的行列式

定义7由阶方阵的元素所构成的行列式(各元素的位置不变),称为方阵的行列式,记作或

注: 方阵与行列式是两个不同的概念, 阶方阵是个数按一定方式排成的数表,而阶行列式则是这些数按一定的运算法则所确定的一个数值(实数或复数).

方阵的行列式满足以下运算规律(设为阶方阵, 为常数):

(1)

(2)

(3) 进一步

七、对称矩阵

定义8设为阶方阵, 如果即

则称为对称矩阵.

显然,对称矩阵的元素关于主对角线对称. 例如

均为对称矩阵.

如果则称为反对称矩阵.

八、共轭矩阵

定义9 设为复(数)矩阵, 记

其中表示的共轭复数, 称为A的共轭矩阵.

共轭矩阵满足以下运算规律(设为复矩阵,为复数, 且运算都是可行的):

(1)

(2)

(3)

例题选讲:

矩阵的线性运算

例1 (讲义例1)已知, 求

例2(讲义例2) 已知且求

注:n阶数量矩阵=

例3(讲义例3)若求

例4设,。A是一个矩阵,B是矩阵,因此AB有意义,BA也有意义;但

例5设,B=。

(这种记法表示主对角线以外没有注明的元素均为零),则

(1);

(2)

(3)

例6(讲义例4) 某地区有四个工厂Ⅰ、Ⅱ、Ⅲ、Ⅳ,生产甲、乙、丙三种产品, 矩阵A 表示一年中各工厂生产各种产品的数量, 矩阵B表示各种产品的单位价格(元)及单位利润(元), 矩阵C表示各工厂的总收入及总利润.

其中, 是第个工厂生产第种产品的数量, 及分别

是第种产品的单位价格及单位利润, 及分别是第个工厂生产三种产品的总收入及总利润. 则矩阵的元素之间有下列关系:

其中,即

例7(讲义例5) 求与矩阵可交换的一切矩阵.

例8(讲义例6)证明: 如果则有

例9(讲义例7)解矩阵方程为二阶矩阵

例10(1)设,则。

(2)设,则。

例11(讲义例8)已知求

例12(讲义例9)设求

例13设,,则

因此地

例14 (讲义例10) 设A与B是两个n阶反对称矩阵, 证明: 当且仅当时,

是反对称矩阵.

例15(讲义例11) 设列矩阵满足E为n阶单位矩阵,

证明H是对称矩阵, 且

MATLAB中的矩阵与向量运算

4.1 数组运算和矩阵运算 从外观形状和数据结构来看,二维数组和数学中的矩阵没有区别.但是,矩阵作为一种变换或映射算符的体现,矩阵运算有着明确而严格的数学规则.而数组运算是MATLAB软件所定义的规则,其目的是为了数据管理方面,操作简单,指令形式自然和执行计算有效.所以,在使用MATLAB时,特别要明确搞清数组运算和矩阵运算的区别.表 4.1.1 数组运算和矩阵运算指令形式和实质内涵 数组运算矩阵运算 指令含义指令含义 A.'非共轭转置A'共轭转置 A=s把标量s赋给数组A的每个元素 s+B把标量s分别与数组B的每个元素相加s-B, B-s标量s分别与数组B的元素之差 s.*A标量s分别与数组A的元素之积s*A标量s分别与矩阵A的元素之积 s./B, B.\s标量s分别被数组B的元素除s*inv(B)矩阵B的逆乘标量s A.^n数组A的每个元素的n次方A^n A为方阵时,矩阵A的n次方 A+B数组对应元素的相加A+B矩阵相加 A-B数组对应元素的相减A-B矩阵相减 A.*B数组对应元素的相乘A*B内维相同矩阵的乘积 A./B A的元素被B的对应元素除A/B A右除B B.\A一定与上相同B\A A左除B(一般与右除不同) exp(A)以e为底,分别以A的元素为指数,求幂expm(A) A的矩阵指数函数 log(A) 对A的各元素求对数logm(A) A的矩阵对数函数 sqrt(A) 对A的积各元素求平方根sqrtm(A) A的矩阵平方函数 从上面可以看到,数组运算的运算如:乘,除,乘方,转置,要加"点".所以,我们要特别注意在求"乘,除,乘方,三角和指数函数"时,两种运算有着根本的区别.另外,在执行数组与数组运算时,参与运算的数组必须同维,运算所得的结果数组也是总与原数组同维. 4.2 数组的基本运算 在MATLAB中,数组运算是针对多个数执行同样的计算而运用的.MATLAB以一种非常直观的方式来处理数组. 4.2.1 点转置和共轭转置 . ' ——点转置.非共轭转置,相当于conj(A'). >> a=1:5; >> b=a. ' b = 1 2 3 4 5 >> c=b. ' c = 1 2 3 4 5 这表明对行向量的两次转置运算便得到原来的行向量. ' ——共轭转置.对向量进行转置运算并对每个元素取其共轭.如: >> d=a+i*a

MATLAB实验二 矩阵基本运算(一)答案

实验一 矩阵基本运算(一) (1)设A 和B 是两个同维同大小的矩阵,问: 1)A*B 和A.*B 的值是否相等? ????? ?? =763514432A ???? ? ??=94 525 313 4B A=[2 3 4;4 1 5;3 6 7]; B=[4 3 1;3 5 2;5 4 9]; A*B, A.*B ans = 37 37 44 44 37 51 65 67 78 ans = 8 9 4 12 5 10 15 24 63 2)A./B 和B.\A 的值是否相等? A=[2 3 4;4 1 5;3 6 7]; B=[4 3 1;3 5 2;5 4 9]; A./B, B./A

ans = 0.5000 1.0000 4.0000 1.3333 0.2000 2.5000 0.6000 1.5000 0.7778 ans = 2.0000 1.0000 0.2500 0.7500 5.0000 0.4000 1.6667 0.6667 1.2857 3)A/B和B\A的值是否相等? A=[2 3 4;4 1 5;3 6 7]; B=[4 3 1;3 5 2;5 4 9]; A/B, B/A ans = -0.3452 0.5119 0.3690 0.7857 -0.7857 0.6429 -0.9762 1.3095 0.5952 ans = 110.0000 -15.0000 -52.0000

92.0000 -13.0000 -43.0000 -22.0000 4.0000 11.0000 4)A/B和B\A所代表的数学含义是什么? 解: A/B是B*A的逆矩阵 B\A是B*A的逆矩阵 (2)写出完成下列操作的命令。 1)将矩阵A第2—5行中第1,3,5列元素赋给矩阵B。 A=[0.9501 0.4565 0.9218 0.4103 0.1389 0.0153 0.2311 0.0185 0.7382 0.8936 0.2028 0.7468 0.6068 0.8214 0.1763 0.0579 0.1987 0.4451 0.4860 0.4447 0.4057 0.3529 0.6038 0.9318 0.8913 0.6154 0.9355 0.8132 0.2722 0.4660 0.7621 0.7919 0.9169 0.0099 0.1988 0.4186] B=A(2:5,[1,3,5]) A = 0.9501 0.4565 0.9218 0.4103 0.1389 0.0153 0.2311 0.0185 0.7382 0.8936 0.2028 0.7468 0.6068 0.8214 0.1763 0.0579 0.1987 0.4451 0.4860 0.4447 0.4057 0.3529 0.6038 0.9318 0.8913 0.6154 0.9355 0.8132 0.2722 0.4660 0.7621 0.7919 0.9169 0.0099 0.1988 0.4186 B = 0.2311 0.7382 0.2028 0.6068 0.1763 0.1987 0.4860 0.4057 0.6038 0.8913 0.9355 0.2722 2)删除矩阵A的第7号元素。 A=rand(6,6); >> A(7)=[inf] A = 0.8385 Inf 0.1730 0.1365 0.2844 0.5155

矩阵的运算及其运算规则

矩阵基本运算及应用 201700060牛晨晖 在数学中,矩阵是一个按照长方阵列排列的复数或实数集合。矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。在物理学中,矩阵于电路学、力学、光学和量子物理中都有应用;计算机科学中,三维动画制作也需要用到矩阵。矩阵的运算是数值分析领域的重要问题。将矩阵分解为简单矩阵的组合可以在理论和实际应用上简化矩阵的运算。在电力系统方面,矩阵知识已有广泛深入的应用,本文将在介绍矩阵基本运算和运算规则的基础上,简要介绍其在电力系统新能源领域建模方面的应用情况,并展望随机矩阵理论等相关知识与人工智能电力系统的紧密结合。 1矩阵的运算及其运算规则 1.1矩阵的加法与减法 1.1.1运算规则 设矩阵,, 则

简言之,两个矩阵相加减,即它们相同位置的元素相加减! 注意:只有对于两个行数、列数分别相等的矩阵(即同型矩阵),加减法运算才有意义,即加减运算是可行的. 1.1.2运算性质 满足交换律和结合律 交换律; 结合律. 1.2矩阵与数的乘法 1.2.1运算规则 数乘矩阵A,就是将数乘矩阵A中的每一个元素,记为或. 特别地,称称为的负矩阵. 1.2.2运算性质 满足结合律和分配律 结合律:(λμ)A=λ(μA);(λ+μ)A =λA+μA. 分配律:λ(A+B)=λA+λB.

已知两个矩阵 满足矩阵方程,求未知矩阵. 解由已知条件知 1.3矩阵与矩阵的乘法 1.3.1运算规则 设,,则A与B的乘积是这样一个矩阵: (1) 行数与(左矩阵)A相同,列数与(右矩阵)B相同,即 . (2) C的第行第列的元素由A的第行元素与B的第列元素对应相乘,再取乘积之和.

matlab中的矩阵的基本运算命令范文

1.1 矩阵的表示 1.2 矩阵运算 1.2.14 特殊运算 1.矩阵对角线元素的抽取 函数diag 格式X = diag(v,k) %以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时,v为下方第k条对角线。 X = diag(v) %以v为主对角线元素,其余元素为0构成X。 v = diag(X,k) %抽取X的第k条对角线元素构成向量v。k=0:抽取主对角线元素;k>0:抽取上方第k条对角线元素;k<0抽取下方第k条对角线元素。 v = diag(X) %抽取主对角线元素构成向量v。 2.上三角阵和下三角阵的抽取 函数tril %取下三角部分 格式L = tril(X) %抽取X的主对角线的下三角部分构成矩阵L L = tril(X,k) %抽取X的第k条对角线的下三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。函数triu %取上三角部分 格式U = triu(X) %抽取X的主对角线的上三角部分构成矩阵U U = triu(X,k) %抽取X的第k条对角线的上三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。3.矩阵的变维 矩阵的变维有两种方法,即用“:”和函数“reshape”,前者主要针对2个已知维数矩阵之间的变维操作;而后者是对于一个矩阵的操作。 (1)“:”变维 (2)Reshape函数变维 格式 B = reshape(A,m,n) %返回以矩阵A的元素构成的m×n矩阵B B = reshape(A,m,n,p,…) %将矩阵A变维为m×n×p×… B = reshape(A,[m n p…]) %同上 B = reshape(A,siz) %由siz决定变维的大小,元素个数与A中元素个数 相同。 (5)复制和平铺矩阵 函数repmat 格式 B = repmat(A,m,n) %将矩阵A复制m×n块,即B由m×n块A平铺而成。 B = repmat(A,[m n]) %与上面一致 B = repmat(A,[m n p…]) %B由m×n×p×…个A块平铺而成 repmat(A,m,n) %当A是一个数a时,该命令产生一个全由a组成的m×n矩阵。 1.3 矩阵分解 1.3.1 Cholesky分解 函数chol 格式R = chol(X) %如果X为n阶对称正定矩阵,则存在一个实的非奇异上三角阵R,满足R'*R = X;若X非正定,则产生错误信息。 [R,p] = chol(X) %不产生任何错误信息,若X为正定阵,则p=0,R与上相同;若X非正定,则p为正整数,R是有序的上三角阵。 1.3.2 LU分解

2-matlab矩阵的代数运算 (1)

乘法运算乘法运算符为”*”,运算规则和现行代数中矩阵乘法运算相同,即放在前面的矩阵的行元素,分别与放在后面的矩阵的各列元素对应相乘并相加。 1、两个矩阵相乘:必须满足前一矩阵的列数等于后一矩阵的行数。 2、矩阵的数乘:返回数与矩阵中每一个元素相乘后的矩阵 3、向量的点乘(内积):维数相同的两个向量的点乘;A.*B表示A与B对应的元素相乘,返回的是一个向量 4、向量点积: (1)C=dot(A,B) %若A、B为向量,A与B长度相同;若为矩阵,则A与B有相同维数 (2)C=dot(A,B,dim) %在dim维数中给出A与B的点积 5、向量叉乘:在数学上,两向量的叉乘是一个过两向量交点且垂直于两向量所在平面的向量。 (1)C=cross(A,B) %若A、B为向量,则返回A与B的叉乘,即C=AXB;若为矩阵,则返回一个3Xn矩阵,其中列是A与B对应列的叉积,A、B都是3Xn矩阵 (2)C=cross(A,B,dim) %在dim维数中给出向量A与B的叉积注:A与B必须具有相同维数,size(A,dim)和size(B,dim)必须是3 6、矩阵卷积和多项式乘法:w=conv(u,v) (反褶积deconv(u,v))长度为m的向量序列u和长度为n的向量序列v的卷积定义为 ∑ = + = k 1 j j) -1 u(j)v(k )k( w,其中w向量序列长度为(m+n-1) 多项式的乘法实际上是多项式系数向量间的卷积运算,举例如下:展开多项式(s2+2s+2)(s+4)(s+1) >>w=conv([1,2,2],conv([1,4],[1,1])) w = 1 7 16 18 8 >>p=poly2str(w,’s’) %将w表示成多项式 p=s^4 +7 s^3 +16 s^2 +18 s + 8 7、张量积 C=kron(A,B) %A为mxn矩阵,B为pxq矩阵,则C为mpxnq矩阵A与B的张量积定义为: 加、减运算加、减运算符为”+”、”--”。运算规则为对应元素相加、减 pow2函数命令:X=pow2(F,E),表示F*2E;命令:X=pow2(E),表示2E 矩阵的代数 运算

分块矩阵的应用论文

分块矩阵的应用 引言 矩阵作为数学工具之一有其重要的实用价值,它常见于很多学科中,如:线性代数、线性规划、统计分析,以及组合数学等,在实际生活中,很多问题都可以借用矩阵抽象出来进行表述并进行运算,如在各循环赛中常用的赛格表格等,矩阵的概念和性质相对矩阵的运算较容易理解和掌握,对于矩阵的运算和应用,则有很多的问题值得我们去研究,其中当矩阵的行数和列数都相当大时,矩阵的计算和证明中会是很烦琐的过程,因此这时我们得有一个新的矩阵处理工具,来使这些问题得到更好的解释,矩阵分块的思想由此产生矩阵分块,就是把一个大矩阵看成是由一些小矩阵组成的?就如矩阵的元素(数)一样,特别是在运算中,把这些小矩阵当作数一样来处理.把矩阵分块运算有许多方便之处因为在分块之后,矩阵间的相互关系可以看得更清楚,在实际操作中与其他方法相比,- 般来说,不仅非常简洁,而且方法也很统一,具有较大的优越性,是在处理级数较高的矩阵时常用的方法?比如,从行列式的性质出发,可以推导出分块矩阵的若干性质,并可以利用这些性质在行列式计算和证明中的应用分块矩阵;也可以借助分块矩阵的初等变换求逆矩阵及矩阵的秩等;再如利用分块矩阵求高阶行列式,如设A、C都是n阶矩阵, A B 其中A 0,并且AC CA,则可求得AD BC ;分块矩阵也可以在求解线性 C D 方程组应用? 本文将通过对分块矩阵性质的研究,比较系统的总结讨论分块矩阵在计算和证明方面的应用,从而确认分块矩阵为处理很多代数问题带来很大的便利

1 分块矩阵的定义及相关运算性质 1.1 分块矩阵的定义 矩阵分块 , 就是把一个大矩阵看成是由一些小矩阵组成的 . 就如矩阵的元素 ( 数) 一 样,特别是在运算中 , 把这些小矩阵当作数一样来处理 . 定义1设A 是一个m n 矩阵,若用若干横线条将它分成r 块,再用若干纵线条将它 A 11 ... 分成s 块,于是有rs 块的分块矩阵,即A .... A r1 . 1.2 分块矩阵的相关运算性质 1. 2.1 加法 A A ij r s , B B ij r s , 其中 A ij , B ij 的级数相同, A B A ij B ij r s 1.2.2 数乘 kA 1.2.3 乘法 1.2.4 转置 A A ji s r 1.2.5 分块矩阵的初等变换 分块矩阵A 的下列三种变换称为初等行变换: A 1s ... ,其中 A ij 表示的是一个矩阵 . A rs 设 A a ij B mn b ij m n ,用同样的方法对 A,B 进行分块 设是任 A a ij mn A ij r s ,k 为任意数, 定义分块矩阵 A A ij r s 与 k 的数乘为 设 A a ij ,B sn n m 分块为 A A ij nm r l ,B B ij l r ,其中 A ij 是 s i n j 矩阵, B ij 是 n i m j 矩阵, 定义分块矩阵A A j rl 和B B ij l r 的乘积为 r C ij A i1 B 1j A i2 B 2j ... A il B lj , i 1,2,...t; j 1,2,3,..., l a ij s n 分块为 A sn A ij r s ,定义分块矩阵 A A ij r s 的转置为 rs

矩阵在MATLAB中的运算与应用

矩阵在MATLAB中的运算与应用 摘要:介绍了Matlab在矩阵运算方而的功能。演示了用Matlab构造矩阵,获取矩阵的相关信息,进行矩阵运算的方法,对矩阵运算进行了分析,对矩阵作图进行了研究。 关键词:矩阵;Matlab 1 引言 Matlab的含义是矩阵实验室( Matrix Laboratory) ,是由美国Mathwork公司于1984年推出的一套高性能的数值计算和可视化软件[1]。现在,它己发展为国际上最优秀的科技应用软件。如果能将它用到相关学科课的学习上无疑是非常有意义的。Matlab赋予学习者一个可实验的环境,一个强大的数值计算和分析及可视化(图形)工具。矩阵论是高等院校理、工科研究生的一门重要基础课程。有人认为“科学计算,归根结底就是矩阵的计算”[2]。因此,对于将来从事科学技术工作的研究生来说,矩阵理论和方法是必不可少的数学工具。矩阵的理论和方法在数学和其他学科中都具有重要的意义,但许多学生无法克服矩阵庞大的计算量带来的恐惧,从而丧失了学习的兴趣和动力。本文展示了如何方便地用Matlab构造矩阵,获取矩阵的相关信息以及完成矩阵的运算,展示了矩阵的结构和运算,以此来说明在机器计算环境中,庞大复杂的计算不再是令人头疼的事情。 2矩阵及其运算 矩阵是进行数据处理和运算的基本元素。在MATLAB中: a、通常意义上的数量(标量)可看成是“1*1”的矩阵; b、n维矢量可看成是“n*1”的矩阵; c、多项式可由它的系数矩阵完全确定。 2.1 矩阵的创建 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在“[ ]”内; b、矩阵的同行元素之间用空格(或“,”)隔开; c、矩阵的行与行之间用“;”(或回车符)隔开; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 2.1.1 直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是

矩阵的定义及其运算规则

矩阵的定义及其运算规则 1、矩阵的定义 一般而言,所谓矩阵就是由一组数的全体,在括号()内排列成m行n 列(横的称行,纵的称列)的一个数表,并称它为m×n阵。 矩阵通常是用大写字母 A 、B …来表示。例如一个m 行n 列的矩阵可以简记为: ,或 。即: (2-3) 我们称(2-3)式中的为矩阵A的元素,a的第一个注脚字母,表示矩阵的行数,第二个注脚字母j(j=1,2,…,n)表示矩阵的列数。 当m=n时,则称为n阶方阵,并用表示。当矩阵(a ij)的元素仅有一行或一列时,则称它为行矩阵或列矩阵。设两个矩阵,有相同的行数和相同的列数,而且它们的对应元素一一相等,即,则称该两矩阵相等,记为A=B。 2、三角形矩阵 由i=j的元素组成的对角线为主对角线,构成这个主对角线的元素称为主对角线元素。 如果在方阵中主对角线一侧的元素全为零,而另外一侧的元素不为零或不全为零,则该矩阵叫做三角形矩阵。例如,以下矩阵都是三角形矩阵: ,,,。 3、单位矩阵与零矩阵 在方阵中,如果只有的元素不等于零,而其他元素全为零,如: 则称为对角矩阵,可记为。如果在对角矩阵中所有的彼此

都相等且均为1,如:,则称为单位矩阵。单位矩阵常用E来表示,即: 当矩阵中所有的元素都等于零时,叫做零矩阵,并用符号“0”来表示。 4、矩阵的加法 矩阵A=(a ij)m×n和B=(b ij)m×n相加时,必须要有相同的行数和列数。如以C=(c ij)表示矩阵A及B的和,则有: m ×n 式中:。即矩阵C的元素等于矩阵A和B的对应元素之和。 由上述定义可知,矩阵的加法具有下列性质(设A、B、C都是m×n矩阵): (1)交换律:A+B=B+A (2)结合律:(A+B)+C=A+(B+C) 5、数与矩阵的乘法 我们定义用k右乘矩阵A或左乘矩阵A,其积均等于矩阵中的所有元素都乘上k之后所得的矩阵。如: 由上述定义可知,数与矩阵相乘具有下列性质:设A、B都是m×n矩阵,k、h为任意常数,则: (1)k(A+B)=kA+kB (2)(k+h)A=kA+hA (3)k(hA)=khA

矩阵在matlab中的基本命令

一、矩阵的表示 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]”内; b、矩阵的同行元素之间用空格(或”,”)隔开; c、矩阵的行与行之间用”;”(或回车符)隔开; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 二,矩阵的创建: 1、直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 2、利用MATLAB函数创建矩阵 基本矩阵函数如下: (1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n 维的全1矩阵; (2) zeros()函数:产生全为0的矩阵;

(3) rand()函数:产生在(0,1)区间均匀分布的随机阵; (4) eye()函数:产生单位阵; (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。 3、利用文件建立矩阵 当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。 二、矩阵的简单操作 1.获取矩阵元素 可以通过下标(行列索引)引用矩阵的元素,如Matrix(m,n)。 也可以采用矩阵元素的序号来引用矩阵元素。 矩阵元素的序号就是相应元素在内存中的排列顺序。 在MATLAB中,矩阵元素按列存储。 序号(Index)与下标(Subscript )是一一对应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。 其相互转换关系也可利用sub2ind和ind2sub函数求得。 2.矩阵拆分

数学实验矩阵的运算doc资料

数学实验矩阵的运算

数学实验报告 学院: 班级: 学号: 姓名: 完成日期:

实验四矩阵的运算 (一)投入产出分析 一.实验目的 1.理解投入产出分析中的基本概念和模型; 2.从数学和投入产出理论的角度,理解矩阵乘法、逆 矩阵等的含义。 二.问题描述 设国民经济由农业、制造业和服务业三个部门构成,已知某年它们之间的投入产出关系、部需求、初始投入等如表1-1所示 表1-1国民经济三产部门之间的投入产出表 根据表回答下列问题: (1)如果农业、制造业、服务业外部需求为 50,150,100,问三个部门总产出分别为多少? (2)如果三个部门的外部需求分别增加一个单位,问他们的总产出分别为多少? 三.实验过程

1.问题(1)的求解 (1)求直接消耗矩阵A 根据直接消耗的计算公式 a ij=x ij/x j 和各部门中间需求; x n a n 运行如下代码可得直接消耗系数表。 X=[15 20 30;30 10 45;20 60 0]; X_colsum=[100 200 150]; X_rep=repmat(X_colsum,3,1) A=X./ X_rep 运行结果为: A = 0.1500 0.1000 0.2000 0.3000 0.0500 0.3000 0.2000 0.3000 0 (2)求解 根据公式 X=(I-A)-1y 在运行如下代码 y=[50;150;100]; n=size(y,1);

W=eye(n)-A; X=W\y 运行结果为 X = 139.2801 267.6056 208.1377 即三个部门的总产出分别为139.2801,267.6056, 208.1377亿元。 2.问题2求解 设外部需求由y增加至y+Δy,则产出x的增量为Δx=(I-A)-1(y+Δy)- (I-A)-1y=(I-A)-1Δy 利用问题(1)求得的I-A矩阵,再运行如下的MATLAB代码可得问题的结果: dx=inv(W) 运行结果: dx = 1.3459 0.2504 0.3443 0.5634 1.2676 0.4930 0.4382 0.4304 1.2167 根据上述结果可知,当农业的外部需求增加1个单位时,农业、制造业、服务业的总产出分别增加

MATLAB矩阵及其运算函数表

MATLAB 矩阵及其运算函数表 函数名函数功能 abs( ) 绝对值、负数的模、字符串的ASCII码值都可用来求字符串矩阵所 对应的ASCII码数值矩阵double( ) char( ) 可以把ASCII码数值矩阵转换为字符串矩阵 fix( ) 向零方向取整 floor( ) 不大于自变量的最大整数 ceil( ) 不小于自变量的最小整数 round( ) 四舍五入到最邻近的整数 rem(x,y) 求余函数 mod(x,y) % exp( ) 指数函数 [ ] 空操作符 format 格式符设置或改变数据输出格式 (其中格式符决定数据的输出格式) e1:e2:e3 冒号表达式可以产生一个行向量 (其中e1为初始值,e2为步长,e3为终止值) linspace(a,b,n) 产生一个行向量 (其中a和b是生成向量的第一个和最后一个元素,n是元素总数) [注:linspace(a,b,n)与a:(b-a)/(n-1):b等价] A(:,j) 表示取A矩阵的第j列全部元素 A(i,:) 表示A矩阵第i行的全部元素 A(i,j) 表示取A矩阵第i行、第j列的元素 A(i:i+m,:) 表示取A矩阵第i~i+m行的全部元素 A(:,k:k+m) 表示取A矩阵第k~k+m列的全部元素 A(i:i+m,k:k+m) 表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素 zeros 产生全0矩阵(零矩阵) ones 产生全1矩阵(幺矩阵) eye 产生单位矩阵 rand 产生0~1间均匀分布的随机矩阵 randn 产生均值为0,方差为1的标准正态分布随机矩阵 zeros(size(A)) 建立一个与矩阵A同样大小的零矩阵 reshape(A,m,n) 在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵magic(n) 生成一个n阶魔方矩阵(其每行、每列及两条对角线上的元素和都相等) vander(V) 生成以向量V为基础向量的范得蒙矩阵(最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积) hilb(n) 生成希尔伯特矩阵 invhilb(n) 求n阶的希尔伯特矩阵的逆矩阵 (用一般方法求逆会因原始数据的微小扰动而产生不可靠的计算结果) toeplitz(x,y) 生成一个以x为第1列,y为第1行的托普利兹矩阵(除第1行第1列外,

Matlab常用函数数组及矩阵的基本运算

实验一 Matlab 常用函数、数组及矩阵的基本运算 一、 实验目的 1. 了解Matlab7.0软件工作界面结构和基本操作; 2. 掌握矩阵的表示方法及Matlab 常用函数; 3. 掌握数组及矩阵的基本运算. 二、 实验内容 1. 了解命令窗口(command widow)和变量空间(workspace)的作用,掌握清 除命令窗口(clc )和变量空间(clear)的方法.掌握查询函数(help)的方法. 2. 掌握保存和加载变量的方法. 加载变量:load 变量名. 3. 掌握掌握矩阵的表示方法: 给a,b,c 赋如下数据: ]6,46,23,4,2,6,3,8,0,1[,356838241248 7,278744125431-=??????????--=??????????=c b a 4. 求a+b,a*b,a.*b,a/b,a./b,a^2,a.^2的结果. 5. 将str1=electronic; str2 = information; str3 = engineering; 三个字符串连接 在一起成str = electronic information engineering. 6. 求矩阵a 的逆矩阵a -1,行列式计算。 (inv(a),det(a)) 三、 实验要求 1.上机操作,熟练掌握清除命令窗口和变量空间的方法、查询变量的方法、加载变量的方法。 2.第2道题请写出步骤。 3.对实验内容中第3-6项,写出指令,上机运行. 记录运行结果(数据)。 4.写出实验报告。 四、 实验结果 2. 用save 函数,可以将工作空间的变量保存成txt 文件或mat 文件等. 比如: save peng.mat p j 就是将工作空间中的p 和j 变量保存在peng.mat 中. 用load 函数,可以将数据读入到matlab 的工作空间中. 比如:load peng.mat 就是将peng.mat 中的所有变量读入matlab 工作空间中。

矩阵的运算实例程序

设计一个矩阵相乘的程序 假设有 1 5 7 3 3 9 1 4 1 4 A= 3 6 3 9 B= 5 6 7 9 0 3 1 2 8 7 3 2 7 2 5 6 0 3 1 9 9 7 4 7 8 0 3 2 5 4 求出A*B的矩阵 程序构思: 我们所知的矩阵乘法运算的算式如下: C ij = A ik X B kj的k从1到n 的和,那么可以用一个3层循环来运算此算式: C(1,1)=A(1,1)*B(1,1)+A(1,2)*B(2,1)+A(1,3)*B(3,1)+A(1,4)*B(4,1) =(1*3)+(5*5)+(7*3)+(3*9) =3+25+21+27 =76 同理 C(1,2)=A(1,1)*B(1,2)+A(1,2)*B(2,2)+A(1,3)*B(3,2)+A(1,4)*B(2,2) =(1*9)+(5*6)+(7*2)+(3*7) =9+30+14+21 =74 依此类推,我们可以求得矩阵A与矩阵B的矩阵乘积。 void main(void) { int matrixa[5][4]={1,5,7,3, 3,6,3,9, 1,2,8,7, 0,3,1,9, 3,2,5,4}; int matrixb[4][6]={3,9,1,4,1,4, 5,6,7,9,0,3, 3,2,7,2,5,6, 9,7,4,7,8,0}; int matrixc[5][6]; int i,j,k; for(i=0;i<5;i++) for(j=0;j<6;j++) { matrixc[i][j]=0; for(k=0;k<4;k++) matrixc[i][j]+=matrixa[i][k]*matrixb[k][j];

Matlab实验2-矩阵的基本运算

实验二、矩阵的基本运算 一、 问题 已知矩阵A 、B 、b 如下: ???????? ??????????-------------=0319481187638126542 86174116470561091143A ???????? ??????????------=503642237253619129113281510551201187851697236421B … []1187531=b 应用Matlab 软件进行矩阵输入及各种基本运算。 二、 实验目的: 熟悉Matlab 软件中的关于矩阵运算的各种命令 三、 预备知识 1、 、 2、 线性代数中的矩阵运算。 3、 本实验所用的Matlab 命令提示: (1)、矩阵输入格式:A =[a 11, a 12; a 21, a 22];b =初始值:步长:终值; (2)、求A 的转置:A'; (3)、求A 加B :A +B ; (4)、求A 减B :A -B ; (5)、求数k 乘以A :k*A ; (6)、求A 乘以B :A*B ; (7)、求A 的行列式:det (A ); (8)、求A 的秩:rank (A ); … (9)、求A 的逆:inv (A )或(A )-1; (10)、B 右乘A 的逆:B/A ; (11)、B 左乘A 的逆:A \B ; (12)、求A 的特征值:eig (A ); (13)、求A 的特征向量矩阵X 及对角阵D :[X ,D ]=eig (A ); ( (14)、求方阵A 的n 次幂:A ^n ;

(15)、A与B的对应元素相乘:A.*B; (16)、存储工作空间变量:save '文件名' '变量名'; (17)、列出工作空间的所有变量:whos; 四、《 五、实验内容与要求 1、输入矩阵A,B,b; >> A=[3,4,-1,1,-9,10;6,5,0,7,4,-16;1,-4,7,-1,6,-8;2,-4,5,-6,12,-8;-3,6,-7,8,-1,1;8,-4,9,1,3,0] B=[1 2 4 6 -3 2;7 9 16 -5 8 -7;8 11 20 1 5 5;10 15 28 13 -1 9;12 19 36 25 -7 23;2 4 6 -3 0 5] b=[1,3,5,7,8,11] | A = 3 4 -1 1 -9 10 6 5 0 7 4 -16 1 -4 7 -1 6 -8 2 -4 5 -6 12 -8 ^ -3 6 -7 8 -1 1 8 -4 9 1 3 0 B = 1 2 4 6 -3 2 7 9 16 -5 8 -7 ^ 8 11 20 1 5 5 10 15 28 13 -1 9 12 19 36 25 -7 23 2 4 6 - 3 0 5 b = ) 1 3 5 7 8 11 2、作X21=A'、X22=A+B、X23=A-B、X24=AB; >> X21=A' X22=A+B X23=A-B % X24=A*B X21 = 3 6 1 2 -3 8 4 5 -4 -4 6 -4 -1 0 7 5 -7 9 ; 1 7 -1 -6 8 1 -9 4 6 12 -1 3 10 -16 -8 -8 1 0 X22 = 4 6 3 7 -12 12 (

matlab下的矩阵运算

第二讲矩阵运算 §1基本矩阵运算元 我们在第一讲章已说明过 MATLAB 的运算是以数组(array>及矩阵 (matrix> 方式在做运算,而这二者在MATLAB的基本运算性质不同,数组强调元素对元素的运算,而矩阵则采用线性代数的运算方式。我们就来说明矩阵运算的特点。 以下将数组及矩阵的运算符号及其意义列出 >> A=[2 5 1。 7 3 8。 4 5 21。 16 13 0]。 >> A' % A的转置矩阵 A = 2 7 4 16 5 3 5 13 1 8 21 0 >> A=[4 -1 3]。 B=[-2 5 2]。 >> dot_prod = sum(A.*B> % 二个数组做内积 dot_prod = -7 >> c=dot(A,B> % 以dot函数也可做内积运算 c = -7 >> A=[4。 -1。 3]。 >> dot_prod = sum(A'.*B>。 % 如果A是行数组则先做转置,再做内积

>> F=[2 5 -1]。 G=[0 1 -3]。 >> out_prod=F'*G。 % 二矩阵做外积 >> A=[2,5,1。 0,3,-1]。 >> B=[1,0,2。 -1,4,-2。 5,2,1]。 >> C=A*B % 矩阵相乘,注意二个矩阵的大小须相容 C = 2 22 -5 -8 10 -7 >> A=[2 1。 4 3]。 >> A^2 % 矩阵次方 ans = 8 5 20 13 下面我们演示一个具体的例子。 假设我们把本地区的天气分为3种状态:晴,阴,雨。若今天天阴,则明天天晴的概率为1/2,阴的概率为1/4,下雨的概率为1/4。如果今天天阴,或者今天下雨,则明天天气是其它情况的概率会是其它的值,将这些概率值列入下面的表中。 天气状态转移概率表 2行第3列(最后一列>的值为1/2,,这给出了今天下雨明天转阴的概率。 将上表内的概率数据用矩阵A表示 矩阵A中概率称为转移概率,矩阵A称为转移矩阵。 已知今天天气晴、阴、雨的概率,可以用转移矩阵A提供的数据来计算明天天气晴、阴 、雨的概率。记、、分别为今天天气是晴、阴、雨的概率,、、分别为明

matlab中矩阵基本运算命令.docx

1.1矩阵的表示 1.2矩阵运算 1.2.14特殊运算 1.矩阵对角线元素的抽取 函数diag 格式X = diag(v,k)% 以向量 v 的元素作为矩阵 X 的第 k 条对角线元素,当 k=0 时, v 为 X 的主对角线;当 k>0 时,v 为上方第 k 条对角线;当 k<0 时, v 为下方第 k 条对角线。 X = diag(v)% 以 v 为主对角线元素,其余元素为 0 构成 X。 v = diag(X,k)%抽取 X 的第 k 条对角线元素构成向量 v。k=0:抽取主对角线元素; k>0 :抽取上方第 k 条对角线元素;k<0 抽取下方第 k 条对角线元素。 v = diag(X)% 抽取主对角线元素构成向量 v。 2.上三角阵和下三角阵的抽取 函数tril% 取下三角部分 格式L = tril(X)%抽取 X 的主对角线的下三角部分构成矩阵L L = tril(X,k)% 抽取 X 的第 k 条对角线的下三角部分; k=0 为主对角线; k>0 为主对角线以上; k<0 为主对角线以下。 函数triu% 取上三角部分 格式U = triu(X)%抽取 X 的主对角线的上三角部分构成矩阵U U = triu(X,k)% 抽取 X 的第 k 条对角线的上三角部分; k=0 为主对角线; k>0 为主对角线以上; k<0 为主对角线以下。3.矩阵的变维 矩阵的变维有两种方法,即用“:”和函数“reshape,”前者主要针对 2 个已知维数矩阵之间的变维操作;而后者是对 于一个矩阵的操作。 (1)“:”变维 (2)Reshape 函数变维 格式 B = reshape(A,m,n)%返回以矩阵 A 的元素构成的 m×n 矩阵 B B = reshape(A,m,n,p,)% 将矩阵 A 变维为 m×n×p× B = reshape(A,[m n p])%同上 B = reshape(A,siz)% 由 siz 决定变维的大小,元素个数与 A 中元素个数 相同。 (5)复制和平铺矩阵 函数repmat 格式 B = repmat(A,m,n)% 将矩阵 A 复制 m×n 块,即 B 由 m×n 块 A 平铺而成。 B = repmat(A,[m n])%与上面一致 B = repmat(A,[m n p]) %B 由 m×n×p× 个 A 块平铺而成 repmat(A,m,n)%当 A 是一个数 a 时,该命令产生一个全由 a 组成的 m×n 矩阵。 1.3矩阵分解 1.3.1Cholesky 分解 函数chol 格式R = chol(X)% 如果 X 为 n 阶对称正定矩阵,则存在一个实的非奇异上三角阵R,满足 R'*R = X ;若 X 非正定,则产生错误信息。 [R,p] = chol(X)% 不产生任何错误信息,若X 为正定阵,则p=0 ,R 与上相同;若X 非正定,则p 为正整数, R 是有序的上三角阵。 1.3.2 LU 分解

Matlab 矩阵运算

Matlab 矩阵运算 说明:这一段时间用Matlab做了LDPC码的性能仿真,过程中涉及了大量的矩阵运算,本文记录了Matlab中矩阵的相关知识,特别的说明了稀疏矩阵和有限域中的矩阵。Matlab的运算是在矩阵意义下进行的,这里所提到的是狭义上的矩阵,即通常意义上的矩阵。 目录 第一部分:矩阵基本知识 一、矩阵的创建 1.直接输入法 2.利用Matlab函数创建矩阵 3.利用文件创建矩阵 二、矩阵的拆分 1.矩阵元素 2.矩阵拆分 3.特殊矩阵 三、矩阵的运算 1.算术运算 2.关系运算 3.逻辑运算 四、矩阵分析 1.对角阵 2.三角阵 3.矩阵的转置与旋转 4.矩阵的翻转 5.矩阵的逆与伪逆 6.方阵的行列式 7.矩阵的秩与迹 8.向量和矩阵的范数 9.矩阵的特征值与特征向量 五、字符串 六、其他 第二部分矩阵的应用 一、稀疏矩阵

1.稀疏矩阵的创建 2.稀疏矩阵的运算 3.其他 二、有限域中的矩阵 内容 第一部分:矩阵基本知识(只作基本介绍,详细说明请参考Matlab帮助文档) 矩阵是进行数据处理和运算的基本元素。在MATLAB中 a、通常意义上的数量(标量)可看成是”1*1″的矩阵; b、n维矢量可看成是”n*1″的矩阵; c、多项式可由它的系数矩阵完全确定。 一、矩阵的创建 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]“内; b、矩阵的同行元素之间用空格(或”,”)隔开; c、矩阵的行与行之间用”;”(或回车符)隔开; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 下面介绍四种矩阵的创建方法: 1、直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b 是生成向量的第一个和最后一个元素,n是元素总数。可以看出来linspace(a, b,n)与a:(b-a)/(n-1):b等价。 2、利用MATLAB函数创建矩阵 基本矩阵函数如下: (1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones (m,n):产生m*n维的全1矩阵; (2) zeros()函数:产生全为0的矩阵; (3) rand()函数:产生在(0,1)区间均匀分布的随机阵; (4) eye()函数:产生单位阵; (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。 3、利用文件建立矩阵 当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要

(完整word版)矩阵的运算程序(C语言版)

#include #define M 20 #define N 20 float A[M][N]; float B[M][N]; float C[M][N]; int i,j,m,n,p,q; float y=1.0; void main() { printf(" ###########################################\n"); printf(" ##### 欢迎您使用矩阵函数包系统。 ######\n"); printf(" ##### 系统功能: ######\n"); printf(" ##### 计算两个矩阵相加,相减; ######\n"); printf(" ##### 数乘矩阵;矩阵转置;求逆 ######\n"); printf(" ##### 矩阵 ######\n"); printf(" ###########################################\n"); printf("请选择您需要的运算,按回车键结束\n"); printf("************************************************************* *****\n"); printf("1,矩阵相加\n"); printf("2,矩阵相减\n"); printf("3,数乘矩阵\n"); printf("4,矩阵转置\n"); printf("5,逆矩阵 \n"); printf("6,退出 \n"); printf("************************************************************* *****\n"); int x; scanf("%d",&x); switch (x) { case 1: { printf("请输入矩阵A的行数和列数(用逗号隔开):"); scanf("%d,%d",&i,&j); printf("请输入矩阵B的行数和列数(用逗号隔开):") ; scanf("%d,%d",&m,&n); if(i!=m||j!=n) printf("***对不起,您输入的两个矩阵不能相加,请重试.***\n"); else printf("请输入矩阵A:\n"); for(p=0;p

相关文档
最新文档