有没有大神能用MATLAB做一个迭代法求矩阵的特征值和特征向量的程序呀

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有大神能用MATLAB做一个迭代法求矩阵的特征值和特征向量的程序呀相关的知识,希望对你有一定的参考价值。

参考技术A 雅可比迭代
function [x,n]=jacobi2(A,b,x0,eps,M)
% Jacobi迭代
%A=[9 1 1;1 8 1;1 1 9];
%b=[1;1;1];
%x0=[0;0;0];
%[x,n]=jacobi(A,b,x0)
if nargin==3
eps=1.0e-6;
M=10000;
elseif nargin==4
M=10000;
end
D=diag(diag(A));L=-tril(A,-1);
U=-triu(A,1);B=inv(D)*(L+U);
f=inv(D)*b;x=x0;n=0;
tol=1;
while tol>eps
x=B*x0+f;
n=n+1;
tol=norm(x-x0);%极大范数 等同于tol=max(abs(x-x0))但不能这样用
x0=x;
if(n>=M)
disp('Warning:迭代次数太多,可能不收敛');
break;
end
end
高斯赛德尔迭代
function[x,n]=gauseidel2(A,b,x0,eps,M )
% Detailed explanation goes here
% 解的精度:eps% 迭代步数控制:M
% 解 x% 求解所需的实际步数迭代:n
%[x,n]=gauseidel(A,b,x0)
if nargin==3
eps=1.0e-6;
M=10000;
elseif nargin==4
M=10000;
end
D=diag(diag(A));
L=-tril(A,-1);
U=-triu(A,1);
G=(D-L)\U;
f=(D-L)\b;
x=x0;
n=0;
tol=1;
while tol>=eps
x=G*x0+f;
n=n+1;
tol=norm(x-x0);%算矩阵sup范数
x0=x;
if(n>=M)
disp('Warning:迭代次数太多可能不收敛')
break
end
end本回答被提问者和网友采纳

以上是关于有没有大神能用MATLAB做一个迭代法求矩阵的特征值和特征向量的程序呀的主要内容,如果未能解决你的问题,请参考以下文章

matlab中如何求图像特征值曲线图

求高手给一个matlab提取图像lbp的代码 谢谢啦

急求,matlab中, 已知矩阵A,已完成对A的QR分解,下一步求A的特征值和特征向量,程序怎么编写?

matlab用QR方法怎么求特征值,把程序写出来,谢谢

关于MATLAB自己编程求解特征值的问题?(比如QR法,幂法,牙可比跌代法,等)请教高手

R语言怎么输入一个自定义矩阵?求R大神交流