excel矩阵运算大全.docx

上传人:b****6 文档编号:8741700 上传时间:2023-05-14 格式:DOCX 页数:14 大小:145.08KB
下载 相关 举报
excel矩阵运算大全.docx_第1页
第1页 / 共14页
excel矩阵运算大全.docx_第2页
第2页 / 共14页
excel矩阵运算大全.docx_第3页
第3页 / 共14页
excel矩阵运算大全.docx_第4页
第4页 / 共14页
excel矩阵运算大全.docx_第5页
第5页 / 共14页
excel矩阵运算大全.docx_第6页
第6页 / 共14页
excel矩阵运算大全.docx_第7页
第7页 / 共14页
excel矩阵运算大全.docx_第8页
第8页 / 共14页
excel矩阵运算大全.docx_第9页
第9页 / 共14页
excel矩阵运算大全.docx_第10页
第10页 / 共14页
excel矩阵运算大全.docx_第11页
第11页 / 共14页
excel矩阵运算大全.docx_第12页
第12页 / 共14页
excel矩阵运算大全.docx_第13页
第13页 / 共14页
excel矩阵运算大全.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

excel矩阵运算大全.docx

《excel矩阵运算大全.docx》由会员分享,可在线阅读,更多相关《excel矩阵运算大全.docx(14页珍藏版)》请在冰点文库上搜索。

excel矩阵运算大全.docx

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)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2