matlab用QR方法怎么求特征值,把程序写出来,谢谢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab用QR方法怎么求特征值,把程序写出来,谢谢相关的知识,希望对你有一定的参考价值。
题目是用基本QR算法就全部特征值(可用matlab函数“qr”实现矩阵的QR分解)矩阵是nxn的,谢谢
function l = rqrtz(A,M)%QR算法求矩阵全部特征值
%已知矩阵:A
%迭代步数:M
%求得的矩阵特征值:l
A = hess(A);
for i=1:M
N = size(A);
n = N(1,1);
u = A(n,n);
[q,r]=qr(A-u*eye(n,n));
A = r*q+u*eye(n,n);
l = diag(A);
end
------------------------------------
A=[0 5 0 0 0 0;1 0 4 0 0 0;0 1 0 3 0 0;0 0 1 0 2 0;0 0 0 1 0 1;0 0 0 0 1 0]
A =
0 5 0 0 0 0
1 0 4 0 0 0
0 1 0 3 0 0
0 0 1 0 2 0
0 0 0 1 0 1
0 0 0 0 1 0
>> rqrtz(A,50)
ans =
-3.2030
3.2030
-1.8837
1.8837
-0.6167
0.6167
>> eig(A)
ans =
-3.3243
3.3243
-1.8892
-0.6167
1.8892
0.6167 参考技术A 看matlab帮助文件,里边都有例程,电脑没有安装matlab,懒得安装了,但是我知道帮助文件里有这个例子
急求,matlab中, 已知矩阵A,已完成对A的QR分解,下一步求A的特征值和特征向量,程序怎么编写?
已针对矩阵A用自己编写函数[q,r]=qrhs(A)完成了QR分解,要求A的特征值和特征向量该怎么求呢?只会求其特征值,特征向量不知道从哪写起。我的算法:
function I = tzzhs(A,M,j)%基于householder法求特征值的函数
%六阶矩阵:A 求矩阵特征值:I
for i=1:M %多次迭代
[q,r]=qrhs(A);
A = r*q;
I = diag(A);
end
问题1 如何在上述程序的基础上求出特征向量?求程序
2 对求的特征向量验证正确性
3 我要分析迭代次数M对特征值的影响,取M=5,10,50,100,但是对六阶实对称阵而言,现象不明显;对六阶复对称真而言,没有什么规律可言。是什么原因?急,请多指点,不尽感激!
是的,前面已完成了QR分解,就剩求特征值和特征向量,并完成迭代次数对特征值影响的分析了,是要用matlab的语言编写的,能在我编写的程序上略加指点吗?因为比较急,可能没时间看参考书了。
另外问一下:对A采用了两种QR基本算法得到的两个正交阵Q1和Q2,假设他俩是差不多的,就是对应元素相同,现在要对其分析画图等,即使验证这两个矩阵是接近相同的,通常有哪几种表述方法,比较直观呢?
第三个问题应该是阶段误差的原因吧!追问
不用matlab自带的库函数,求QR分解和特征值特征向量都得自己编写。
阶段误差是指?我取的值没有代表性吗?我感觉是我编写的迭代法求特征值太简单了。求解答
“截断误差” ,这个问题我不是很确定,“我取的值没有代表性吗?” 不应该这样讲 是递增的就可以
没时间看参考书我就不推荐了
matlab语言就是简单,你改用fortran试试,就麻烦了,呵呵
以上是关于matlab用QR方法怎么求特征值,把程序写出来,谢谢的主要内容,如果未能解决你的问题,请参考以下文章
急求,matlab中, 已知矩阵A,已完成对A的QR分解,下一步求A的特征值和特征向量,程序怎么编写?