excel矩阵运算大全.docx
- 文档编号:8741700
- 上传时间:2023-05-14
- 格式:DOCX
- 页数:14
- 大小:145.08KB
excel矩阵运算大全.docx
《excel矩阵运算大全.docx》由会员分享,可在线阅读,更多相关《excel矩阵运算大全.docx(14页珍藏版)》请在冰点文库上搜索。
excel矩阵运算大全
第1章Excel-矩阵的求逆、转置与相乘
1.1SUMSQ(A1,B1)A1和B1各自平方后求和
1.2TRANSPOSE函数
TRANSPOSE函数的功能是求矩阵的转置矩阵。
公式为
=TRANSPOSE(array)
式中,Array—需要进行转置的数组或工作表中的单元格区域。
函数TRANSPOSE必须在某个区域中以数组公式的形式输入,该区域的行数和列数分别与array的列数和行数相同。
步骤:
(1)选取存放转置矩阵结果的单元格区域。
(2)单击工具栏上的【粘贴函数】按钮,在【粘贴函数】对话框中选取函数TRANSPOSE,在该函数对话框中输入(可用鼠标拾取)单元格A2:
C5,按“Crtl+Shift+Enter”组合键,即得转置矩阵。
利用TRANSPOSE函数可以把工作表中的某些行(或列)排列的数据转换成列(或行)排列的数据。
例如,由于工作需要,要把工作表中的某些行数据改为列数据,若一个一个地改动数据,将是很麻烦也很费时的,而利用TRANSPOSE函数则可以很轻松地进行这项工作。
但需要注意的是,利用TRANSPOSE函数对行(列)数据进行转换,则无法单独修改其中转换单元格区域中的某单元格的数据。
1.3MINVERSE函数
MINVERSE函数的功能是返回矩阵的逆矩阵。
公式为
=MINVERSE(array)
式中,array—具有相等行列数的数值数组或单元格区域。
MINVERSE函数的使用方法与TRANSPOSE函数是一样的。
在求解线性方程组时,常常用到MINVERSE函数。
1.4MMULT函数
MMULT函数的功能是返回两数组的矩阵乘积。
结果矩阵的行数与array1的行数相同,列数与array2的列数相同。
公式为
=MMULT(array1‚array2)
式中 array1‚array2—要进行矩阵乘法运算的两个数组。
array1的列数必须与array2的行数相同,而且两个数组中都只能包含数值。
array1和array2可以是单元格区域、数组常数或引用。
如果单元格是空白单元格或含有文字串,或是array1的行数与array2的列数不相等时,则函数MMULT返回错误值#VALUE!
。
同样地,由于返回值为数组公式,故必须以数组公式的形式输入。
以例2-7的原矩阵和其转置矩阵为例,它们的乘积矩阵求解方法如下:
(1)选取存放乘积矩阵结果的单元格区域,如J2:
L5。
(2)单击工具栏上的【粘贴函数】按钮,在【粘贴函数】对话框中选取函数MMULT,在该函数对话框中的array1栏中输入(可用鼠标拾取)单元格区域A2:
C5,在array2栏中输入单元格区域E2:
H4,然后按“Crtl+Shift+Enter”组合键,即得矩阵的乘积。
第2章EXCEL矩阵运算归纳
2.1Excel快速生成单位矩阵
利用Excel计算投入产出表时,经常需要用到单位矩阵,手工输入十分不便。
下面以Excel2007为例,介绍如何运用函数快速生成单位矩阵。
1.
应用R1C1引用样式。
Excel的列号默认用字母ABC…….表示,想要找到需用的列,还要进行26进制转换,十分不方便。
选取Excel选项--公式,选中R1C1引用样式,列号就以数字形式显示了。
2.
快速选取需要的区域。
按下F5键,会弹出“定位”功能窗口,输入“R1C1:
R42C42”(表示选择从第1行1列到42行42列的所有单元格),单击确定,所需区域即被选中。
3.
利用IF函数自动生成单位矩阵。
直接输入“=if(row()=column(),1,0)”,然后按“Ctrl+Enter”,完成单位矩阵。
2.2矩阵运算
首先讲一下数组和矩阵的定义,Excel的数组、数组名和矩阵函数的设置:
矩阵不是一个数,而是一个数组。
在Excel里,数组占用一片单元域,单元域用大括号表示,例如{A1:
C3},以便和普通单元域A1:
C3相区别。
设置时先选定单元域,同时按Shift+Ctrl+Enter键,大括弧即自动产生,数组域得以确认。
一个单元格就是一个变量,一片单元域也可以视为一组变量。
为了计算上的方便,一组变量最好给一个数组名。
例如A={A1:
C3}、B={E1:
G3}等。
数组名的设置步骤是:
选定数组域,单击“插入”菜单,选择“名称”项中的“定义”命令,输入数组名,单击“确定”按钮即可。
更简单的命名办法为:
选择数组域,单击名称框,直接输入名称就行了。
矩阵函数是Excel进行矩阵计算的专用模块。
用“插入”-“函数”命令打开“粘贴函数”对话框(如图11),选中函数分类栏中的“数学与三角函数”,在右边栏常用的矩阵函数有:
MDETERM--计算一个矩阵的行列式;MINVERSE--计算一个矩阵的逆矩阵;MMULT--计算两个矩阵的乘积;SUMPRODUCT--计算所有矩阵对应元素乘积之和。
其次介绍一下矩阵的基本计算:
数组计算和矩阵计算有很大的区别,比如下面这个例子中,A和B都是定义好的数组,因为这两个数组都是3×3的,输出结果也是3×3个单元格。
计算时先选定矩阵计算结果的输出域,为3×3的单元格区域,然后输入公式。
如果输入“=A+B”或“=A-B”,计算结果是数组对应项相加或相减,输入“=A*B”表示数组A和B相乘,输入“=A/B”表示数组A除数组B。
如果要进行矩阵计算,就要用到相应的矩阵函数。
矩阵相加、相减与数组的加减表达形式是一样的,也是“=A+B”和“=A-B”,表示矩阵相乘可以输入“=MMULT(A,B)”,而矩阵相除是矩阵A乘B的逆矩阵,所以计算公式是“=MMULT(A,MINVERSE(B))”。
公式输入后,同时按Shift+Ctrl+Enter键得到计算结果。
对于更复杂的矩阵计算,可以采用分步计算。
2.3矩阵计算的应用举例
在测量平差过程中,有大多数精力用在矩阵的运算上,只要解决了矩阵求逆的计算,测量平差也并不是很复杂的过程,现在我们就介绍利用大家经常使用的办公软件Excel进行矩阵的求逆计算,示例中使用的是3×3的矩阵,实际工作中对于多阶矩阵,对Excel来说也是小菜一碟:
1、输入待求逆矩阵,如下图:
2、在空白区选择一存放逆矩阵的区域,与待求逆矩阵大小相同,如下图:
3、保持该区域为选中状态,在公式输入栏输入公式“Minverse(a1:
c3)”,并按“Ctrl+Shift+Enter”,特别注意,不能直接回车键,必须在按住“Ctrl”“Shift”后再按回车键,如下图:
4、逆矩阵,如下图:
Excel中的矩阵相乘函数为:
mmult(),具体使用方法请查阅帮助。
5、综合算例
A1
A2=transpose(A1)
1
1
2
3
4
5
6
7
8
9
10
11
12
13
2
1
0
1
2
3
4
5
6
7
8
9
10
11
12
3
2
1
0
0
1
2
3
4
5
6
7
8
9
10
11
4
3
2
1
0
0
0
1
2
3
4
5
6
7
8
9
10
5
4
3
2
1
0
0
0
0
1
2
3
4
5
6
7
8
9
6
5
4
3
2
1
0
0
0
0
0
1
2
3
4
5
6
7
8
7
6
5
4
3
2
1
0
0
0
0
0
0
1
2
3
4
5
6
7
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
1
2
3
4
5
6
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
1
2
3
4
5
10
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
1
2
3
4
11
10
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
0
1
2
3
12
11
10
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
0
0
1
2
13
12
11
10
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
0
0
0
1
I=IF(ROW()=COLUMN()+15,1,0)
0=0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
A
b
x
bb
2
2
3
4
5
6
7
8
9
10
11
12
13
2
1
2
2
2
2
3
4
5
6
7
8
9
10
11
12
3
1.5
3
A=A1+A2
系数
3
2
2
2
3
4
5
6
7
8
9
10
11
4
1.3
4
4
3
2
2
2
3
4
5
6
7
8
9
10
5
1.3
5
x=b/A
求解
5
4
3
2
2
2
3
4
5
6
7
8
9
6
1.2
6
6
5
4
3
2
2
2
3
4
5
6
7
8
7
1.2
7
bb=A*x
验证
7
6
5
4
3
2
2
2
3
4
5
6
7
8
1.1
8
8
7
6
5
4
3
2
2
2
3
4
5
6
9
1.1
9
9
8
7
6
5
4
3
2
2
2
3
4
5
10
1.1
10
10
9
8
7
6
5
4
3
2
2
2
3
4
11
1.1
11
11
10
9
8
7
6
5
4
3
2
2
2
3
12
1.1
12
12
11
10
9
8
7
6
5
4
3
2
2
2
13
1.1
13
13
12
11
10
9
8
7
6
5
4
3
2
2
14
1.1
14
A1+transpose(A1)
2
2
3
4
5
6
7
8
9
10
11
12
13
2
2
2
3
4
5
6
7
8
9
10
11
12
3
2
2
2
3
4
5
6
7
8
9
10
11
4
3
2
2
2
3
4
5
6
7
8
9
10
5
4
3
2
2
2
3
4
5
6
7
8
9
6
5
4
3
2
2
2
3
4
5
6
7
8
7
6
5
4
3
2
2
2
3
4
5
6
7
8
7
6
5
4
3
2
2
2
3
4
5
6
9
8
7
6
5
4
3
2
2
2
3
4
5
10
9
8
7
6
5
4
3
2
2
2
3
4
11
10
9
8
7
6
5
4
3
2
2
2
3
12
11
10
9
8
7
6
5
4
3
2
2
2
13
12
11
10
9
8
7
6
5
4
3
2
2
第3章
nxn方阵对应行列式的值
第二步,选中A4单元格,在“插入”菜单中选中“函数”菜单项:
第三步,在打开的“函数”对话框中,选中“MDETERM”函数如图2,并按“确定”按钮:
第四步,在弹出的对话框中输入矩阵所在的地址,按确定即得到行列式的值。
矩阵求和
已知
第二步,在A5单元格中输入公式:
=A1+El,按回车,这时A5中显示数字7;
第三步,选中A5单元格,移动鼠标至其右下角,鼠标形状变为黑色十字时,按下鼠标左键往右拖至C5,B5和C5中分别显示一3.3。
同样的方法选中A5:
C5,往下拖至A7:
C7,便得到A+B的值。
矩阵求逆
第一步,在A1:
C3中输入矩阵A;
第二步。
选中A5:
C7,“插入”→“函数”→“MINVERSE”→“确定”:
第三步,在“array”项中输入A1:
C3,按F2,同时按CTRL+SHIFF+ENTER即可如图6。
5 矩阵转置
第一步,在Al:
C3中输入矩阵A,并选中;
第二步,“编辑”→“复制”;
第三步,选中A5,“编辑”→“选择性粘贴”→“转置”→确定”。
矩阵求秩
6.1矩阵秩的概念
定义设A是mxn矩阵,从A中任取k行k列(k≤min(m,n)),由这些行、列相交处的元素按原来的次序所构成的阶行列式,称为矩阵A的一个k阶子行列式,简称k阶子式。
定义矩阵A的所有不为零的子式的最高阶数r称为矩阵A的秩,记作r(A),即r(A)=r。
6.2矩阵秩的数学求法
6.2.1行列式法:
即定义从矩阵的最高阶子式算起,计算出不等于零的子式的最高阶数r,此r即为该矩阵的秩。
6.2.2行初等变换法:
用初等行变换化矩阵为阶梯形矩阵,此阶梯形矩阵非零行的行数r就是该矩阵的秩。
6.3利用EXCEL求矩阵秩
方法一,根据矩阵秩的定义,可以求所有不为零子式的最高阶数。
求矩阵A的秩.
显然A是4x4矩阵,4为其所有子式的最高阶数。
先求IAI的值,若|A|不为零,则矩阵A的秩为4。
若|A|为零,求所有阶数为3的子式的值。
若存在阶数为3的子式的值不为零,则矩阵A的秩为3,否则继续求所有阶数为2的子式的值,依次类推。
步骤如下:
第一步,按照上面所介绍利用EXCEL求矩阵行列式的方法求|A|的值
IAI=0.则说明该矩阵的秩小于4;
第二步,取第二、三、四行,第一、二、四列,位于这些行、列相交处的元素所构成的三阶行列式
方法二,从解方程组的角度去求矩阵的秩
若A是满秩的,则齐次方程组AX=0只有零解,否则就有非零解。
从这一思想出发可以得出另外一种求矩阵秩的方法。
在讲这个方法之前。
我们先介绍用EXCEL去解方程组。
然后利用EXCEL提供的“规划求解”功能,求得的结果就是线性方程组的解。
下面是就如何在“规划求解”过程中得到矩阵A的秩给出具体的步骤。
其步骤是:
第一步,用“规划求解”工具解线性方程组AX=O,如果在“规划求解结果”中出现提示“[设置目标单元格]的值未收敛”,则表示A的秩<n,也即齐次方程组有非零解。
则转入第二步。
否则停止计算:
第二步,在“规划求解结果”中选“恢复为原值”,然后在“规划求解参数”中增设约束之后再转第一步;
第一步,以所给矩阵作为系数矩阵A,用刚才所说的方法求解齐次方程组AX=O,结果提示“[设置目标单元格]的值未收敛”。
第二步,恢复为原值后,增设约束X4=-1,再用方法2求解,结果提示仍然是“[设置目标单元格]的值未收敛”。
第三步,再恢复为原值,再增设约束x3=1,用方法2求解,提示为“规划求解找到一解,可满足所有约束及最优状况”。
则A的秩r(A)=2,此时X的存放区域中的数值0,1,1,-1就是使A的列向量的线性组合为0的组合系数.即线性代数教材中的λ1,λ2,λ3,λ4。
如果仅仅是检查一个n阶矩阵是否满秩,采用矩阵运算的求逆就要方便得多。
矩阵乘积
当矩阵很大并且乘积矩阵数目很多的时候,人工求其乘积工作量会很大,如果不细心很容易出错,所以找到一种利用计算机去计算矩阵乘积就显得非常必要。
也有很多计算机爱好者用编程的方法去实现,也是不错的方法,但是编程也要一定的时间,我们不如直接利用EXCEL提供的函数直接去求来得快捷和方便。
在EXCEL中有专门用于矩阵乘积的函数MMULIT(arrayl,array2,>),可以比较快速地得到两个矩阵的乘积矩阵。
第一步,分别在A1:
C3区域和E1:
G3区域中输入A和B如图7:
第二步,选中A5:
C7区域,“插入”→“函数”→“MMULT”;
第三步,在arrayl中输入A1:
C3,在array2中输入E1:
G3;
第四步,按F2进入“编辑”状态,同时按下CTRL+SHIFT+ENTER即可得到AB如图7。
矩阵特征向量和特征值
设A是n阶矩阵,如果存在数入及非零的n维向量X,使得
AX=λX (7.1)
成立,就称入是矩阵A的特征值,X是矩阵A属于特征值λ的一个特征向量。
如何求λ的值,由(7.1)可推出
|A-λE|=0 (7.2)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- excel 矩阵 运算 大全