求判断矩阵权重以及最大特征值 MATLAB程序
判断矩阵的最大特征值
项目六 矩阵的特征值与特征向量实验1 求矩阵的特征值与特征向量实验目的学习利用Mathematica(4.0以上版本)命令求方阵的特征值和特征向量;能利用软件计算方阵的特征值和特征向量及求二次型的标准形.求方阵的特征值与特征向量.例1.1 (教材 例1.1) 求矩阵.031121201⎪⎪⎪⎭⎫ ⎝⎛--=A 的特征值与特值向量.(1) 求矩阵A 的特征值. 输入 A={{-1,0,2},{1,2,-1},{1,3,0}}MatrixForm[A] Eigenvalues[A]则输出A 的特征值{-1,1,1}(2) 求矩阵A 的特征向量. 输入A={{-1,0,2},{1,2,-1},{1,3,0}} MatrixForm[A] Eigenvectors[A]则输出 {{-3,1,0},{1,0,1},{0,0,0}}即A 的特征向量为.101,013⎪⎪⎪⎭⎫⎝⎛⎪⎪⎪⎭⎫ ⎝⎛-(3) 利用命令Eigensystem 同时矩阵A 的所有特征值与特征向量. 输入A={{-1,0,2},{1,2,-1},{1,3,0}} MatrixForm[A] Eigensystem[A]则输出矩阵A 的特征值及其对应的特征向量.例1.2 求矩阵⎪⎪⎪⎭⎫ ⎝⎛=654543432A 的特征值与特征向量.输入A=T able[i+j,{i,3},{j,3}] MatrixForm[A](1) 计算矩阵A 的全部(准确解)特征值, 输入Eigenvalues[A]则输出{0, 426-,426+}(2) 计算矩阵A 的全部(数值解)特征值, 输入Eigenvalues[N[A]]则输出{12.4807, -0.480741, -1.34831610-⨯}(3) 计算矩阵A 的全部(准确解)特征向量, 输入Eigenvectors[A]//MatrixForm则输出121172422344220342234421172422344220342234421(4) 计算矩阵A 的全部(数值解)特征向量, 输入Eigenvectors[N[A]]//MatrixForm则输出0.4303620.5665420.7027220.805060.111190.5826790.4082480.8164970.408248(5) 同时计算矩阵A 的全部(准确解)特征值和特征向量, 输入 OutputForm[Eigensystem[A]] 则输出所求结果(6) 计算同时矩阵A 的零空间, 输入NullSpace[A]则输出{{1,-2,1}}(7) 调入程序包<<LinearAlgebra`Orthogonalization`后,还可以做以下的运算:GramSchmidt[ ]:用Gram-Schmidt 过程将向量组单位正交化; Normalize[ ]:将向量组单位化;Projection[vect1,vect2]:求从向量组vect1到vect2的正交映射.输入<<LinearAlgebra ’Orthogonalization ’ GramSchmidt[Eigenvectors[N[A]]]//MatrixForm则输出0.4303620.5665420.7027220.805060.111190.5826790.4082480.8164970.408248例1.3 求方阵⎪⎪⎪⎭⎫ ⎝⎛=633312321M 的特征值和特征向量.输入Clear[M];M={{1,2,3,},{2,1,3}{3,3,6}}; Eigenvalues[M] Eigenvectors[M] Eigensystem[M]则分别输出{-1,0,9}{{-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) 求矩阵⎪⎪⎪⎭⎫⎝⎛---=2163/115/12/13/13/1A 的特征值和特征向量的近似值.输入A={{1/3,1/3,-1/2},{1/5,1,-1/3},{6,1,-2}}; Eigensystem[A]则屏幕输出的结果很复杂,原因是矩阵A 的特征值中有复数且其精确解太复杂.此时,可采用 近似形式输入矩阵A ,则输出结果也采用近似形式来表达.输入A={{1/3,1/3,-1/2},{1/5,1,-1/3},{6.0,1,-2}}; Eigensystem[A]则输出{{-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}}}从中可以看到A 有两个复特征值与一个实特征值.属于复特征值的特征向量也是复的;属于实 特征值的特征向量是实的.例1.5 (教材 例1.3) 已知2是方阵⎪⎪⎪⎭⎫ ⎝⎛=32131003t A 的特征值,求t .输入Clear[A,q];A={{2-3,0,0},{-1,2-t,-3},{-1,-2,2-3}}; q=Det[A] Solve[q==0,t]则输出{{t →8}}即当8=t 时,2是方阵A 的特征值.例1.6 (教材 例1.4) 已知)1,1,1(-=x 是方阵⎪⎪⎪⎭⎫⎝⎛---=2135212b a A 的一个特征向量,求参数b a ,及特征向量x 所属的特征值. 设所求特征值为t ,输入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]]==0},{a,b,t}]则输出{{a →-3, b →0, t →-1}}即0,3=-=b a 时,向量)1,1,1(-=x 是方阵A 的属于特征值-1和特征向量.矩阵的相似变换例1.7 (教材 例1.5) 设矩阵⎪⎪⎪⎭⎫ ⎝⎛=222222114A ,求一可逆矩阵P ,使AP P 1-为对角矩阵.方法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.特征向量为⎪⎪⎪⎭⎫ ⎝⎛-110,⎪⎪⎪⎭⎫ ⎝⎛-111与⎪⎪⎪⎭⎫ ⎝⎛111,矩阵⎪⎪⎪⎭⎫ ⎝⎛--=111111110P .可验证AP P 1-为对角阵, 事实上,输入 Inverse[P].A.P则输出{{0,0,0},{0,2,0},{0,0,6}}因此,矩阵A 在相似变换矩阵P 的作用下,可化作对角阵.方法2 直接使用JordanDecomposition 命令, 输入jor=JordanDecomposition[A]则输出{{{0,-1,1},{-1,1,1},{1,1,1}},{{0,0,0},{0,2,0},{0,0,6}}}可取出第一个矩阵S 和第二个矩阵Λ,事实上,输入jor[[1]] jor[[2]]则输出{{0,-1,1},{-1,1,1},{1,1,1}} {{0,0,0},{0,2,0},{0,0,6}}输出结果与方法1的得到的结果完全相同.例1.8 方阵⎪⎪⎭⎫⎝⎛=1201A 是否与对角阵相似?输入Clear[A]; A={{1,0},{2,1}}; Eigensystem[A]输出为{{1,1},{{0,1}{0,0}}}于是,1是二重特征值,但是只有向量{0,1}是特征向量,因此,矩阵A 不与对角阵相似.例1.9 (教材 例1.6) 已知方阵⎪⎪⎪⎭⎫ ⎝⎛-=11322002x A 与⎪⎪⎪⎭⎫⎝⎛-=y B 00020001相似, 求y x ,.注意矩阵B 是对角矩阵,特征值是y ,2,1-.又矩阵A 是分块下三角矩阵,-2是矩阵A 的特 征值.矩阵A 与B 相似,则2-=y ,且-1,2也是矩阵A 的特征值.输入Clear[c,v];v={{4,0,0},{-2,2-x,-2},{-3,-1,1}}; Solve[Det[v]==0,x]则输出{{x →0}}所以,在题设条件,0=x ,2-=y .例1.10 对实对称矩阵⎪⎪⎪⎪⎪⎭⎫⎝⎛=2000001101010110A ,求一个正交阵P ,使AP P 1-为对角阵. 输入<<LinearAlgebra\Orthogonalization Clear[A,P]A={{0,1,1,0 },{1,0,1,0},{1,1,0,0},{0,0,0,2}}; Eigenvalues[A] Eigenvectors[A]输出的特征值与特征向量为{-1,-1,2,2}{{-1,0,1,0},{-1,1,0,0},{0,0,0,1},{1,1,1,0}}再输入P=GramSchmidt[Eigenvectors[A]]//Transpose输出为已经正交化和单位化的特征向量并且经转置后的矩阵P{}}{0,1,0,0,31,0,61,21,31,0,32,0,31,0,61,21⎪⎭⎪⎬⎫-⎪⎩⎪⎨⎧⎪⎩⎪⎨⎧⎪⎭⎪⎬⎫⎪⎭⎪⎬⎫-⎪⎩⎪⎨⎧⎪⎩⎪⎨⎧-为了验证P 是正交阵,以及AP P AP p T=-1是对角阵,输入Transpose[P].PInverse[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,0,2}}第一个结果说明E P P T =,因此P 是正交阵;第二个与第三个结果说明⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--==-22111AP P AP P T例1.11 求一个正交变换,化二次型243231212222x x x x x x x f +++=为标准型.二次型的矩阵为⎪⎪⎪⎪⎪⎭⎫⎝⎛=2000001101010110A这恰好是例1.10的矩阵, 因此,用例1.10中的正交矩阵P ,作正交变换PY X =,即⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛---=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛43214321010031061213103203106121y y y y x x x x将f 化作标准型.输入f=T able[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)这是原来的二次型f .把上式中的x[1],x[2],x[3],x[4]用y[1],y[2],y[3],y[4]表示,输入代换命令f/.T able[x[j]→(P .T able[y[j],{j,4}])[[j]],{j,4}]// Simplify则输出-y[1]2-y[2]2 +2(y[3]2 +y[4]2)这就是二次型f 的标准型.例1.12 (教材 例1.7) 已知二次型3231212322213212422),,(x x x x x x x x x x x x f +-++-=(1)求标准形; (2)求正惯性指数; (3)判断二次型是否正定. 输入A={{1,1,-2},{1,-2,1},{-2,1,1}}Eigenvalues[A]则输出矩阵A 的特征值为{-3,0,3}所以二次型的标准形为222133y y f +=;正惯性指数为1;该二次型不是正定的. 例1.13 (教材 例1.8) 求正交变换将二次型43324121242322213212222),,(x x x x x x x x x x x x x x x f -+-++++=化为标准形.输入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]<<LinearAlgebra\Orthogonalization.m P=GramSchmidt[Eigenvectors[A]] P .A.Inverse[P]//MatrixForm则输出所求的正交变换矩阵P 与二次型矩阵A 标准形. 从结果知, 所求二次型的标准型为24232221y y y y g +++-=实验2 层次分析法实验目的通过应用层次分析法解决一个实际问题,学习层次分析法的基本原理与方法;掌握用层次 分析法建立数学模型的基本步骤;学会用Mathematica 解决层次分析法中的数学问题.基本原理层次分析法是系统分析的重要工具之一,其基本思想是把问题层次化、数量化, 并用数学 方法为分析、决策、预报或控制提供定量依据. 它特别适用于难以完全量化, 又相互关联、 相互制约的众多因素构成的复杂问题. 它把人的思维过程层次化、数量化,是系统分析的一中 新型的数学方法.运用层次分析法建立数学模型, 一般可按如下四个基本步骤进行.1.建立层次结构首先对所面临的问题要掌握足够的信息, 搞清楚问题的范围、因素、各因素之间的相互 关系,及所要解决问题的目标. 把问题条理化、层次化, 构造出一个有层次的结构模型. 在这 个模型下,复杂问题被分解为元素的组成部分. 这些元素又按其属性及关系形成若干层次.层 次结构一般分三层:第一层为最高层, 它是分析问题的预定目标和结果, 也称目标层;第二层为中间层, 它是为了实现目标所涉及的中间环节, 如: 准则、子准则, 也称准则 层;第三层为最底层, 它包括了为实现目标可供选择的各种措施、决策方案等, 也称方案层.图2-1决策目标准则1准则2准则n方案1方案2方案m…………注:上述层次结构具有以下特点:(1) 从上到下顺序地存在支配关系, 并用直线段表示;(2) 整个层次结构中层次数不受限制.2.构造判断矩阵构造判断矩阵是建立层次分析模型的关键. 假定以上一层的某元素y 为准则,它所支配 的下一层次的元素为n x x x ,,,21 ,这n 个元素对上一层次的元素y 有影响,要确定它们在y 中的比重. 采用成对比较法. 即每次取两个元素i x 和j x , 用ij a 表示i x 与j x 对y 的影响之比, 全部比较的结果可用矩阵A 表示,即.,,2,1,,)(n j i a A n n ij ==⨯ 称矩阵A 为判断矩阵.根据上述定义,易见判断矩阵的元素ij a 满足下列性质:)(,1),(1j i a j i a a ii ijji ==≠=当0>ij a 时,我们称判断矩阵A 为正互反矩阵.怎样确定判断矩阵A 的元素ij a 的取值呢? 当某层的元素n x x x ,,,21 对于上一层某元素y 的影响可直接定量表示时, i x 与j x 对y的影响之比可以直接确定, ij a 的值也可直接确定. 但对于大多数社会经济问题, 特别是比较 复杂的问题, 元素i x 与j x 对y 的重要性不容易直接获得, 需要通过适当的量化方法来解决. 通常取数字1~9及其倒数作为ij a 的取值范围. 这是因为在进行定性的成对比较时, 通常采用5级制(表1),在每两个等级之间各有一个中间状态, 共1~9个尺度, 另外心理学家认为进行成对比较的因素太多, 将超出人们的判断比较能力, 降低精确. 实践证明, 成对比较的尺度以27±为宜, 故ij a 的取值范围是9,,2,1 及其倒数.表1 比较尺度ij a 的取值97531/ijj i a x x 绝对强很强强较强相等3.计算层次单排序权重并做一致性检验层次单排序是指同一层次各个元素对于上一层次中的某个元素的相对重要性进行排序. 具体做法是: 根据同一层n 个元素n x x x ,,,21 对上一层某元素y 的判断矩阵A ,求出它们对 于元素y 的相对排序权重,记为n w w w ,,,21 ,写成向量形式T n w w w w ),,,(21 =, 称其为A 的层次单排序权重向量, 其中i w 表示第i 个元素对上一层中某元素y 所占的比重, 从而得到层次单排序.层次单排序权重向量有几种求解方法,常用的方法是利用判断矩阵A 的特征值与特征向 量来计算排序权重向量w .关于正互反矩阵A ,我们不加证明地给出下列结果. (1) 如果一个正互反矩阵n n ij a A ⨯=)(满足),,2,1,,(n k j i a a a ik jk ij ==⨯则称矩阵A 具有一致性, 称元素k j i x x x ,,的成对比较是一致的; 并且称A 为一致矩阵.(2) n 阶正互反矩阵A 的最大特征根n ≥max λ, 当n =λ时, A 是一致的. (3) n 阶正互反矩阵是一致矩阵的充分必要条件是最大特征值 n =max λ.计算排序权重向量的方法和步骤设T n w ),,,(21ωωω =是n 阶判断矩阵的排序权重向量, 当A 为一致矩阵时, 根据n阶判断矩阵构成的定义,有⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=n n n n nn A ωωωωωωωωωωωωωωωωωω212221212111 (2.1) 因而满足,nw Aw = 这里n 是矩阵A 的最大特征根, w 是相应的特征向量; 当A 为一般的 判断矩阵时w Aw max λ=, 其中max λ是A 的最大特征值(也称主特征根), w 是相应的特征向 量(也称主特征向量). 经归一化(即11=∑=ni iω)后, 可近似作为排序权重向量, 这种方法称为特征根法.一致性检验在构造判断矩阵时, 我们并没有要求判断矩阵具有一致性, 这是由客观事物的复杂性与人的认识的多样性所决定的. 特别是在规模大、因素多的情况下, 对于判断矩阵的每个元 素来说,不可能求出精确的j i ωω/, 但要求判断矩阵大体上应该是一致的. 一个经不起推敲 的判断矩阵有可能导致决策的失误. 利用上述方法计算排序权重向量, 当判断矩阵过于偏离 一致性时, 其可靠性也有问题. 因此,需要对判断矩阵的一致性进行检验, 检验可按如下步骤 进行: (1) 计算一致性指标CI1max --=n nCI λ (2.2)当,0=CI 即n =max λ时, 判断矩阵A 是一致的. 当CI 的值越大, 判断矩阵A 的不一致的程 度就越严重. (2) 查找相应的平均随机一致性指标RI表2给出了n )11~1(阶正互反矩阵的平均随机一致性指标RI , 其中数据采用了 100~150个随机样本矩阵A 计算得到.(3) 计算一致性比例CRRICICR =(2.3)当10.0<CR 时, 认为判断矩阵的一致性是可以接受的; 否则应对判断矩阵作适当修正.4. 计算层次总排序权重并做一致性检验计算出某层元素对其上一层中某元素的排序权重向量后, 还需要得到各层元素, 特别 是最底层中各方案对于目标层的排序权重, 即层次总排序权重向量, 再进行方案选择. 层次 总排序权重通过自上而下地将层次单排序的权重进行合成而得到. 考虑3个层次的决策问题: 第一层只有1个元素, 第二层有n 个元素, 第三层有m 个元 素.设第二层对第一层的层次单排序的权重向量为 Tn w ),,,()2()2(2)2(1)2(ωωω = 第三层对第二层的层次单排序的权重向量为n k w w w w Tkn k k k ,,2,1,),,,()3()3(2)3(1)3( ==以)3(k w 为列向量构成矩阵:n m nm m mn n n w w w w w w w w w w w w W ⨯⎪⎪⎪⎪⎪⎭⎫ ⎝⎛==)3()3(2)3(1)3(2)3(22)3(12)3(1)3(21)3(11)3()3(2)3(1)3(,,,,,,,,,,,),,,( (2.4)则第三层对第一层的层次总排序权重向量为)2()3()3(w W w =(2.5) 一般地, 若层次模型共有s 层, 则第k 层对第一层的总排序权重向量为s k w W w k k k ,,4,3,)1()()( ==-(2.6)其中)(k W 是以第k 层对第1-k 层的排序权向量为列向量组成的矩阵,)1(-k w 是第1-k 层对第 一层的总排序权重向量. 按照上述递推公式, 可得到最下层(第s 层)对第一层的总排序权重 向量为)2()3()1()()(w W W W w s s s -=(2.7)对层次总排序权重向量也要进行一致性检验. 具体方法是从最高层到最低层逐层进行 检验.如果所考虑的层次分析模型共有s 层. 设第l (s l ≤≤3)层的一致性指标与随机一致性 指标分别为)()(2)(1,,,l n l l CI CI CI (n 是第1-l 层元素的数目)与)()(2)(1,,,l nl l RI RI RI , 令)1()(1)(1)(],,[-=l l l l w CI CI CI(2.8) )1()(1)(1)(],,[-=l l l l w RI RI RI(2.9)则第l 层对第一层的总排序权向量的一致性比率为s l RICI CRCRl l l l ,,4,3,)()()1()( =+=- (2.10)其中)2(CR 为由(2.3)式计算的第二层对第一层的排序权重向量的一致性比率.当最下层对第一层的总排序权重向量的一致性比率1.0)(<s CR 时, 就认为整个层次结构 的比较判断可通过一致性检验.应用举例问题 在选购电脑时, 人们希望花最少的钱买到最理想的电脑. 试通过层次分析法建立 数学模型,并以此确定欲选购的电脑.1. 建立选购电脑的层次结构模型选择的目标性能价格质量外观售后服务品牌1品牌2品牌3目标层准则层方案层图2-2该层次结构模型共有三层:目标层(用符号z 表示最终的选择目标); 准则层(分别用符号 521,,,y y y 表示“性能”、“价格”、“质量”、“外观”、“售后服务”五个判断准则); 方案层(分别用符号321,,x x x 表示品牌1, 品牌2, 品牌3三种选择方案).2.构造成对比较判断矩阵(1) 建立准则层对目标层的成对比较判断矩阵根据表1的定量化尺度, 从建模者的个人观点出发, 设准则层对目标层的成对比较判断矩阵为⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=13123/13/113/12/19/113123/12/122/115/139351A (2.11)(2) 建立方案层对准则层的成对比较判断矩阵,113/1113/1331,123/12/115/13511252/1135/13/11,12/15/1213/1531,1252/1135/13/1154321⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=B B B B B3.计算层次单排序权重向量并做一致性检验先利用Mathematica 计算矩阵A 的最大特征值及特征值所对应的特征向量. 输入<<Miscellaneous\RealOnly.m (*调用只求实数运算的软件包*)A={{1.0,5,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}, {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 的最大特征值,00974.5max =λ及其对应的特征向量T x )304926.0,0960557.0,304926.0,167913.0,88126.0(=输入Clear[x]; x=T[[2,1]];ww2=x/Apply[Plus,x]则得到归一化后的特征向量T w )173739.0,0547301.0,173739.0,0956728.0,502119.0()2(=计算一致性指标1max --=n nCI λ,其中,00974.5,5max ==λn 故.002435.0=CI查表得到相应的随机一致性指标 12.1=RI 从而得到一致性比率002174.0)2(==RICICR 因,1.0)2(<CR 通过了一致性检验,即认为A 的一致性程度在容许的范围之内, 可以用归一 化后的特征向量)2(w 作为排序权重向量. 下面再求矩阵)5,,2,1( =j B j 的最大特征值及特征值所对应的特征向量, 输入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]//ChopT2=Eigensystem[B2]//Chop T3=Eigensystem[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}, {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},{{0.904534,0.301511,0.301511}, {-0.973329,0.162221,0.162221}, {-0.170182,-0.667851,0.724578}}从上面的输出可以分别得到)5,,2,1( =j B j 的最大特征值000.3,00369.3,00369.3,00369.3,00369.354321=====λλλλλ以及上述特征值所对应的特征向量TT T TT x x x x x )301511.0,301511.0,904534.0()328758.0,174679.0,928119.0()871137.0,46286.0,163954.0()174679.0,328758.0,928119.0()871137.0,46286.0,163954.0(54321=====其中.5,,2,1),,,(321 ==i x x x x i i i i 为求出归一化后的特征向量, 输入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] x4=T4[[2,1]];w4=x4/Apply[Plus,x4] x5=T5[[2,1]];w5=x5/Apply[Plus,x5]则输出TT T TT w w w w w )200000.0,200000.0,600000.0()229651.0,12202.0,648329.0()581552.0,308996.0,109452.0()12202.0,229651.0,648329.0()581552.0,308996.0,109452.0(54321===== 计算一致性指标)5,,2,1(1=--=i n nCI i i λ,其中,3=n 输入lamda={T1[[1,1]],T2[[1,1]],T3[[1,1]],T4[[1,1]],T5[[1,1]]} CI=(lamda-3)/(3-1)//Chop则输出0,0018473.0,0018473.0,0018473.0,0018473.054321=====CI CI CI CI CI查表得到相应的随机一致性指标)5,,2,1(58.0 ==i RI i计算一致性比率5,,2,1, ==i RI CI CR iii ,输入CR=CI/0.58则输出.0,003185.0,003185.0,003185.0,003185.054321=====CR CR CR CR CR因),5,,2,1(,1.0 =<i CR i 通过了一致性检验. 即认为)5,,2,1( =j B j 的一致性程度在容许 的范围之内, 可以用归一化后的特征向量作为其排序权重向量.4. 计算层次总排序权重向量并做一致性检验购买个人电脑问题的第三层对第二层的排序权重计算结果列于表3.以矩阵表示第三层对第二层的排序权重计算结果为⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=2.0229651.0581552.012202.0581552.02.012202.0308996.0229651.0308996.06.0648329.0109452.0648329.0109452.0)3(W )3(W 即是第三层对第二层的权重向量为列向量组成的矩阵. 最下层(第三层)对最上层(第一层)的总排序权向量为)2()3()3(w W w =为了计算上式, 输入W3=Transpose[{w1,w2,w3,w4,w5}]; ww3=W3.ww2则从输出结果得到T w )452037.0,272235.0,275728.0()3(=为了对总排序权向量进行一致性检验, 计算)2(521)3().,,.,.(w I C I C I C CI =输入CI.ww2则从输出结果得到00152635.0)3(=CI 再计算)2(51)3(],,[w RI RI RI =,输入RI=T able[0.58,{j,5}]; RI.ww2则从输出结果得到 58.0.)3(=I R 最后计算 )3()3()2()3(./...I R I C R C R C +=,可得00480575.0.)3(=R C因为,1.0.)3(<R C 所以总排序权重向量符合一致性要求的范围.根据总排序权重向量的分量取值, 品牌3的电脑是建模者对这三种品牌机的首选. 实验报告1.根据你的设想购置一台计算机, 需考虑什么样的判断准则? 利用层次分析法及数学 软件做出最佳的决策.2.根据你的经历设想如何报考大学, 需要什么样的判断准则? 利用层次分析法及数学 软件做出最佳的决策.3.假期到了, 某学生打算做一次旅游, 有四个地点可供选择, 假定他要考虑5个因素: 费用、景色、居住条件、饮食以及旅游条件. 由于该学生没有固定收入, 他对费用最为看重, 其次是旅游点的景色, 至于旅游条件、饮食, 差不多就行, 住什么地方就更无所谓了. 这四个旅游点没有一个具有明显的优势, 而是各有优劣. 该同学拿不定主意, 请用层次分析法帮助他找出最佳旅游点.4. 假设你马上就要从大学毕业, 正面临择业的问题, 你对工作的选择着重考虑下面几个因素: (1)单位的声誉; (2)收入; (3)专业是否对口; (4)是否有机会深造或晋升; (5)工作地点; (6)休闲时间. 对上述各种因素你可以根据自己的具体情况排序,也可以增加或减少所考虑的因素. 现在有四个单位打算你, 但如果用上述标准来衡量,没有一个单位具有明显的优势,请用层次分析法为你自己做一个合理的选择.。
幂法,反幂法求解矩阵最大最小特征值及其对应的特征向量
数值计算解矩阵的按模最大最小特征值及对应的特征向量—一 .幂法1. 幕法简介:当矩阵A 满足一定条件时,在工程中可用幕法计算其主特征值 (按模最大) 及其特征向量。
矩阵A 需要满足的条件为:⑴I 1 I I 2|n |- 0, i 为A 的特征值(2)存在n 个线性无关的特征向量,设为 X i ,X 2,…,X n 1.1计算过程:n对任意向量x (0),有x (0)八:-M —不全为0,则有i 4X (k 岀)=Ax (k)== A k 岀乂。
)nn A k 1aq a 扌15i =1i =1■k 12 可见,当1—1越小时,收敛越快;且当k 充分大时,有 ?"12算法实现⑶.计算x Ay,… max(x);⑷若| •一十:;,输出-,y,否则,转(5)(5)若N ,置k 「k 1^-,转3,否则输出失败信息,停机.3 matlab 程序代码(冲1%叫x(k 1)[x(k)k二ux(k)>(k+1)1,对应的特征向量即是x(1).输入矩阵A ,初始向量X ,误差限 最大迭代次数N(k)0; y(k)max(abs(x (k))k=1;z=0;y=x0./max(abs(x0)); x=A*y; % z相当于■%规范化初始向量%迭代格式b=max(x); % b相当于:if abs(z-b)<epst=max(x);return;%判断第一次迭代后是否满足要求endwhile abs(z-b)>eps && k<N k=k+1;z=b;y=x./max(abs(x));x=A*y;b=max(x);end[m,i ndex]=max(abs(x)); %这两步保证取出来的按模最大特征值t=x(i ndex); end%是原值,而非其绝对值。
4举例验证选取一个矩阵A,代入程序,得到结果,并与eig(A)的得到结果比较,再计算A*y-t*y,验证y是否是对应的特征向量。
层次分析法判断矩阵求权值以及一致性检验程序
层次分析法判断矩阵求权值以及一致性检验程序Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998function [w,CR]=mycom(A,m,RI)[x,lumda]=eig(A);r=abs(sum(lumda));n=find(r==max(r));max_lumda_A=lumda(n,n);max_x_A=x(:,n);w=A/sum(A);CR=(max_lumda_A-m)/(m-1)/RI;end本matlab程序用于层次分析法中计算判断矩阵给出的权值已经进行一致性检验。
其中A为判断矩阵,不同的标度和评定A将不同。
m为A的维数RI为判断矩阵的平均随机一致性指标:根据m的不同值不同。
下面是层次分析法的简介,以及判断矩阵构造方法。
一.层次分析法的含义层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家问题上的实用性和有效性,很快在世界范围得到重视。
它的应用已遍及经济和、能源政策和分配、行为科学、军事指挥、运输、农业、教育、人才、医疗和环境等领域。
二.层次分析法的基本思路与人对一个复杂的决策问题的思维、判断过程大体上是一样的。
(1)层次分析法的原理层次分析法是将决策问题按总目标、各层子目标、评价准则直至具体的备投方案的顺序分解为不同的层次结构,然后得用求解判断矩阵特征向量的办法,求得每一层次的各元素对上一层次某元素的优先权重,最后再加权和的方法递阶归并各备择方案对总目标的最终权重,此最终权重最大者即为最优方案。
这里所谓“优先权重”是一种相对的量度,它表明各备择方案在某一特点的评价准则或子目标,标下优越程度的相对量度,以及各子目标对上一层目标而言重要程度的相对量度。
层次分析法比较适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。
其用法是构造判断矩阵,求出其最大特征值。
层次分析法判断矩阵求权值以及一致性检验程序
function [w,CR]=mycom(A,m,RI)[x,lumda]=eig(A);r=abs(sum(lumda));n=find(r==max(r));max_lumda_A=lumda(n,n);max_x_A=x(:,n);w=A/sum(A);CR=(max_lumda_A-m)/(m-1)/RI;end本matlab程序用于层次分析法中计算判断矩阵给出的权值已经进行一致性检验。
其中A为判断矩阵,不同的标度和评定A将不同。
m为A的维数RI为判断矩阵的平均随机一致性指标:根据m的不同值不同。
当CR<0.1时符合一致性检验,判断矩阵构造合理。
下面是层次分析法的简介,以及判断矩阵构造方法。
一.层次分析法的含义层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家托马斯·塞蒂(T.L.Saaty)正式提出。
它是一种定性和定量相结合的、系统化、层次化的分析方法。
由于它在处理复杂的决策问题上的实用性和有效性,很快在世界范围得到重视。
它的应用已遍及经济计划和管理、能源政策和分配、行为科学、军事指挥、运输、农业、教育、人才、医疗和环境等领域。
二.层次分析法的基本思路与人对一个复杂的决策问题的思维、判断过程大体上是一样的。
(1)层次分析法的原理层次分析法是将决策问题按总目标、各层子目标、评价准则直至具体的备投方案的顺序分解为不同的层次结构,然后得用求解判断矩阵特征向量的办法,求得每一层次的各元素对上一层次某元素的优先权重,最后再加权和的方法递阶归并各备择方案对总目标的最终权重,此最终权重最大者即为最优方案。
这里所谓“优先权重”是一种相对的量度,它表明各备择方案在某一特点的评价准则或子目标,标下优越程度的相对量度,以及各子目标对上一层目标而言重要程度的相对量度。
层次分析法比较适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。
最全 Matlab操作 函数指令
一、常用对象操作:除了一般windows窗口的常用功能键外。
1、!dir 可以查看当前工作目录的文件。
!dir& 可以在dos状态下查看。
2、who 可以查看当前工作空间变量名,whos 可以查看变量名细节。
3、功能键:功能键快捷键说明方向左键 Ctrl+B 光标向后移一个字符方向右键 Ctrl+F 光标向前移一个字符Ctrl+方向右键 Ctrl+R 光标向右移一个字符Ctrl+方向左键 Ctrl+L 光标向左移一个字符home Ctrl+A 光标移到行首End Ctrl+E 光标移到行尾Esc Ctrl+U 清除一行Del Ctrl+D 清除光标所在的字符Backspace Ctrl+H 删除光标前一个字符Ctrl+K 删除到行尾Ctrl+C 中断正在执行的命令4、clc可以命令窗口显示的内容,但并不清除工作空间。
二、函数及运算1、运算符:+:加,-:减, *:乘, /:除,\:左除 ^:幂,‘:复数的共轭转置,():制定运算顺序。
2、常用函数表:sin( ) 正弦(变量为弧度)Cot( ) 余切(变量为弧度)sind( ) 正弦(变量为度数)Cotd( ) 余切(变量为度数)asin( ) 反正弦(返回弧度)acot( ) 反余切(返回弧度)Asind( ) 反正弦(返回度数)acotd( ) 反余切(返回度数)cos( ) 余弦(变量为弧度)exp( ) 指数cosd( ) 余弦(变量为度数)log( ) 对数acos( ) 余正弦(返回弧度)log10( ) 以10为底对数acosd( ) 余正弦(返回度数)sqrt( ) 开方tan( ) 正切(变量为弧度)realsqrt( ) 返回非负根tand( ) 正切(变量为度数)abs( ) 取绝对值atan( ) 反正切(返回弧度)angle( ) 返回复数的相位角atand( ) 反正切(返回度数)mod(x,y) 返回x/y的余数sum( ) 向量元素求和3、其余函数可以用help elfun和help specfun命令获得。
使用Matlab程序实现层次分析法(AHP)的简捷算法
使用Matlab程序实现层次分析法(AHP)的简捷算法作者:于晶来源:《科技风》2016年第16期摘要:层次分析法简便易懂,可操作性和实用性强,但是构造判断矩阵往往不容易,计算判断矩阵的特征值特别繁琐且易出错,得到的一致性检验不易调整,这些都给使用层次分析法带来困难,以往使用办公软件电子表格(Excel)的方法计算单层次排序和总层次排序,这种方法使得计算和一致性检验变得容易,文本使用Matlab程序使得计算变得更容易,也使得层次分析法在多个领域得到推广和应用。
关键词:层次分析法;Excel;matlab1 层次分析法(AHP法)的原理和解决思路层次分析法是对定性问题进行定量分析的一种简便、灵活而又实用的多准则决策方法。
它的原理是模拟人的决策过程,具有思路清晰、方法简便、适用面广、系统性强等特点。
是解决多目标、多准则、多层次复杂问题决策或者大型工程风险分析的有力工具。
层次分析法解决问题的思路就是用下一次因素的相对排序求得上一次因素的相对排序。
按照因素之间的相互影响和隶属关系将各层次因素聚类组合,形成一个递进有序的层次结构模型。
2 层次分析法的应用难点2.1合适的判断矩阵构造不易模型确定后,按照模型层次结构和模型的各因素的相对重要性,综合专家群体咨询意见,采用标度法[ 1 ],从数字1/9一9中选取恰当值,构造各层的判断矩阵,并使之尽量符合一致性检验,这一步成为问题的关键。
但实际上系统越复杂,判定矩阵的阶数就会越高,计算就会越困难。
2.2计算量大,步骤繁琐层次分析法首先要求的就是判断矩阵的最大特征值?姿max,及其正规化的特征向量w,向量w的分量wi是相应因素的单层次权值,这部分计算理论上基于线性代数知识,不用计算机也可以将其计算出来。
但实际上,当矩阵的阶数高于4阶时,人工计算就变得相当困难且易出错,如使用计算机计算,就容易得多,常用的方法有Basic语言,电子表格Excel等方法。
但计算量都有待改进。
第10章MATLAB特征值与特征向量的计算实例解析
• A=[9 2 1 2 2;2 4 3 3 3;1 3 7 3 4;2 3 3 5 4;2 3 4 4 5];
• chol_test(A)
• B运=[行16结17果9:12 12;17 12 12 2 18;9 12 18 7 13;12 2 7 18 12;12 18 13 12 10];
• chCo=l_test(B)
k1 k2
m1
k2 m2
0
0
k2 m1 k2 k3 m2 k3 m3
0
0
k3 m2 k3 k4 m3 k4 m4
0
0
f1
f1
f2
2
f2
k4 m3
f3 f4
f3
f4
k4
m4
• 即2为上述系数矩阵的特征值。
• 若给定如下条件则可以编写程序example_10_10.m。
运行结果: x_nlimit =
即当n 时,
an
a0
1 2
b0 , bn
0, cn
c0
1 2
b0
a0 + b0/2
0
后代仅具有基因AA和aa。
b0/2 + c0
二、常染色体隐性病模型
1
M
=
0
1/ 2 1/ 2
最终隐性患者消失, 全部均为显性患者。
三、X—链遗传模型
X—链遗传是指雄性具有一个基因A或a,雌性具有两个基因AA或Aa或aa。其遗 传规律是雄性后代以相等概率得到母体两个基因中的一个,雌性后代从父体中 得到一个基因,并从母体的两个基因中等可能地得到一个。
2 4 6
【例10-1】给定矩阵
A
3
9
matlab用规范化乘幂法求以下矩阵的按模最大特征值及其特征向量
竭诚为您提供优质文档/双击可除matlab用规范化乘幂法求以下矩阵的按模最大特征值及其特征向量篇一:幂法,反幂法求解矩阵最大最小特征值及其对应的特征向量数值计算解矩阵的按模最大最小特征值及对应的特征向量一.幂法1.幂法简介:当矩阵a满足一定条件时,在工程中可用幂法计算其主特征值(按模最大)及其特征向量。
矩阵a需要满足的条件为:(1)|1||2|...|n|0,i为a的特征值xn(2)存在n个线性无关的特征向量,设为x1,x2,...,1.1计算过程:n对任意向量x,有x(0)(0)iui,i不全为0,则有i1x(k1)ax(k)...ak1x(0)aαiuiαiλik1uik1i1i1nnnk12k1λ1u1()a2u2()anun11k111u1k112|越小时,收敛越快;且当k充分大时,有可见,当|1 (k1)k111u1x(k1)x(k1)(k)x1(k),对应的特征向量即是。
kxx11u12算法实现(1).输入矩阵a,初始向量x,误差限,最大迭代次数n(2).k1,0;y(k)x(k)max(abs(x(k))(3).计算xay,max(x);(4).若||,输出,y,否则,转(5)(5).若kn,置kk1,,转3,否则输出失败信息,停机.3matlab程序代码function[t,y]=lpowera,x0,eps,n)%t为所求特征值,y 是对应特征向量k=1;z=0;%z相当于y=x0./max(abs(x0));%规范化初始向量x=a*y;%迭代格式b=max(x);%b相当于ifabs(z-b) t=max(x);return;endwhileabs(z-b)>epsz=b;y=x./max(abs(x));x=a*y;b=max(x);end[m,index]=max(a(matlab用规范化乘幂法求以下矩阵的按模最大特征值及其特征向量)bs(x));%这两步保证取出来的按模最大特征值t=x(index);%是原值,而非其绝对值。
matlab用规范化乘幂法求以下矩阵的按模最大特征值及其特征向量
竭诚为您提供优质文档/双击可除matlab用规范化乘幂法求以下矩阵的按模最大特征值及其特征向量篇一:幂法,反幂法求解矩阵最大最小特征值及其对应的特征向量数值计算解矩阵的按模最大最小特征值及对应的特征向量一.幂法1.幂法简介:当矩阵a满足一定条件时,在工程中可用幂法计算其主特征值(按模最大)及其特征向量。
矩阵a需要满足的条件为:(1)|1||2|...|n|0,i为a的特征值xn(2)存在n个线性无关的特征向量,设为x1,x2,...,1.1计算过程:n对任意向量x,有x(0)(0)iui,i不全为0,则有i1x(k1)ax(k)...ak1x(0)aαiuiαiλik1uik1i1i1nnnk12k1λ1u1()a2u2()anun11k111u1k112|越小时,收敛越快;且当k充分大时,有可见,当|1 (k1)k111u1x(k1)x(k1)(k)x1(k),对应的特征向量即是。
kxx11u12算法实现(1).输入矩阵a,初始向量x,误差限,最大迭代次数n(2).k1,0;y(k)x(k)max(abs(x(k))(3).计算xay,max(x);(4).若||,输出,y,否则,转(5)(5).若kn,置kk1,,转3,否则输出失败信息,停机.3matlab程序代码function[t,y]=lpowera,x0,eps,n)%t为所求特征值,y 是对应特征向量k=1;z=0;%z相当于y=x0./max(abs(x0));%规范化初始向量x=a*y;%迭代格式b=max(x);%b相当于ifabs(z-b) t=max(x);return;endwhileabs(z-b)>epsz=b;y=x./max(abs(x));x=a*y;b=max(x);end[m,index]=max(a(matlab用规范化乘幂法求以下矩阵的按模最大特征值及其特征向量)bs(x));%这两步保证取出来的按模最大特征值t=x(index);%是原值,而非其绝对值。
判断矩阵的最大特征值
项目六矩阵的特征值及特征向量实验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的特征向量. 输入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}]MatrixForm[A](1) 计算矩阵A的全部(准确解)特征值, 输入Eigenvalues[A]则输出{0, 426-,426+}(2) 计算矩阵A的全部(数值解)特征值, 输入Eigenvalues[N[A]]则输出{12.4807, -0.480741, -1.34831610-⨯}(3) 计算矩阵A的全部(准确解)特征向量, 输入Eigenvectors[A]//MatrixForm则输出12117242 2344220342 23442117242 2344220342 234421(4) 计算矩阵A的全部(数值解)特征向量, 输入Eigenvectors[N[A]]//MatrixForm则输出0.4303620.5665420.7027220.805060.111190.5826790.4082480.8164970.408248(5) 同时计算矩阵A的全部(准确解)特征值和特征向量, 输入OutputForm[Eigensystem[A]]则输出所求结果(6) 计算同时矩阵A的零空间, 输入NullSpace[A]则输出{{1,-2,1}}(7) 调入程序包<<LinearAlgebra`Orthogonalization`后,还可以做以下的运算:GramSchmidt[ ]:用Gram-Schmidt过程将向量组单位正交化;Normalize[ ]:将向量组单位化;Projection[vect1,vect2]:求从向量组vect1到vect2的正交映射.输入<<LinearAlgebra’Orthogonalization’GramSchmidt[Eigenvectors[N[A]]]//MatrixForm则输出0.4303620.5665420.7027220.805060.111190.5826790.4082480.8164970.408248例1.3求方阵的特征值和特征向量.输入Clear[M];M={{1,2,3,},{2,1,3}{3,3,6}};Eigenvalues[M]Eigenvectors[M]Eigensystem[M]则分别输出{-1,0,9}{{-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的特征值中有复数且其精确解太复杂.此时,可采用近似形式输入矩阵A,则输出结果也采用近似形式来表达.输入A={{1/3,1/3,-1/2},{1/5,1,-1/3},{6.0,1,-2}};Eigensystem[A]则输出{{-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}}}从中可以看到A有两个复特征值及一个实特征值.属于复特征值的特征向量也是复的;属于实特征值的特征向量是实的.例1.5(教材例1.3)已知2是方阵的特征值,求t.输入Clear[A,q];A={{2-3,0,0},{-1,2-t,-3},{-1,-2,2-3}};q=Det[A]Solve[q==0,t]则输出{{t→8}}即当8t时,2是方阵A的特征值.=例1.6(教材例1.4)已知)1x是方阵的一个特征向量,求参数ba,及特征向量x所=,1,1(-属的特征值.设所求特征值为t,输入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]]==0},{a,b,t}]则输出{{a→-3, b→0, t→-1}}即0,1,1(-=a时,向量)1x是方阵A的属于特征值-1和特征向量.=b,3=-矩阵的相似变换例1.7(教材例1.5)设矩阵,求一可逆矩阵P,使APP1-为对角矩阵.方法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.特征向量为⎪⎪⎪⎭⎫ ⎝⎛-110,⎪⎪⎪⎭⎫ ⎝⎛-111及⎪⎪⎪⎭⎫ ⎝⎛111,矩阵.可验证AP P 1-为对角阵, 事实上,输入 Inverse[P].A.P则输出{{0,0,0},{0,2,0},{0,0,6}}因此,矩阵A 在相似变换矩阵P 的作用下,可化作对角阵.方法2 直接使用JordanDecomposition 命令, 输入jor=JordanDecomposition[A]则输出{{{0,-1,1},{-1,1,1},{1,1,1}},{{0,0,0},{0,2,0},{0,0,6}}}可取出第一个矩阵S 和第二个矩阵Λ,事实上,输入jor[[1]] jor[[2]]则输出{{0,-1,1},{-1,1,1},{1,1,1}} {{0,0,0},{0,2,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) 已知方阵及相似, 求y x ,.注意矩阵B 是对角矩阵,特征值是y ,2,1-.又矩阵A 是分块下三角矩阵,-2是矩阵A 的特 征值.矩阵A 及B 相似,则2-=y ,且-1,2也是矩阵A 的特征值.输入Clear[c,v];v={{4,0,0},{-2,2-x,-2},{-3,-1,1}}; Solve[Det[v]==0,x]则输出{{x →0}}所以,在题设条件,0=x ,2-=y .例1.10 对实对称矩阵,求一个正交阵P ,使AP P 1-为对角阵. 输入<<LinearAlgebra\Orthogonalization Clear[A,P]A={{0,1,1,0 },{1,0,1,0},{1,1,0,0},{0,0,0,2}}; Eigenvalues[A] Eigenvectors[A]输出的特征值及特征向量为{-1,-1,2,2}{{-1,0,1,0},{-1,1,0,0},{0,0,0,1},{1,1,1,0}}再输入P=GramSchmidt[Eigenvectors[A]]//Transpose输出为已经正交化和单位化的特征向量并且经转置后的矩阵P{}}{0,1,0,0,31,0,61,21,31,0,32,0,31,0,61,21⎪⎭⎪⎬⎫-⎪⎩⎪⎨⎧⎪⎩⎪⎨⎧⎪⎭⎪⎬⎫⎪⎭⎪⎬⎫-⎪⎩⎪⎨⎧⎪⎩⎪⎨⎧-为了验证P 是正交阵,以及AP P AP p T=-1是对角阵,输入Transpose[P].PInverse[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,0,2}}第一个结果说明E P P T =,因此P 是正交阵;第二个及第三个结果说明⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--==-22111AP P AP P T 例1.11 求一个正交变换,化二次型243231212222x x x x x x x f +++=为标准型.二次型的矩阵为这恰好是例1.10的矩阵, 因此,用例1.10中的正交矩阵P ,作正交变换PY X =,即⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛---=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛43214321010031061213103203106121y y y y x x x x将f 化作标准型.输入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)这是原来的二次型f .把上式中的x[1],x[2],x[3],x[4]用y[1],y[2],y[3],y[4]表示,输入代换命令f/.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)这就是二次型f 的标准型.例1.12 (教材 例1.7) 已知二次型3231212322213212422),,(x x x x x x x x x x x x f +-++-=(1)求标准形; (2)求正惯性指数; (3)判断二次型是否正定. 输入A={{1,1,-2},{1,-2,1},{-2,1,1}}Eigenvalues[A]则输出矩阵A 的特征值为{-3,0,3}所以二次型的标准形为222133y y f +=;正惯性指数为1;该二次型不是正定的. 例1.13 (教材 例1.8) 求正交变换将二次型43324121242322213212222),,(x x x x x x x x x x x x x x x f -+-++++=化为标准形.输入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]<<LinearAlgebra\Orthogonalization.m P=GramSchmidt[Eigenvectors[A]] P.A.Inverse[P]//MatrixForm则输出所求的正交变换矩阵P 及二次型矩阵A 标准形. 从结果知, 所求二次型的标准型为24232221y y y y g +++-=实验2 层次分析法实验目的通过应用层次分析法解决一个实际问题,学习层次分析法的基本原理及方法;掌握用层次 分析法建立数学模型的基本步骤;学会用Mathematica 解决层次分析法中的数学问题.基本原理层次分析法是系统分析的重要工具之一,其基本思想是把问题层次化、数量化, 并用数学 方法为分析、决策、预报或控制提供定量依据. 它特别适用于难以完全量化, 又相互关联、 相互制约的众多因素构成的复杂问题. 它把人的思维过程层次化、数量化,是系统分析的一中 新型的数学方法.运用层次分析法建立数学模型, 一般可按如下四个基本步骤进行.1.建立层次结构首先对所面临的问题要掌握足够的信息, 搞清楚问题的范围、因素、各因素之间的相互 关系,及所要解决问题的目标. 把问题条理化、层次化, 构造出一个有层次的结构模型. 在这 个模型下,复杂问题被分解为元素的组成部分. 这些元素又按其属性及关系形成若干层次.层 次结构一般分三层:第一层为最高层, 它是分析问题的预定目标和结果, 也称目标层;第二层为中间层, 它是为了实现目标所涉及的中间环节, 如: 准则、子准则, 也称准则 层;第三层为最底层, 它包括了为实现目标可供选择的各种措施、决策方案等, 也称方案层.图2-1决策目标准则1准则2准则n方案1方案2方案m…………注:上述层次结构具有以下特点:(1) 从上到下顺序地存在支配关系, 并用直线段表示;(2) 整个层次结构中层次数不受限制.2.构造判断矩阵构造判断矩阵是建立层次分析模型的关键. 假定以上一层的某元素y 为准则,它所支配 的下一层次的元素为n x x x ,,,21 ,这n 个元素对上一层次的元素y 有影响,要确定它们在y 中的比重. 采用成对比较法. 即每次取两个元素i x 和j x , 用ij a 表示i x 及j x 对y 的影响之比, 全部比较的结果可用矩阵A 表示,即.,,2,1,,)(n j i a A n n ij ==⨯ 称矩阵A 为判断矩阵.根据上述定义,易见判断矩阵的元素ij a 满足下列性质:)(,1),(1j i a j i a a ii ijji ==≠=当0>ij a 时,我们称判断矩阵A 为正互反矩阵.怎样确定判断矩阵A 的元素ij a 的取值呢? 当某层的元素n x x x ,,,21 对于上一层某元素y 的影响可直接定量表示时, i x 及j x 对y的影响之比可以直接确定, ij a 的值也可直接确定. 但对于大多数社会经济问题, 特别是比较 复杂的问题, 元素i x 及j x 对y 的重要性不容易直接获得, 需要通过适当的量化方法来解决. 通常取数字1~9及其倒数作为ij a 的取值范围. 这是因为在进行定性的成对比较时, 通常采用 5级制(表1),在每两个等级之间各有一个中间状态, 共1~9个尺度, 另外心理学家认为进行成 对比较的因素太多, 将超出人们的判断比较能力, 降低精确. 实践证明, 成对比较的尺度以 27±为宜, 故ij a 的取值范围是9,,2,1 及其倒数.表1 比较尺度ij a 的取值 97531/ijj i a x x 绝对强很强强较强相等3.计算层次单排序权重并做一致性检验层次单排序是指同一层次各个元素对于上一层次中的某个元素的相对重要性进行排序. 具体做法是: 根据同一层n 个元素n x x x ,,,21 对上一层某元素y 的判断矩阵A ,求出它们对 于元素y 的相对排序权重,记为n w w w ,,,21 ,写成向量形式T n w w w w ),,,(21 =, 称其为A 的层次单排序权重向量, 其中i w 表示第i 个元素对上一层中某元素y 所占的比重, 从而得到层次单排序.层次单排序权重向量有几种求解方法,常用的方法是利用判断矩阵A 的特征值及特征向 量来计算排序权重向量w .关于正互反矩阵A ,我们不加证明地给出下列结果. (1) 如果一个正互反矩阵n n ij a A ⨯=)(满足),,2,1,,(n k j i a a a ik jk ij ==⨯则称矩阵A 具有一致性, 称元素k j i x x x ,,的成对比较是一致的; 并且称A 为一致矩阵.(2) n 阶正互反矩阵A 的最大特征根n ≥max λ, 当n =λ时, A 是一致的. (3) n 阶正互反矩阵是一致矩阵的充分必要条件是最大特征值 n =max λ.计算排序权重向量的方法和步骤设T n w ),,,(21ωωω =是n 阶判断矩阵的排序权重向量, 当A 为一致矩阵时, 根据n阶判断矩阵构成的定义,有 (2.1)因而满足,nw Aw = 这里n 是矩阵A 的最大特征根, w 是相应的特征向量; 当A 为一般的 判断矩阵时w Aw max λ=, 其中max λ是A 的最大特征值(也称主特征根), w 是相应的特征向 量(也称主特征向量). 经归一化(即)后, 可近似作为排序权重向量, 这种方法称为 特征根法.一致性检验 在构造判断矩阵时, 我们并没有要求判断矩阵具有一致性, 这是由客观事物的复杂性 及人的认识的多样性所决定的. 特别是在规模大、因素多的情况下, 对于判断矩阵的每个元 素来说,不可能求出精确的j i ωω/, 但要求判断矩阵大体上应该是一致的. 一个经不起推敲 的判断矩阵有可能导致决策的失误. 利用上述方法计算排序权重向量, 当判断矩阵过于偏离一致性时, 其可靠性也有问题. 因此,需要对判断矩阵的一致性进行检验, 检验可按如下步骤 进行: (1) 计算一致性指标CI1max --=n nCI λ (2.2)当,0=CI 即n =max λ时, 判断矩阵A 是一致的. 当CI 的值越大, 判断矩阵A 的不一致的程 度就越严重. (2) 查找相应的平均随机一致性指标RI 表2给出了n )11~1(阶正互反矩阵的平均随机一致性指标RI , 其中数据采用了 100~150个随机样本矩阵A 计算得到.(3) 计算一致性比例CRRICICR =(2.3) 当10.0<CR 时, 认为判断矩阵的一致性是可以接受的; 否则应对判断矩阵作适当修正.4. 计算层次总排序权重并做一致性检验 计算出某层元素对其上一层中某元素的排序权重向量后, 还需要得到各层元素, 特别 是最底层中各方案对于目标层的排序权重, 即层次总排序权重向量, 再进行方案选择. 层次 总排序权重通过自上而下地将层次单排序的权重进行合成而得到. 考虑3个层次的决策问题: 第一层只有1个元素, 第二层有n 个元素, 第三层有m 个元 素.设第二层对第一层的层次单排序的权重向量为Tn w ),,,()2()2(2)2(1)2(ωωω =第三层对第二层的层次单排序的权重向量为n k w w w w T kn k k k ,,2,1,),,,()3()3(2)3(1)3( ==以)3(k w 为列向量构成矩阵:n m nm m mn n n w w w w w w w w w w w w W ⨯⎪⎪⎪⎪⎪⎭⎫⎝⎛==)3()3(2)3(1)3(2)3(22)3(12)3(1)3(21)3(11)3()3(2)3(1)3(,,,,,,,,,,,),,,( (2.4) 则第三层对第一层的层次总排序权重向量为)2()3()3(w W w = (2.5) 一般地, 若层次模型共有s 层, 则第k 层对第一层的总排序权重向量为s k w W w k k k ,,4,3,)1()()( ==-(2.6)其中)(k W 是以第k 层对第1-k 层的排序权向量为列向量组成的矩阵,)1(-k w 是第1-k 层对第 一层的总排序权重向量. 按照上述递推公式, 可得到最下层(第s 层)对第一层的总排序权重 向量为)2()3()1()()(w W W W w s s s -=(2.7)对层次总排序权重向量也要进行一致性检验. 具体方法是从最高层到最低层逐层进行 检验. 如果所考虑的层次分析模型共有s 层. 设第l (s l ≤≤3)层的一致性指标及随机一致性指标分别为)()(2)(1,,,l n l l CI CI CI (n 是第1-l 层元素的数目)及)()(2)(1,,,l nl l RI RI RI , 令)1()(1)(1)(],,[-=l l l l w CI CI CI(2.8) )1()(1)(1)(],,[-=l l l l w RI RI RI(2.9)则第l 层对第一层的总排序权向量的一致性比率为s l RICI CRCRl l l l ,,4,3,)()()1()( =+=- (2.10)其中)2(CR 为由(2.3)式计算的第二层对第一层的排序权重向量的一致性比率.当最下层对第一层的总排序权重向量的一致性比率1.0)(<s CR 时, 就认为整个层次结构 的比较判断可通过一致性检验.应用举例问题 在选购电脑时, 人们希望花最少的钱买到最理想的电脑. 试通过层次分析法建立 数学模型,并以此确定欲选购的电脑.1. 建立选购电脑的层次结构模型选择的目标性能价格质量外观售后服务品牌1品牌2品牌3目标层准则层方案层图2-2该层次结构模型共有三层:目标层(用符号z 表示最终的选择目标); 准则层(分别用符号521,,,y y y 表示“性能”、“价格”、“质量”、“外观”、“售后服务”五个判断准则); 方案层(分别用符号321,,x x x 表示品牌1, 品牌2, 品牌3三种选择方案).2.构造成对比较判断矩阵(1) 建立准则层对目标层的成对比较判断矩阵根据表1的定量化尺度, 从建模者的个人观点出发, 设准则层对目标层的成对比较判断矩阵为⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=13123/13/113/12/19/113123/12/122/115/139351A(2.11) (2) 建立方案层对准则层的成对比较判断矩阵,113/1113/1331,123/12/115/13511252/1135/13/11,12/15/1213/1531,1252/1135/13/1154321⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=B B B B B3.计算层次单排序权重向量并做一致性检验先利用Mathematica 计算矩阵A 的最大特征值及特征值所对应的特征向量. 输入<<Miscellaneous\RealOnly.m(*调用只求实数运算的软件包*)A={{1.0,5,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}, {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 的最大特征值,00974.5max =λ及其对应的特征向量T x )304926.0,0960557.0,304926.0,167913.0,88126.0(=输入Clear[x]; x=T[[2,1]];ww2=x/Apply[Plus,x]则得到归一化后的特征向量T w )173739.0,0547301.0,173739.0,0956728.0,502119.0()2(=计算一致性指标1max --=n nCI λ,其中,00974.5,5max ==λn 故.002435.0=CI 查表得到相应的随机一致性指标12.1=RI 从而得到一致性比率002174.0)2(==RICICR 因,1.0)2(<CR 通过了一致性检验,即认为A 的一致性程度在容许的范围之内, 可以用归一 化后的特征向量)2(w 作为排序权重向量. 下面再求矩阵)5,,2,1( =j B j 的最大特征值及特征值所对应的特征向量, 输入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=Eigensystem[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}, {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},{{0.904534,0.301511,0.301511}, {-0.973329,0.162221,0.162221}, {-0.170182,-0.667851,0.724578}}从上面的输出可以分别得到)5,,2,1( =j B j 的最大特征值000.3,00369.3,00369.3,00369.3,00369.354321=====λλλλλ 以及上述特征值所对应的特征向量TT T TT x x x x x )301511.0,301511.0,904534.0()328758.0,174679.0,928119.0()871137.0,46286.0,163954.0()174679.0,328758.0,928119.0()871137.0,46286.0,163954.0(54321=====其中.5,,2,1),,,(321 ==i x x x x i i i i 为求出归一化后的特征向量, 输入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] x4=T4[[2,1]]; w4=x4/Apply[Plus,x4] x5=T5[[2,1]]; w5=x5/Apply[Plus,x5]则输出TT T TT w w w w w )200000.0,200000.0,600000.0()229651.0,12202.0,648329.0()581552.0,308996.0,109452.0()12202.0,229651.0,648329.0()581552.0,308996.0,109452.0(54321=====计算一致性指标)5,,2,1(1=--=i n nCI i i λ,其中,3=n 输入lamda={T1[[1,1]],T2[[1,1]],T3[[1,1]],T4[[1,1]],T5[[1,1]]} CI=(lamda-3)/(3-1)//Chop则输出0,0018473.0,0018473.0,0018473.0,0018473.054321=====CI CI CI CI CI查表得到相应的随机一致性指标)5,,2,1(58.0 ==i RI i计算一致性比率5,,2,1, ==i RI CI CR iii ,输入CR=CI/0.58则输出.0,003185.0,003185.0,003185.0,003185.054321=====CR CR CR CR CR因),5,,2,1(,1.0 =<i CR i 通过了一致性检验. 即认为)5,,2,1( =j B j 的一致性程度在容许 的范围之内, 可以用归一化后的特征向量作为其排序权重向量.4. 计算层次总排序权重向量并做一致性检验购买个人电脑问题的第三层对第二层的排序权重计算结果列于表3.表3以矩阵表示第三层对第二层的排序权重计算结果为⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=2.0229651.0581552.012202.0581552.02.012202.0308996.0229651.0308996.06.0648329.0109452.0648329.0109452.0)3(W)3(W 即是第三层对第二层的权重向量为列向量组成的矩阵. 最下层(第三层)对最上层(第一层)的总排序权向量为)2()3()3(w W w =为了计算上式, 输入W3=Transpose[{w1,w2,w3,w4,w5}]; ww3=W3.ww2则从输出结果得到T w )452037.0,272235.0,275728.0()3(= 为了对总排序权向量进行一致性检验, 计算)2(521)3().,,.,.(w I C I C I C CI =输入CI.ww2则从输出结果得到00152635.0)3(=CI 再计算)2(51)3(],,[w RI RI RI =,输入RI=Table[0.58,{j,5}]; RI.ww2则从输出结果得到 58.0.)3(=I R 最后计算 )3()3()2()3(./...I R I C R C R C +=,可得00480575.0.)3(=R C因为,1.0.)3(<R C 所以总排序权重向量符合一致性要求的范围.根据总排序权重向量的分量取值, 品牌3的电脑是建模者对这三种品牌机的首选. 实验报告1.根据你的设想购置一台计算机, 需考虑什么样的判断准则? 利用层次分析法及数学 软件做出最佳的决策.2.根据你的经历设想如何报考大学, 需要什么样的判断准则? 利用层次分析法及数学 软件做出最佳的决策.3.假期到了, 某学生打算做一次旅游, 有四个地点可供选择, 假定他要考虑5个因素: 费用、景色、居住条件、饮食以及旅游条件. 由于该学生没有固定收入, 他对费用最为看重, 其次是旅游点的景色, 至于旅游条件、饮食, 差不多就行, 住什么地方就更无所谓了. 这四个旅游点没有一个具有明显的优势, 而是各有优劣. 该同学拿不定主意, 请用层次分析法帮助他找出最佳旅游点.4. 假设你马上就要从大学毕业, 正面临择业的问题, 你对工作的选择着重考虑下面几个因素: (1)单位的声誉; (2)收入; (3)专业是否对口; (4)是否有机会深造或晋升; (5)工作地点;(6)休闲时间. 对上述各种因素你可以根据自己的具体情况排序,也可以增加或减少所考虑的因素. 现在有四个单位打算你, 但如果用上述标准来衡量,没有一个单位具有明显的优势,请用层次分析法为你自己做一个合理的选择.。
Matlab求解数组中的最大值及它所在的具体位置
Matlab求解数组中的最⼤值及它所在的具体位置在使⽤Matlab肯定会碰到Matlab求解数组中的最⼤值以及它所在的位置的问题。
博主开始⽤循环的⽅法找,既浪费时间⼜消耗资源,后⾯查找后才发现有简单快速的⽅法。
下⾯就简单介绍⼀下这种⽅法。
1、电脑环境电脑环境:Windows 10 教育版MATLAB:MATLAB R2014a2、⽅法1.1、⼀维数组在Matlab随机⽣成⼀维数组或者⼿动输⼊a = [1,9,24,8,7,16][m,p]=max(a)利⽤max函数,将⼀维数据放⼊max(⼀维数组)中最终利⽤Max函数输出最⼤值和位置1.2、⼆维数组在Matlab随机⽣成或者⼿动输⼊⼆维数组利⽤Max函数来求解最⼤值,但是因为是⼆维数组,所以需要使⽤两次Max函数利⽤find函数来寻找最⼤值在⼆维矩阵中位置最后,输出最终结果补充:Matlab 如何求最⼤特征值和特征向量我就废话不多说了,⼤家还是直接看代码吧~A=[1,4,2,4;1/4,1,1/2,1;1/2,2,1,1/2;1/4,1,2,1];A=[3,2,4;2,0,2;4,2,3][x,y]=eig(A);%求矩阵的特征值和特征向量,x为特征向量矩阵,y为特征值矩阵。
eigenvalue=diag(y);%求对⾓线向量lamda=max(eigenvalue)%求最⼤特征值for i=1:length(A)%求最⼤特征值对应的序数if lamda==eigenvalue(i)break;endendy_lamda=x(:,i)%求矩阵最⼤特征值对应的特征向量整体⽐较简单…以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
如有错误或未考虑完全的地⽅,望不吝赐教。
matlab 二维矩阵最大值
matlab 二维矩阵最大值在我们的生活中,二维矩阵是一个常见的数学概念。
它由行和列组成,可以用于表示各种数据和信息。
而在这些二维矩阵中,最大值是一个重要的概念,它代表了矩阵中的最大数值。
二维矩阵最大值的概念在日常生活中也有很多应用。
比如,在电子表格中,我们经常需要找出某一列或某一行中的最大值,以便进行数据的分析和比较。
在图像处理中,也经常需要找到图像中的最亮的像素点,这个像素点的数值就代表了图像的最大亮度。
在MATLAB中,我们可以很方便地找到二维矩阵的最大值。
只需要使用max函数,并指定相应的维度,就可以得到矩阵中每一行或每一列的最大值。
比如,对于一个4行3列的矩阵A,我们可以使用max(A,[],1)来找到每一列的最大值,使用max(A,[],2)来找到每一行的最大值。
这个功能在实际应用中非常有用。
比如,我们可以利用二维矩阵最大值来进行图像的分割。
先将图像转化为灰度图像,然后将灰度值构成的矩阵作为输入,利用max函数找到最亮的像素点,即图像中的最大亮度。
然后,我们可以将亮度值大于某个阈值的像素点作为目标物体,进行进一步的处理和分析。
除了图像处理,二维矩阵最大值还可以应用于信号处理。
比如,在音频处理中,我们可以将音频信号转化为矩阵形式,然后利用max函数找到音频中的最大振幅。
这个最大振幅可以用来衡量音频的响度,从而对音频进行音量调整和音频增强。
二维矩阵最大值还可以应用于数据分析和优化问题。
比如,在数据分析中,我们经常需要找到某个数据集中的最大值,以便找到数据的峰值和极值。
在优化问题中,我们可以将优化目标表示为一个二维矩阵,然后利用max函数找到最大值,从而找到使目标函数最大化的参数值。
二维矩阵最大值在我们的日常生活中有着广泛的应用。
它可以用于图像处理、信号处理、数据分析和优化问题等领域。
通过利用MATLAB中的max函数,我们可以很方便地找到矩阵中的最大值,并应用于各种实际问题中。
希望本文对读者理解和应用二维矩阵最大值有所帮助。
matlab中求特征向量的函数
MATLAB中求特征向量的函数概述特征向量在计算机视觉、模式识别、信号处理等领域中有着广泛的应用。
而MATLAB作为一种强大的数值计算工具,提供了丰富的函数用于求解特征向量。
本文将对MATLAB中求特征向量的函数进行详细介绍,并给出使用示例。
eig函数eig函数是MATLAB中最常用的求解特征向量的函数之一。
它能够计算方阵的所有特征值和对应的特征向量。
下面是eig函数的基本使用方法:[V, D] = eig(A)其中,A为输入的方阵,V为特征向量矩阵,D为特征值对角矩阵。
接下来,我们将通过一个例子来演示eig函数的使用。
使用示例假设我们有一个2x2的方阵A,如下所示:A = [1 2; 3 4]我们可以使用eig函数来求解特征向量和特征值:[V, D] = eig(A);运行以上代码后,MATLAB会返回特征向量矩阵V和特征值对角矩阵D,我们可以分别打印出结果:disp("特征向量矩阵V:");disp(V);disp("特征值对角矩阵D:");disp(D);结果如下所示:特征向量矩阵V:-0.8246 -0.41590.5658 -0.9094特征值对角矩阵D:-0.3723 00 -5.3727从结果可以看出,特征向量矩阵V的每一列对应一个特征向量,特征值对角矩阵D 的对角线元素对应特征值。
函数说明在上面的示例中,我们通过eig函数求解了一个2x2的方阵的特征向量和特征值。
除了这种最基本的用法外,eig函数还有其他几种用法:只求解特征值如果我们只关心特征值,而不需要特征向量,可以使用以下语法:D = eig(A)这样,MATLAB将只返回特征值对角矩阵D,而不返回特征向量矩阵V。
求解一般矩阵的特征向量除了方阵外,我们还可以使用eig函数求解一般矩阵的特征向量。
这里需要使用以下语法:[V, D] = eig(A, 'vector')其中,’vector’参数表示返回特征值的向量形式,而不是对角矩阵。
fahp最大特征值计算
fahp最大特征值计算FAHP(模糊层次分析法)是一种常见的多属性决策方法,常用于排列或选择决策。
在这种方法中,最大特征值或最小特征值的计算是至关重要的,因此本文将以“FAHP最大特征值计算”为主题进行介绍。
FAHP最大特征值计算的过程可以分为以下几个步骤:1. 构造模糊判断矩阵首先,我们需要构造一个模糊判断矩阵,它可以描述每个因素在不同属性之间的权重关系。
通常,这个矩阵由专家提供,其中每个元素都应该是范围在0到1之间的模糊数值。
这个矩阵可以使用软件工具如MATLAB或EXCEL等来构建。
2. 计算各级比较矩阵接着,我们需要计算各级比较矩阵,这些矩阵可以描述各级因素之间的优劣关系。
我们需要将模糊判断矩阵标准化并计算各行的加权平均值,然后将这些平均值相对比来确定各级因素之间的重要性。
3. 计算加权矩阵利用平均权重,我们可以计算出各级比较矩阵的加权矩阵。
这个加权矩阵可以用来计算出每个因素在各个级别之间的权重。
4. 计算模糊特征向量针对加权矩阵,我们需要计算模糊特征向量。
这是一组关于各个因素的模糊数字,其值代表着在各个级别上的权重。
5. 计算最大特征值最后,我们可以计算最大特征值。
这个值可以告诉我们各级别重要性的相对大小,并且可以用于计算出最终权重向量。
在实际的工程应用中,FAHP最大特征值的计算具有重要的意义。
它可以帮助我们决策时更加准确地判断各个因素之间的权重关系,从而做出最优的选择。
需要注意的是,在计算过程中,我们需要充分考虑专家的经验和意见,并且在矩阵的构造和计算过程中要遵循科学规范,从而保证计算结果的准确性和可靠性。
综上所述,FAHP最大特征值计算虽然涉及到一些复杂的数学计算,但是理解其基本原理和步骤并不难。
只要我们掌握了正确的计算方法和技巧,就可以在实际工作中灵活运用,从而提高决策的精度和效率。
层次分析法判断矩阵
层次分析法判断矩阵层次分析法判断矩阵程序先确定判断矩阵;然后用以下程序就好了:%层次分析法的matlab程序%%%%diertimoxingyiclc,cleardisp(输入判断矩阵);% 在屏幕显示这句话A=input(A=);% 从屏幕接收判断矩阵[n,n]=size(A);% 计算A的维度,这里是方阵,这么写不太好x=ones(n,100);% x为n行100列全1的矩阵y=ones(n,100);% y同xm=zeros(1,100);% m为1行100列全0的向量m(1)=max(x(:,1));% x第一列中最大的值赋给m的第一个分量y(:,1)=x(:,1);% x的第一列赋予y 的第一列x(:,2)=A*y(:,1);% x的第二列为矩阵A*y(:,1)m(2)=max(x(:,2));% x 第二列中最大的值赋给m的第二个分量y(:,2)=x(:,2)/m(2);% x的第二列除以m(2)后赋给y的第二列p=0.0001;i=2;k=abs(m(2)-m(1));% 初始化p,i,k为m(2)-m(1)的绝对值while k>p% 当k>p是执行循环体i=i+1;% i 自加1x(:,i)=A*y(:,i-1);% x的第i列等于A*y的第i-1列m(i)=max(x(:,i));% m的第i个分量等于x第i列中最大的值y(:,i)=x(:,i)/m(i);% y的第i列等于x的第i列除以m的第i个分量k=abs(m(i)-m(i-1));% k等于m(i)-m(i-1)的绝对值enda=sum(y(:,i));% y的第i列的和赋予aw=y(:,i)/a;% y的第i 列除以at=m(i);% m的第i个分量赋给tdisp(权向量:);disp(w);% 显示权向量wdisp(最大特征值:);disp(t);% 显示最大特征值t %以下是一致性检验CI=(t-n)/(n-1);% t-维度再除以维度-1的值赋给CIRI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];% 计算的标准CR=CI/RI(n);% 计算一致性if CR摘要在定性问题的决策中,AHP是一种优秀的方法,其基础是对评价对象的两两比较,并用比较结果构造判断矩阵,而这些都依赖于决策者选用的偏好关系。
matlab幂法求特征值和特征向量方法实现和函数表示
matlab幂法求特征值和特征向量方法实现和函数表示1. 引言在数值分析中,求解特征值和特征向量是一项重要而且经常出现的任务。
特征值和特征向量在矩阵和线性代数中有着广泛的应用,涉及到许多领域,如机器学习、信号处理、结构动力学等。
在matlab中,幂法是一种常用的求解特征值和特征向量的方法,同时也有对应的函数可以实现这一过程。
2. 幂法的原理幂法是一种迭代方法,它利用矩阵的特征值和特征向量的性质,通过不断地迭代计算,逼近矩阵的主特征值和对应的特征向量。
具体来说,假设A是一个n阶矩阵,它的特征值λ1>λ2≥...≥λn,并且对应着线性无关的特征向量v1,v2,...,vn。
如果选择一个任意的非零初始向量x0,并进行以下迭代计算:```x(k+1) = Ax(k) / ||Ax(k)||```其中,||.||表示向量的模长。
不断迭代计算后,x(k)将收敛到矩阵A的主特征向量v1上,并且相应的特征值即为A的主特征值λ1。
3. matlab实现幂法求解特征值和特征向量在matlab中,幂法的实现也非常简单。
可以使用自带的eig函数,该函数可以直接求解矩阵的特征值和特征向量。
使用方法如下:```[V,D] = eig(A)```其中,A为待求解的矩阵,V为特征向量矩阵,D为特征值矩阵。
利用eig函数,即可一步到位地求解矩阵的特征值和特征向量,非常简单方便。
4. 函数表示幂法求解特征值和特征向量的过程可以表示为一个matlab函数。
通过封装相关的迭代算法和收敛判据,可以方便地实现幂法的函数表示。
可以定义一个名为powerMethod的函数:```matlabfunction [lambda, v] = powerMethod(A, x0, maxIter, tol)% 初始化k = 1;x = x0;% 迭代计算while k <= maxItery = A * x;lambda = norm(y, inf);x = y / lambda;% 检查收敛性if norm(A * x - lambda * x) < tolbreak;endk = k + 1;endv = x;end```利用这个函数,就可以自己实现幂法求解特征值和特征向量的过程。
MATLAB 矩阵操作大全
MATLAB 矩阵操作大全转载自:/dengjianqiang2011/article/details/8753807MATLAB矩阵操作大全一、矩阵的表示在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中的实现
信息系统分析与设计作业层次分析法确定绩效评价权重在matlab中的实现小组成员:孙高茹、王靖、李春梅、郭荣1 程序简要概述编写程序一步实现评价指标特征值lam、特征向量w以及一致性比率CR的求解。
具体的操作步骤是:首先构造评价指标,用专家评定法对指标两两打分,构建比较矩阵,继而运用编写程序实现层次分析法在MATLAB中的应用。
通过编写MATLAB程序一步实现问题求解,可以简化权重计算方法与步骤,减少工作量,从而提高人力资源管理中绩效考核的科学化电算化。
2 程序在matlab中实现的具体步骤function [w,lam,CR] = ccfx(A)%A为成对比较矩阵,返回值w为近似特征向量% lam为近似最大特征值λmax,CR为一致性比率n=length(A(:,1));a=sum(A);B=A %用B代替A做计算for j=1:n %将A的列向量归一化B(:,j)=B(:,j)./a(j);ends=B(:,1);for j=2:ns=s+B(:,j);endc=sum(s);%计算近似最大特征值λmaxw=s./c;d=A*wlam=1/n*sum((d./w));CI=(lam-n)/(n-1);%一致性指标RI=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45,1.49,1.51];%RI为随机一致性指标CR=CI/RI(n);%求一致性比率if CR>0.1disp('没有通过一致性检验');else disp('通过一致性检验');endend3 案例应用我们拟构建公司员工绩效评价分析权重,完整操作步骤如下:3.1构建的评价指标体系我们将影响员工绩效评定的指标因素分为:打卡、业绩、创新、态度与品德。
3.2专家打分,构建两两比较矩阵A =1.0000 0.5000 3.0000 4.00002.0000 1.0000 5.00003.00000.3333 0.2000 1.0000 2.00000.2500 0.3333 0.5000 1.00003.3在MATLAB中运用编写好的程序实现直接在MATLAB命令窗口中输入[w,lam,CR]=ccfx(A)继而直接得出d =1.30352.00000.51450.3926w =0.31020.46910.12420.0966lam =4.1687CR =0.0625,通过一致性检验3.4解读程序结果根据程序求解中得出的特征向量,可以得出打卡、业绩、创新以及态度品德在员工绩效评价中所占的权重分别为:0.3102、0.4691、0.1242、0.0966。
线性代数matlab实验指导
实验四 行列式及应用
第1章 矩阵与行列式
实验四 行列式及应用 【实验目的】 1. 了解行列式的概念,掌握行列式的性质 2.掌握行列式的计算方法 3.掌握Gramer法则求解线性方程组 【实验要求】掌握计算行列式det、解线性方程组solve、生成Vandermonde行列式vander等命令 【实验内容】 1.计算下列行列式的值: (1) ;(2) ;
第1章 矩阵与行列式
>> G=inv(A) 运行结果: G = 1/4 1/4 -1/4 1 -2 1 -3/4 5/4 -1/4 >> H=A^5 运行结果: H = 1492 1006 1460 1558 1069 1558 1914 1331 1946
第1章 矩阵与行列式
【矩阵与行列式简介】 在计算机日益发展的今天,线性代数起着越来越重要的作用。线性代数起源于解线性方程组的问题,而利用矩阵来求解线性方程组的Gauss消元法至今仍是十分有效的计算机求解线性方程组的方法。矩阵是数学研究和应用的一个重要工具,利用矩阵的运算及初等变换可以解决求解线性方程组等问题。特殊的矩阵方阵的数字特征之一是方阵的行列式,使用行列式可以描述方阵的一些重要的性质。通过计算行列式可求逆矩阵,n个
第1章 矩阵与行列式
实验三 Gauss消元法
【实验目的】掌握解线性方程组的Gauss消元法 【实验要求】掌握矩阵赋值命令、初等变换相关命令、简化矩阵为阶梯形式rref等命令 【实验内容】
用Gauss消元法解线性方程组:
;
第1章 矩阵与行列式
【实验过程】 1.(1)解法一:Gauss消元法. >>A=[1 2 1 8;1 2 3 10;2 3 1 13;1 2 2 9] ; >>A(2,:)=A(2,:)-A(1,:); >>A(3,:)=A(3,:)-2*A(1,:); >>A(4,:)=A(4,:)-A(1,:) 运行结果: A = 1 2 1 8 0 0 2 2 0 -1 -1 -3 0 0 1 1 >> A([2,3],:)=A([3,2],:) 运行结果: A = 1 2 1 8 0 -1 -1 -3 0 0 2 2 0 0 1 1