4求矩阵特征值和特征向量-11.doc

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4求矩阵特征值和特征向量-11

第4章求矩阵特征值和特征向量的方法 本章探讨求矩阵特征值及特征向量的常用数值方法的构造和原理,主要介绍在计算机上常用的求矩阵特征值和特征向量的的常用方法和有关知识。 重点论述幂法的构造内容。 4.1 实际案例 旅游地选择问题通过层次分析法可以转化为求成对比较矩阵的绝对值最大的特征值及其对应的特征向量的问题。 求矩阵的特征值及特征向量的问题在实际的科研和工程问题中经常遇到,在这些问题中解出矩阵(特别是高阶矩阵)特征值或特征向量成为解决问题的关键。 求矩阵的特征值及特征向量的计算机解法也称为代数特征问题的计算方法。 4.2问题的描述与基本概念 定义1 设矩阵,称关于变量的行列式函数 为矩阵A的特征多项式,称方程为特征方程。 定义2若存在某个实数或复数及非零向量满足,则称是矩阵A的一个特征值,而称为对应的一个特征向量。 是关于的n次多项式,矩阵A的特征值就是的零点。 在线性代数中,有求解矩阵A的特征值和特征向量的解法,该解法理论很严密,但由于将特征多项式化为一个n次多项式很复杂且特征方程对舍入误差很敏感,特别当n较大时,这些问题更突出。 由于这些原因,实用中在求解代数特征值问题时一般不用如上的线性代数的方法,而采用本章介绍的迭代加变换的计算机求解方法,这些方法具有编程简单,对舍入误差不敏感等优点。 3 幂法 幂法---把最大特征值直接从矩阵乘出来! 幂法是求矩阵按模最大的特征值及其相应特征向量的方法。 基本思想 利用矩阵的特征值与特征向量的关系 构造迭代向量序列来求矩阵按模最大的特征值及其相应特征向量。 1、构造原理 设方阵, 是A的n个线性无关的特征向量,其对应的特征值为,任取一个非零向量,则有 用A左乘,并利用有 记,可得 假设,,因为,有 令V(k)的第i个分量为,考虑分量比,有 当k充分大时,有,是对应的一个近似特征向量。 用如上求矩阵按模最大的近似特征值及其相应特征向量的方法称为幂法。 2.分析 当时,导致的计算出现上益错误。 定理 设方阵,是A的n个线性无关的特征向量,是对应的特征值,任取一个非零向量,按 构造规范化向量序列,其中表示的绝对值最大的分量,则有 证明 由式(4.3)有 一般的有 记,由,有,再由 有 利用定理可以写出规范化幂法算法 1.输入矩阵A、初始向量,误差eps,实用中一般取; 2.k?1 3.计算V(k) ?Au(k-1) 4.mk ? max(V(k)), mk-1 ? max(V(k-1)) 5.u(k) ? V(k)/mk 6.如果|mk - mk-1|eps,则显示特征值mk 和对应的特征向量u(k),终止 7.k?k+1,转3 如果矩阵A的n个特征值满足 怎样用幂法求按模最小的特征值及相应特征向量? 设特征值为对应的特征向量为,有 因为A的n个特征值都不为零,故A可逆,有 这说明是A-1特征值,x(k)是对应的特征向量。 由,有 于是,求A按模最小的特征值相当于求A-1按模最大的特征值,此时,只要将幂法中的A换为A-1即可。 用幂法求出A-1按模最大的特征值后取其倒数就得到A按模最小的特征值,相应特征向量不变。 用如上方法求矩阵按模最小的特征值及其相应特征向量的称为反幂法。 由于求逆是很费时的,在反幂法迭代公式V(k)=A-1u(k-1)常用解线性方程组AV(k)=u(k-1)的方法求得V(k)。 数值实验案例 编写幂法的通用程序,并用该程序求矩阵 按模最大的特征值及其特征向量,要求误差10-4。观察选择不同初值计算的结果。 幂法规范化算法 输入矩阵A、初始向量u(0),误差eps k?1 3.计算V(k) ?Au(k-1) 4.mk ?max(V(k)), mk-1 ?max(V(k-1)) 5.uk ? V(k)/mk 6.如果| mk - mk-1|eps,则显示特征值?1?和对应的特征向量x(1),终止 7.k?k+1,转3 规范化幂法程序: Clear[a,u,x]; a=Input[系数矩阵A=]; u=Input[初始迭代向量u(0)=]; n= Length[u]; eps= Input[误差精度eps =]; nmax=Input[“迭代允许最大次数nmax=”]; fmax[x_]:=Module[{m=0,m1,m2}, Do[m1=Abs[x[[k]]]; If[m1m,m2=x[[k]];m=m1], {k,1,Length[x]}];m2] v=a.u; m0=fmax[u]; m1=fmax[v]; t=Abs[m1-m0]//N; k=0; While[tepsknmax, u=v/m1;v=a.u;k=k+1;m0=m1; m1=fmax[v];

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档