两个矩阵同时相似对角化的MATLAB程序.docVIP

两个矩阵同时相似对角化的MATLAB程序.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
两个矩阵同时相似对角化的MATLAB程序.doc

两个矩阵同时相似对角化的MATLAB程序   摘 要:使用Matlab语言设计出实现两个复矩阵同时相似对角化的计算机程序。   关键词:同时相似对角化;Matlab;程序   矩阵对角化是重要的数学方法,但因其计算过程繁琐,人们往往望之生畏,尤其是多个矩阵同时对角化问题,因此本文设计出判断及计算两个复矩阵能否同时相似对角化的Matlab程序,用此能够方便地解决两个复矩阵同时相似对角化问题。   1. 理论基础   定义[1] :设A 、 B是数域 F上两个n 阶矩阵,若存在f 上的 n阶可逆矩阵t ,使得T-1AT 与T-1BT 同时为对角矩阵,则称A 、 B可同时相似对角化.   定理 [1]: 设A 、B 都是复数域C上的n 阶矩阵,若AB=BA 且 A、B 都可对角化,则存在可逆的T,使得 T-1AT、 T-1BT同时为对角形.   证: 因为A 可对角化,所以存在可逆的P,使得   其中 ?d1,…, ?d互不相同且n1+...+ns=n .又 AB=BA(P-1AP)(P-1BP)=(P-1BP)(P-1AP),所以   是准对角矩阵.其中Bi 是 ni阶方阵( i=1,2,…,s).但因为B可对角化,所以它的初等因子都是一次的,于是Bi 的初等因子都是一次的,所以存在 ni 阶可逆方阵 Qi,使得 Qi-1BiQi( i=1,2,…,s)为对角形,于是令 Q=diag[Q1,...,Qs],则必有   是对角形.于是令T=PQ ,则 T可逆,并且   同时都是对角形.   2. 算法设计   定理给出了判定两个矩阵能否同时相似对角化的条件,定理的证明给出了两个矩阵同时相似对角化的方法,据此设计算法如下:   Step1. 依次判定是否AB=BA 、 B是否可以相似对角化、 A是否可以相似对角化,若均是则转 ,否则输出A与B不能同时相似对角化(在MATLAB中可使用命令[P,D]=eig(A)求出一个矩阵P 及对角矩阵 D,再计算P 的行列式的值即可断定 A能否相似对角化)。   Step2. 确定A 的特征根的个数s 及每个特征根的重数ni ,并将 D改写为D=d iag[?d1ni,...,   ?dsns] ( ?d1,...,?ds是 A的互不相同的特征根, ni是 ?di的重数),且对P 的列按照 D中 ?di 的次序进行排列;   Step3. 计算P-1BP=diag[B1,...,Bs] ,且求变换矩阵Qi ,使 Qi-1Bi Qi (i=1,...,s)为对角形;   Step4. 令Q=diag[Q1,...,Qs] , T=PQ,则 T-1AT、 T-1BT同为对角形。   算法的关键步骤是计算P-1BP=diag[B1,...,Bs] ,而其中的P 必须由以下形式的D 来确定: ( D=d iag[?d1ni,...,?dsns]( ?d1,...,?ds是 A的互不相同的特征根, ni是 ?di的重数,n1+...+ns=n),而P 的第i 列 ?gi与 D的对角线上的第 i个元素?di 相对应,即?gi 是A 属于?di 的特征向量。然而MATLAB的相似对角化命令[P,D]=eig(A)所求出的 P与 D未必满足要求,所以必须将MATLAB所求出的 P与 D变形为我们所需要的P 与D ,为此就应该对MATLAB所求出的 D的对角线上的元素重新排列、同时对 P的列也做相应的排列,具体方法是:扫描 的对角线上的元素,每次扫描确定一个特征根的重数,并将该次扫描所得到的相同的特征根集中排列在一起,并对P 的列做同步排列,同时对扫描处理过的元素做出特定的标记,通过若干次扫描而求得 A的特征根个数 s与每个特征根 ?di 的重数ni ,并得到所需要的P 与D。据此思想设计算法如下:   while kn Do:   for i=1 to n Do:   if 已被标记,那么继续 ;   否则将?di 作为一个新的特征根,令:s=s+1(统计特征根个数),k=k+1(已处理过的特征根的个数),ni(s)= ni(s)+1(统计 重数),m=i(记忆最近处理过的 ?di的位置), ?di=b(对 ?di做已处理标记);   for j=i+1 to n Do:   if ?dj已被标记,那么继续 ?dj+1;   else 如果 ?dj= ?dm,那么令:ni(s)= ni(s)+1( ?di 增加重数),k=k+1(又处理一个);   if j-m=1 (即 ?dj与?dm 相邻),那么 D与P 都不必重排;   else 需要交换 P的第 m+1与第 j列,为此构造初等方阵Pij=Pm+1,j ,令P=P*Pij ,同时相应交换 D的元

文档评论(0)

guan_son + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档