1、 项目六 矩阵的特征值与特征向量 实验1 求矩阵的特征值与特征向量 实验目的 学习利用Mathematica(4.0以上版本)命令求方阵的特征值和特征向量;能利用软件计算方 阵的特征值和特征向量及求二次型的标准形. 求方阵的特征值与特征向量. 例1.1 (教材 例1.1) 求矩阵的特征值与特值向量. (1) 求矩阵A的特征值. 输入 A={{-1,0,2},{1,2,-1},{1,3,0}} MatrixForm[A] Eigenvalues[A] 则输出A的特征值 {-1,1,1} (2) 求矩阵A的特征向量. 输入
2、 A={{-1,0,2},{1,2,-1},{1,3,0}} MatrixForm[A] Eigenvectors[A] 则输出 {{-3,1,0},{1,0,1},{0,0,0}} 即A的特征向量为 (3) 利用命令Eigensystem同时矩阵A的所有特征值与特征向量. 输入 A={{-1,0,2},{1,2,-1},{1,3,0}} MatrixForm[A] Eigensystem[A] 则输出矩阵A的特征值及其对应的特征向量. 例1.2 求矩阵的特征值与特征向量. 输入 A=Table[i+j,{i,3},{j,3}] MatrixF
3、orm[A] (1) 计算矩阵A的全部(准确解)特征值, 输入 Eigenvalues[A] 则输出 {0, ,} (2) 计算矩阵A的全部(数值解)特征值, 输入 Eigenvalues[N[A]] 则输出 {12.4807, -0.480741, -1.3483} (3) 计算矩阵A的全部(准确解)特征向量, 输入 Eigenvectors[A]//MatrixForm 则输出 (4) 计算矩阵A的全部(数值解)特征向量, 输入 Eigenvector
4、s[N[A]]//MatrixForm
则输出
(5) 同时计算矩阵A的全部(准确解)特征值和特征向量, 输入
OutputForm[Eigensystem[A]]
则输出所求结果
(6) 计算同时矩阵A的零空间, 输入
NullSpace[A]
则输出
{{1,-2,1}}
(7) 调入程序包< 5、Normalize[ ]:将向量组单位化;
Projection[vect1,vect2]:求从向量组vect1到vect2的正交映射.
输入
< 6、1,1,0},{-1,-1,1}{1,1,2}}
{{-1,0,9},{{-1,1,0},{-1,-1,1}{1,1,2}}}
例1.4 (教材 例1.2) 求矩阵的特征值和特征向量的近似值.
输入
A={{1/3,1/3,-1/2},{1/5,1,-1/3},{6,1,-2}};
Eigensystem[A]
则屏幕输出的结果很复杂,原因是矩阵的特征值中有复数且其精确解太复杂.此时,可采用
近似形式输入矩阵,则输出结果也采用近似形式来表达.
输入
A={{1/3,1/3,-1/2},{1/5,1,-1/3},{6.0,1,-2}};
Eigensystem[A]
7、则输出
{{-0.748989+1.27186i,-0.748989-1.27186i,0.831311},
{{0.179905+0.192168i,0.116133+0.062477I,0.955675+0.i},聞創沟燴鐺險爱氇谴净。
{0.179905-0.192168i,0.116133-0.062477i,0.955675+0.i},残骛楼諍锩瀨濟溆塹籟。
{-0.0872248,-0.866789,-0.490987}}}
从中可以看到有两个复特征值与一个实特征值.属于复特征值的特征向量也是复的;属于实
特征值的特征向量是实的.
例1.5 (教材 例1.3) 已知2 8、是方阵的特征值,求.
输入
Clear[A,q];
A={{2-3,0,0},{-1,2-t,-3},{-1,-2,2-3}};
q=Det[A]
Solve[q==0,t]
则输出
{{t8}}
即当时,2是方阵的特征值.
例1.6 (教材 例1.4) 已知是方阵的一个特征向量,求参数及特征向量所属的特征值.
设所求特征值为,输入
Clear[A,B,v,a,b,t];
A={{t-2,1,-2},{-5,t-a,-3},{1,-b,t+2}};
v={1,1,-1};
B=A.v;
Solve[{B[[1]]==0,B[[2]]==0,B[[3]]== 9、0},{a,b,t}]
则输出
{{a-3, b0, t-1}}
即时,向量是方阵的属于特征值-1和特征向量.
矩阵的相似变换
例1.7 (教材 例1.5) 设矩阵,求一可逆矩阵,使为对角矩阵.
方法1 输入
Clear[A,P];
A={{4,1,1},{2,2,2},{2,2,2}};
Eigenvalues[A]
P=Eigenvectors[A]//Transpose
则输出
{0,2,6}
{{0,-1,1},{-1,1,1},{1,1,1}}
即矩阵A的特征值为0,2,6.特征向量为,与,矩阵.
可验证为对角阵, 事实上,输入
In 10、verse[P].A.P
则输出
{{0,0,0},{0,2,0},{0,0,6}}
因此,矩阵在相似变换矩阵的作用下,可化作对角阵.
方法2 直接使用JordanDecomposition命令, 输入
jor=JordanDecomposition[A]
则输出
{{{0,-1,1},{-1,1,1},{1,1,1}},{{0,0,0},{0,2,0},{0,0,6}}}酽锕极額閉镇桧猪訣锥。
可取出第一个矩阵和第二个矩阵,事实上,输入
jor[[1]]
jor[[2]]
则输出
{{0,-1,1},{-1,1,1},{1,1,1}}
{{0,0,0},{0,2, 11、0},{0,0,6}}
输出结果与方法1的得到的结果完全相同.
例1.8 方阵是否与对角阵相似?
输入
Clear[A];
A={{1,0},{2,1}};
Eigensystem[A]
输出为
{{1,1},{{0,1}{0,0}}}
于是,1是二重特征值,但是只有向量{0,1}是特征向量,因此,矩阵A不与对角阵相似.
例1.9 (教材 例1.6) 已知方阵与相似, 求.
注意矩阵是对角矩阵,特征值是.又矩阵是分块下三角矩阵,-2是矩阵的特
征值.矩阵与相似,则,且-1,2也是矩阵的特征值.
输入
Clear[c,v];
v={{4,0,0},{-2, 12、2-x,-2},{-3,-1,1}};
Solve[Det[v]==0,x]
则输出
{{x0}}
所以,在题设条件,,.
例1.10 对实对称矩阵,求一个正交阵,使为对角阵.
输入
< 13、
再输入
P=GramSchmidt[Eigenvectors[A]]//Transpose
输出为已经正交化和单位化的特征向量并且经转置后的矩阵
为了验证是正交阵,以及是对角阵,输入
Transpose[P].P
Inverse[P].A.P//Simplify
Transpose[P].A.P//simplify
则输出
{{1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1}}
{{-1,0,0,0},{0,-1,0,0},{0,0,2,0},{0,0,0,2}}
{{-1,0,0,0},{0,-1,0,0},{0,0,2,0},{0,0, 14、0,2}}
第一个结果说明,因此是正交阵;第二个与第三个结果说明
例1.11 求一个正交变换,化二次型为标准型.
二次型的矩阵为
这恰好是例1.10的矩阵, 因此,用例1.10中的正交矩阵,作正交变换,即
将化作标准型.输入
f=Table[x[j],{j,4}].A.Table[x[j],{j,4}]//Simplify
则输出
2(x[2]x[3]+x[1](x[2]+x[3])+x[4]2)
这是原来的二次型.把上式中的x[1],x[2],x[3],x[4]用y[1],y[2],y[3],y[4]表示,输入代换命令彈贸摄尔霁毙攬砖卤庑。
f/ 15、Table[x[j](P.Table[y[j],{j,4}])[[j]],{j,4}]//
Simplify
则输出
-y[1]2-y[2]2 +2(y[3]2 +y[4]2)
这就是二次型的标准型.
例1.12 (教材 例1.7) 已知二次型
(1)求标准形; (2)求正惯性指数; (3)判断二次型是否正定.
输入
A={{1,1,-2},{1,-2,1},{-2,1,1}}
Eigenvalues[A]
则输出矩阵A的特征值为
{-3,0,3}
所以二次型的标准形为;正惯性指数为1;该二次型不是正定的.
例1.13 (教材 例 16、1.8) 求正交变换将二次型
化为标准形.
输入
A={{1,1,0,-1},{1,1,1,0},{0,1,1,-1},{-1,0,-1,1}}
MatrixForm[A]
X={x1,x2,x3,x4};
Expand[X.A.X]
< 17、法解决一个实际问题,学习层次分析法的基本原理与方法;掌握用层次
分析法建立数学模型的基本步骤;学会用Mathematica解决层次分析法中的数学问题.
基本原理
层次分析法是系统分析的重要工具之一,其基本思想是把问题层次化、数量化, 并用数学
方法为分析、决策、预报或控制提供定量依据. 它特别适用于难以完全量化, 又相互关联、
相互制约的众多因素构成的复杂问题. 它把人的思维过程层次化、数量化,是系统分析的一中
新型的数学方法.
运用层次分析法建立数学模型, 一般可按如下四个基本步骤进行.
1.建立层次结构
首先对所面临的问题要掌握足够的信息, 搞清楚问题的范围、因素 18、各因素之间的相互
关系,及所要解决问题的目标. 把问题条理化、层次化, 构造出一个有层次的结构模型. 在这
个模型下,复杂问题被分解为元素的组成部分. 这些元素又按其属性及关系形成若干层次.层
次结构一般分三层:
第一层为最高层, 它是分析问题的预定目标和结果, 也称目标层;
第二层为中间层, 它是为了实现目标所涉及的中间环节, 如: 准则、子准则, 也称准则
层;
第三层为最底层, 它包括了为实现目标可供选择的各种措施、决策方案等, 也称方案层.
注:上述层次结构具有以下特点:(1) 从上到下顺序地存在支配关系, 并用直线段表示;(2)
整个层次结构中层次数不受 19、限制.
2.构造判断矩阵
构造判断矩阵是建立层次分析模型的关键. 假定以上一层的某元素为准则,它所支配
的下一层次的元素为,这个元素对上一层次的元素有影响,要确定它们在中的比重. 采用成对比较法. 即每次取两个元素和, 用表示与对的影响之比, 全部比较的结果可用矩阵表示,即謀荞抟箧飆鐸怼类蒋薔。
称矩阵为判断矩阵.
根据上述定义,易见判断矩阵的元素满足下列性质:
当时,我们称判断矩阵为正互反矩阵.
怎样确定判断矩阵的元素的取值呢?
当某层的元素对于上一层某元素的影响可直接定量表示时, 与对
的影响之比可以直接确定, 的值也可直接确定. 但对于大多数社会经济问题, 20、 特别是比较
复杂的问题, 元素与对的重要性不容易直接获得, 需要通过适当的量化方法来解决.
通常取数字1~9及其倒数作为的取值范围. 这是因为在进行定性的成对比较时, 通常采用
5级制(表1),在每两个等级之间各有一个中间状态, 共1~9个尺度, 另外心理学家认为进行成
对比较的因素太多, 将超出人们的判断比较能力, 降低精确. 实践证明, 成对比较的尺度以
为宜, 故的取值范围是及其倒数.
表1 比较尺度的取值
3.计算层次单排序权重并做一致性检验
层次单排序是指同一层次各个元素对于上一层次中的某个元素的相对重要性进行排序.
具体做法是: 根据同一层个元素对上一 21、层某元素的判断矩阵,求出它们对
于元素的相对排序权重,记为,写成向量形式, 称其为
的层次单排序权重向量, 其中表示第个元素对上一层中某元素所占的比重, 从而得到
层次单排序.
层次单排序权重向量有几种求解方法,常用的方法是利用判断矩阵的特征值与特征向
量来计算排序权重向量.
关于正互反矩阵A,我们不加证明地给出下列结果.
(1) 如果一个正互反矩阵满足
则称矩阵具有一致性, 称元素的成对比较是一致的; 并且称为一致矩阵.
(2) 阶正互反矩阵的最大特征根, 当时, 是一致的.
(3) 阶正互反矩阵是一致矩阵的充分必要条件是最大特征值 .
计算排序权重向量的方法 22、和步骤
设是阶判断矩阵的排序权重向量, 当为一致矩阵时, 根据
阶判断矩阵构成的定义,有
(2.1)
因而满足 这里是矩阵的最大特征根, 是相应的特征向量; 当为一般的
判断矩阵时, 其中是的最大特征值(也称主特征根), 是相应的特征向
量(也称主特征向量). 经归一化(即)后, 可近似作为排序权重向量, 这种方法称为
特征根法.
一致性检验
在构造判断矩阵时, 我们并没有要求判断矩阵具有一致性, 这是由客观事物的复杂性
与人的认识的多样性所决定的. 特别是在规模大、因素多的情况下, 对于判断矩 23、阵的每个元
素来说,不可能求出精确的, 但要求判断矩阵大体上应该是一致的. 一个经不起推敲
的判断矩阵有可能导致决策的失误. 利用上述方法计算排序权重向量, 当判断矩阵过于偏离
一致性时, 其可靠性也有问题. 因此,需要对判断矩阵的一致性进行检验, 检验可按如下步骤
进行:
(1) 计算一致性指标
(2.2)
当即时, 判断矩阵是一致的. 当的值越大, 判断矩阵A的不一致的程
度就越严重.
(2) 查找相应的平均随机一致性指标
表2给出了阶正互反矩阵的平均随机一致性指标, 其中数据采用了
100~15 24、0个随机样本矩阵计算得到.
表2
矩阵阶数
1
2
3
4
5
6
7
8
9
10
11
0
0
0.58
0.9
1.12
1.24
1.32
1.41
1.45
1.49
1.51
(3) 计算一致性比例
(2.3)
当时, 认为判断矩阵的一致性是可以接受的; 否则应对判断矩阵作适当修正.
4. 计算层次总排序权重并做一致性检验
计算出某层元素对其上一层中某元素的排序权重向量后, 还需要得到各层元素, 特别
是最底层中各方 25、案对于目标层的排序权重, 即层次总排序权重向量, 再进行方案选择. 层次
总排序权重通过自上而下地将层次单排序的权重进行合成而得到.
考虑3个层次的决策问题: 第一层只有1个元素, 第二层有个元素, 第三层有个元
素.设第二层对第一层的层次单排序的权重向量为
第三层对第二层的层次单排序的权重向量为
以为列向量构成矩阵:
(2.4)
则第三层对第一层的层次总排序权重向量为
(2.5)
一般地, 若层次模型共有层, 则第层对第一层的总 26、排序权重向量为
(2.6)
其中是以第层对第层的排序权向量为列向量组成的矩阵,是第层对第
一层的总排序权重向量. 按照上述递推公式, 可得到最下层(第层)对第一层的总排序权重
向量为
(2.7)
对层次总排序权重向量也要进行一致性检验. 具体方法是从最高层到最低层逐层进行
检验.
如果所考虑的层次分析模型共有层. 设第()层的一致性指标与随机一致性
指标分别为(是第层元素的数目)与, 令
(2.8)
(2.9)
则第l层对第一层的总 27、排序权向量的一致性比率为
(2.10)
其中为由(2.3)式计算的第二层对第一层的排序权重向量的一致性比率.
当最下层对第一层的总排序权重向量的一致性比率时, 就认为整个层次结构
的比较判断可通过一致性检验.
应用举例
问题 在选购电脑时, 人们希望花最少的钱买到最理想的电脑. 试通过层次分析法建立
数学模型,并以此确定欲选购的电脑.
1. 建立选购电脑的层次结构模型
图2-2
该层次结构模型共有三层:目标层(用符号表示最终的选择目标); 准则层(分别用符号
表示“性能”、“价格”、“质量”、“外观”、“售后服务”五个判断准则) 28、 方案层(分别用符号表示品牌1, 品牌2, 品牌3三种选择方案).厦礴恳蹒骈時盡继價骚。
2.构造成对比较判断矩阵
(1) 建立准则层对目标层的成对比较判断矩阵
根据表1的定量化尺度, 从建模者的个人观点出发, 设准则层对目标层的成对比较判断矩阵为
(2.11)
(2) 建立方案层对准则层的成对比较判断矩阵
3.计算层次单排序权重向量并做一致性检验
先利用Mathematica计算矩阵A的最大特征值及特征值所对应的特征向量.
输入
< 29、3,9,3},{1/5,1,1/2,2,1/2},{1/3,2,1,3,1},
{1/9,1/2,1/3,1,1/3},{1/3,2,1,3,1}};
(*以小数形式1.0输入进行近似计算, 可避免精确解太长、太复杂*)
T=Eigensystem[A]//Chop
(*输入//Chop, 把与零非常接近的数换成零*)
则输出
{{5.00974,Nonreal,Nonreal,0,0},
{{0.88126,0.167913,0.304926,0.0960557,0.304926},
{0.742882,Nonreal,Nonreal,Nonreal,Nonreal},
30、{0.742882,Nonreal,Nonreal,Nonreal,Nonreal},
{-0.993398,0,0.0673976,0.0662265,0.0650555},
{-0.65676,0,0.57431,0.043784,-0.486742}}}
(输出中的Nonreal表示复数)
从中得到A的最大特征值及其对应的特征向量
输入
Clear[x];
x=T[[2,1]];
ww2=x/Apply[Plus,x]
则得到归一化后的特征向量
计算一致性指标,其中 故
查表得到相应的随机一致性指标
从而得到一致 31、性比率
因 通过了一致性检验,即认为的一致性程度在容许的范围之内, 可以用归一
化后的特征向量作为排序权重向量.
下面再求矩阵的最大特征值及特征值所对应的特征向量, 输入
B1=B3={{1.0,1/3,1/5},{3,1,1/2},{5,2,1}};
B2=Transpose[B1];
B4={{1.0,5,3},{1/5,1,1/2},{1/3,2,1}};
B5={{1.0,3,3},{1/3,1,1},{1/3,1,1}};
T1=Eigensystem[B1]//Chop
T2=Eigensystem[B2]//Chop
T3=Eigensys 32、tem[B3]//Chop
T4=Eigensystem[B4]//Chop
T5=Eigensystem[B5]//Chop
则输出
{{3.00369,Nonreal, Nonreal},
{{0.163954,0.46286,0.871137},
{ Nonreal, Nonreal,0.871137},
{ Nonreal, Nonreal, 0.871137}}};
{{3.00369,Nonreal, Nonreal},
{{0.928119,0.328758,0.174679},
{0.928119, Nonreal, Nonreal},
{ 33、0.928119, Nonreal, Nonreal}}}
{{3.00369, Nonreal, Nonreal},
{{0.163954,0.46286,0.871137},
{ Nonreal, Nonreal,0.871137},
{ Nonreal, Nonreal,0.871137}}}
{{3.00369, Nonreal, Nonreal},
{{0.928119,0.174679,0.328758},
{0.928119, Nonreal, Nonreal},
{0.928119, Nonreal, Nonreal}}}
{{3,0,0},
{ 34、{0.904534,0.301511,0.301511},
{-0.973329,0.162221,0.162221},
{-0.170182,-0.667851,0.724578}}
从上面的输出可以分别得到的最大特征值
以及上述特征值所对应的特征向量
其中 为求出归一化后的特征向量, 输入
Clear[x1,x2,x3,x4,x5];
x1=T1[[2,1]];
w1=x1/Apply[Plus,x1]
x2=T2[[2,1]];
w2=x2/Apply[Plus,x2]
x3=T3[[2,1]];
w3=x3/Apply[Plus,x3 35、]
x4=T4[[2,1]];
w4=x4/Apply[Plus,x4]
x5=T5[[2,1]];
w5=x5/Apply[Plus,x5]
则输出
计算一致性指标,其中 输入
lamda={T1[[1,1]],T2[[1,1]],T3[[1,1]],T4[[1,1]],T5[[1,1]]}茕桢广鳓鯡选块网羈泪。
CI=(lamda-3)/(3-1)//Chop
则输出
查表得到相应的随机一致性指标
计算一致性比率,输入
CR=CI/0.58
则输出
因 通过了一致性检验. 即认为的一致性程度在容许 36、
的范围之内, 可以用归一化后的特征向量作为其排序权重向量.
4. 计算层次总排序权重向量并做一致性检验
购买个人电脑问题的第三层对第二层的排序权重计算结果列于表3.
表3
1
2
3
4
5
0.109452
0.648329
0.109452
0.648329
0.6
0.308996
0.229651
0.308996
0.12202
0.2
0.581552
0.12202
0.581552
0.229651
0.2
3.00369
3.00369
3.00369
3.00369
3
以矩 37、阵表示第三层对第二层的排序权重计算结果为
即是第三层对第二层的权重向量为列向量组成的矩阵. 最下层(第三层)对最上层(第一
层)的总排序权向量为
为了计算上式, 输入
W3=Transpose[{w1,w2,w3,w4,w5}];
ww3=W3.ww2
则从输出结果得到
为了对总排序权向量进行一致性检验, 计算
输入
CI.ww2
则从输出结果得到
再计算,输入
RI=Table[0.58,{j,5} 38、];
RI.ww2
则从输出结果得到
最后计算 ,可得
因为 所以总排序权重向量符合一致性要求的范围.
根据总排序权重向量的分量取值, 品牌3的电脑是建模者对这三种品牌机的首选.
实验报告
1.根据你的设想购置一台计算机, 需考虑什么样的判断准则? 利用层次分析法及数学
软件做出最佳的决策.
2.根据你的经历设想如何报考大学, 需要什么样的判断准则? 利用层次分析法及数学
软件做出最佳的决策.
3.假期到了, 某学生打算做一次旅游, 有四个地点可供选择, 假定他要考虑5个因 39、素: 费用、景色、居住条件、饮食以及旅游条件. 由于该学生没有固定收入, 他对费用最为看重, 其次是旅游点的景色, 至于旅游条件、饮食, 差不多就行, 住什么地方就更无所谓了. 这四个旅游点没有一个具有明显的优势, 而是各有优劣. 该同学拿不定主意, 请用层次分析法帮助他找出最佳旅游点.鹅娅尽損鹌惨歷茏鴛賴。
4. 假设你马上就要从大学毕业, 正面临择业的问题, 你对工作的选择着重考虑下面几个因素: (1)单位的声誉; (2)收入; (3)专业是否对口; (4)是否有机会深造或晋升; (5)工作地点; (6)休闲时间. 对上述各种因素你可以根据自己的具体情况排序,也可以增加或减少所考虑的因素. 现在有四个单位打算你, 但如果用上述标准来衡量,没有一个单位具有明显的优势,请用层次分析法为你自己做一个合理的选择.籟丛妈羥为贍偾蛏练淨。






