本栏目责任编辑:谢媛媛 开发研究与设计技术
1引言
求矩阵的特征值和特征向量是一个既基础又重要的数值计
算问题。通常我们可以用编写高级语言程序的方法加以解决,也
可以使用专门的数学软件(如MATLAB等)来实现。本文给出的用
Excel实现求矩阵的特征值和特征向量的方法,既不需要设计程
序,也不需要专门的数学软件,只须在 Excel中进行简单操作,就
可以快速、直观地得到实矩阵的特征值和特征向量,且计算结果
具有较高的精度。
2在 Excel中利用数组公式和数组常量建立并命
名矩阵
在Excel中,可以在一个单元格区域内通过逐个输入矩阵的
各个元素来建立矩阵,还可以使用数组公式和数组常量更加方便
地建立矩阵[1]。例如,可以通过下列操作建立矩阵:
(1)在Excel的工作表Sheet1中,选择单元格区域A1:D4;
(2)输入公式:={2,-1,0,0;-1,2,-1,0;0,-1,2,-1;0,0,-1,2}(顺便指
出:在 Excel的数组公式中,将矩阵元素用大括号{}括起来称为数
组常量,其中不同列的元素用逗号隔开,不同行的元素用分号隔
开。参见文献[1]);
(3)按 Ctrl+Shift+Enter键,结束数组公式的输入,形成图 1所
示的矩阵。
图1 图2
建立了矩阵之后,在Excel的数组公式中,就可以用矩阵所在
的单元格区域A1:D4表示该矩阵;但若将该矩阵命名为 A显然更
便于使用,也便于理解公式的含义,方法如下:
选择该矩阵所在的单元格区域A1:D4;单击编辑栏左端的“名
称”框,输入 A,按回车键确认,如图 2所示。此后,在当前工作薄
的所有工作表中,就可以使用名称 A在数组公式中代表该矩阵。
尤其需要指出的是:通过对矩阵命名,不仅能方便地实现跨工作
表引用单元格区域,而且更重要的是:在复制公式时,Excel将名
称(如A)按常量对待,所以更便于矩阵的运算和使用。类似地,我
们还可以在单元格区域 F1:I4中通过输入数组公式:{={1,0,0,0;0,
1,0,0;0,0,1,0;0,0,0,1}}建立4阶单位矩阵,并命名为I。
3利用Excel求矩阵的特征值
由于矩阵A的特征值 λ就是特征方程det(A-λI)的根,因此可
以利用Excel工具菜单中的“单变量求解”命令求矩阵的特征值。
例如,上述矩阵A在0.4附近的特征值的求解方法如下:
(1)在A6单元格中输入值0.4;
(2)在 B6单元格中输入公式:=MDETERM(A-A6*I)=0,其中
MDETERM为Excel提供的求矩阵行列式的函数;
(3)按 Ctrl+Shift+Enter键,形成数组公式:{=MDETERM(A-
A6*I)},于是B6单元格中的值0.1264即为特征多项式在 的值;
(4)单击“工具”菜单中的“单变量求解”命令,打开“单变量求
解”对话框;
(5)在“目标单元格(E)”中输入或选择 B6,在“目标值(V)”中
输入0,在“可变单元格(C)”中输入或选择A6;
(6)单击“确定”按钮。
此时,A6单元格中的值 0.381966011就是矩阵 A在 0.4附近
特征值的近似值(顺便指出:在 Excel“选项”对话框的“重新计算”
选项卡中,通过设置“迭代计算”栏还可控制计算精度)。
4求特征值对应的特征向量
在此我们介绍如何利用数值计算中的逆幂法[2],求特征值所
对应的特征向量。所谓逆幂法,就是取A的特征值 λi的一个近似
值 λ,并取非零初始向量X0,按迭代公式:
(其中符号‖·‖∞代表向量的按模最大分量,即 )
进行迭代,当相邻两次迭代,Xk-1,Xk近似成比例时,则 Xk即为矩
阵A对应于特征值 λi的近似特征向量。
例如,为求上例矩阵 A的特征值 λ=0.381966011对应的特征
向量,我们取近似特征值为 0.38,并取初始向量为(1,1,1,1),使用
逆幂法进行迭代可以在Excel中进行如下操作:
(1)在工作表Sheet2中,先在单元格区域 A1:A4中输入 1,1,1,1
收稿日期:2007-02-02
基金项目:河南高等教育改革研究项目;河南师范大学精品网络课程建设经费资助项目
作者简介:杨明波(1957-),男,副教授,主要从事数值解法研究。
Excel中矩阵的命名与特征值特征向量的计算
杨明波,卢建立
(河南师范大学 数学与信息科学学院,河南 新乡 453007)
摘要:给出了在Excel中计算矩阵的特征值和特征向量的方法,该方法简单、直观,不需要设计程序,也不需要专门的数学软件。
关键词:Excel;特征值;特征向量;数值计算
中图分类号:TP317 文献标识码:A 文章编号:1009-3044(2007)05-11295-02
NamingMatrixandCalculatingEigenvaluesandEigenvectorsofMatrixinExcel
YANGMing-bo,LUJian-li
(CollegeofMathematicsandInformationScience,HenanNormalUniversity,Xinxiang453007,China)
Abstract:ThispaperintroducesthesimpleanddirectmethodsofcalculatingeigenvaluesandeigenvectorsofmatrixbyExcel.Youdidn't
needmakeprogramsaswellasusespecialmathematicalsoftwarebyusethismethods.
Keywords:Excel;eigenvalues;eigenvectors;numericalcalculation
1295
本栏目责任编辑:谢媛媛开发研究与设计技术
电脑知识与技术
(上接第1273页)
Reflection技术中提供的Method类进行动态调用,即可为该类中
的属性动态赋值,或者动态获取属性值。
(4)动态产生数据库操作语句
对 XML文件进行解析后,即可得到表中的字段名称以及表
名称,与动态解析后的类对象一起,共同产生标准的数据库操作
语句:Insert,Delete,Update。在产生各种数据库操作语句时,需要
注意一些细节问题,对于一个 Java类对象,应该对应数据表中的
一条记录。也就是说数据表中一条记录中的所有字段,都必须在
对象中有相应的属性出现,反之则不用这么做,只要把握这个原
则,在产生数据库操作语句时就会非常容易。对于Insert语句可以
通过以下几个步骤完成:
解析 XML后通过表字段产生 Insert语句的前端:Insertinto
表名 (字段列表)values()
通过对Java对象的动态解析即可获取字段的对应值,把对应
值填写在Values关键字的后面括号中,但必须与字段对应
对于 Delete语句和 Update语句产生的方法是相同的,唯一
的不同就是带有了条件语句where子句。
(5)产生Select语句
对于 Select语句,必须将其作为单独的一个功能进行处理,
因为查询往往分为单条记录查询和多条记录查询。对于单条记录
查询的 Select语句,只要通过一个带有主键的 Java类对象,就像
产生Insert,Delete,Update语句一样容易
然而,对于多条记录查询的 Select语句,因为这种语句带有
不同的查询条件,所以必须列为单独的一个功能进行考虑,这里
可以给出两种解决
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
:通过直接提供 SQL条件语句的方式,这
种方式不能够达到完全封装数据库操作的效果;通过使用 Java对
象建立自己的查询语句,如查询所有姓李的学生,其对象查询条
件可以是:FromStudentWherestu_namelike‘李%’,把这个对象
查询语句提交给数据库操作类后,需要有一个对对象查询类进行
解析的类,其作用就是将对象查询语句解析为标准的数据库查询
语句,这种方式可以达到完全封装数据库操作的目的。
(6)对象查询解析类的基本思路
对象查询语句的解析,首先需要自定义出查询语句的关键
字,以及必要的查询语句格式,最简单的方式就是使用标准 SQL
语句的关键字作为对象查询的关键字,这样对查询语句的解析带
来方便,使得解析对象查询语句变得非常简单。这里需要注意,对
象查询语句中不需要提供 Select关键字,只需要从 From子句开
始就可以了,这是因为对象查询语句始终查询的是一条记录的所
有字段内容,也就是说查询的是完整的一个对象。
对象查询语句的格式定义:
From类名 where条件
其解析步骤描述如下:
提取查询的类名以及查询所依赖的条件
获取XML文件的解析结果
从XML的解析结果中,依据类名查找其对应的数据库表名称
检索条件,将对象的属性提取出来
从XML的解析结果中获取对应表的字段
把条件中属性所对应的表字段提取出来
对条件语句进行替换,把属性替换为对应的表字段,其条件
值保持不变化
根据以上操作结果将查询语句按照标准 SQL语句格式进行
重新组合
3结论
XML数据映射技术对数据库中表与 Java类的映射以及数据
库的封装操作具有较高的操作安全性,对于那些不必要的操作,必
须通过封装后的相关映射来访问,在前段的程序是无法直接访问
的,这样大大提高了数据库的安全性。另一方面,该技术不但能够
提高数据库的安全性,而且大大简化了数据访问的操作程序,提高
了项目的开发效率。而该技术对环境要求比较简单,只要能够运行
Java、XML便能应用,因此,从目前数据库技术的发展来看,XML的
数据映射技术具有极大的使用价值以及广泛的应用领域。
参考文献:
[1]肖刚.JavaWeb服务器应用程序设计[M].电子工业出版社,
2001.
[2]孙鑫.JavaWeb开发详解:XML+XSLT+Servlet+JSP深入剖
析与实例应用[M].电子工业出版社,2006.
[3]吴洁.XML应用教程[M].清华大学出版社,2005.
形成初始向量X0;
(2)选择单元格区域 B1:B4,输入公式:=MMULT(MINVERSE
(A-0.38*I),A1:A4),按 Ctrl+Shift+Enter键,形成数组公式计算出
Y1(注:其中 MINVERSE,MMULT分别为 Excel提供的计算逆矩
阵和计算两个矩阵乘积的函数);
(3)在 B5单元格中输入公式:=MAX(ABS(B1:B4)),按 Ctrl+
Shift+Enter键,形成数组公式计算出‖Y1‖∞;
(4)选择单元格区域 C1:C4,输入公式:=B1:B4/B5,按 Ctrl+
Shift+Enter键,形成数组公式计算出逆幂法迭代一次后的向量
X1=(0.618321,1,1,0.618321);
(5)选择B1:C5单元格区域,向右拖动 C5右下角的填充柄,即
得逆幂法的迭代序列,如下图:
从上图可以看出:用逆幂法迭代 3次,可得 A的对应于近似
特 征 值 λ=0.381966011的 近 似 特 征 向 量 为(0.618033989,1,1,
0.618033989)。若与 A的相应精确特征值 λ=2-2cos(π/5)=
0.3819660112⋯和特征向量(sin(π/5)/sin(2π/5),1,1,sin(π/5)/sin(2π/
5))=(0.6180339887⋯,1,1,0.6180339887⋯)相比较,显然已具有较
高的精度。
5结束语
开发 Excel的强大计算功能用于求解数值计算问题 [3,4],既
不需要设计程序,也不需要专门的数学软件,而且计算精度控制
方便,操作简单,同时注意到Excel软件在各类计算机上随处可
见,这不仅为课堂教学,而且也为解决
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
计算问题提供了极大
的便利。
参考文献:
[1]卢秋根.中文版 Office应用基础教程[M].上海:上海科学普
及出版社,2005年9月第1版,151-152.
[2]李庆杨,王能超,易大义.数值分析[M].北京:清华大学出
版社,2001年8月第4版,308-312.
[3]彭海静.基于 Excel求高次方程的解[J].计算机应用与软
件,2006,23(2):142-144.
[4]杨明波,卢建立.在 Excel中实现用牛顿法求解非线性方
程组[J].电脑学习,2006,4,62-63.
1296