Jacobi方法求实对称矩阵的特征值和特征向量
来源:互联网 发布:淘宝德国必邦是假药 编辑:程序博客网 时间:2024/04/28 01:03
%本函数采用Jacobi方法计算实对称矩阵的所有特征值和对应特征向量
%返回值D为特征值对角阵,V为对应特征向量构成的正交方阵
%即有V'*A*V=D,V'*V=I
%采用查找绝对值最大的非对角元素方法
function [D,V]=Jaco(A)
tic;
%检验输入是否合法
b=size(A);
if b(1)~=b(2) %行列不等
error('MATLAB:Jaco:Invalid Matrix,The Matrix input should be a Symmetry Phalanx. See Jaco.');
end
n=max(b);
for i=1:n %非对称
for j=1:n
if abs(A(i,j)-A(j,i))>eps %不能用不等号,因为机器有误差
error('MATLAB:Jaco:Invalid Phalanx,The Phalanx input should be a Symmetric one. See Jaco.');
end
end
end
%实际计算
%初始化D,V为单位矩阵,避免多次分配空间
%并且相乘不会造成影响
D=eye(n);
V=eye(n);
%采用扫描绝对值最大A(p,q)的算法
p=0; %储存最大元素所在行
q=0; %储存最大元素所在列
maxpq=0; %储存绝对值最大元素
for i=1:n-1
for j=i+1:n
if abs(A(i,j))>abs(maxpq)
maxpq=A(i,j);
p=i;
q=j;
end
end
end
%
while abs(maxpq)>eps
maxpq=0;%务必清零,否则会死循环
phi=atan2(2*A(p,q),A(p,p)-A(q,q))/2;
U=eye(n);
U(p,p)=cos(phi);
U(q,q)=cos(phi);
U(p,q)=-sin(phi);
U(q,p)=sin(phi);
%返回值D为特征值对角阵,V为对应特征向量构成的正交方阵
%即有V'*A*V=D,V'*V=I
%采用查找绝对值最大的非对角元素方法
function [D,V]=Jaco(A)
tic;
%检验输入是否合法
b=size(A);
if b(1)~=b(2) %行列不等
error('MATLAB:Jaco:Invalid Matrix,The Matrix input should be a Symmetry Phalanx. See Jaco.');
end
n=max(b);
for i=1:n %非对称
for j=1:n
if abs(A(i,j)-A(j,i))>eps %不能用不等号,因为机器有误差
error('MATLAB:Jaco:Invalid Phalanx,The Phalanx input should be a Symmetric one. See Jaco.');
end
end
end
%实际计算
%初始化D,V为单位矩阵,避免多次分配空间
%并且相乘不会造成影响
D=eye(n);
V=eye(n);
%采用扫描绝对值最大A(p,q)的算法
p=0; %储存最大元素所在行
q=0; %储存最大元素所在列
maxpq=0; %储存绝对值最大元素
for i=1:n-1
for j=i+1:n
if abs(A(i,j))>abs(maxpq)
maxpq=A(i,j);
p=i;
q=j;
end
end
end
%
while abs(maxpq)>eps
maxpq=0;%务必清零,否则会死循环
phi=atan2(2*A(p,q),A(p,p)-A(q,q))/2;
U=eye(n);
U(p,p)=cos(phi);
U(q,q)=cos(phi);
U(p,q)=-sin(phi);
U(q,p)=sin(phi);
D=U'*A*U;
V=V*U;
A=D;
%改写maxpq
for i=1:n-1
for j=i+1:n
if abs(A(i,j))>abs(maxpq)
maxpq=A(i,j);
p=i;
q=j;
end
end
end
end
toc;
end
- Jacobi方法求实对称矩阵的特征值和特征向量
- Jacobi方法求实对称矩阵的特征值和特征向量
- 求取对称矩阵特征值和特征向量的Jacobi过关法
- 数组分析 jacobi法求实对称矩阵全部特征值与特征向量 MATLAB实现
- Jacobi法确定对称矩阵特征值与特征向量
- 矩阵特征分解介绍及雅克比(Jacobi)方法实现特征值和特征向量的求解(C++/OpenCV/Eigen)
- Jacobi 方法计算特征值特征向量
- Jacobi迭代求矩阵特征值和特征向量+C代码
- 计算实对称矩阵特征值和特征向量
- 矩阵的特征值和特征向量
- 矩阵的特征值和特征向量
- 矩阵的特征值和特征向量
- 矩阵的特征值和特征向量
- 矩阵的特征值和特征向量
- 矩阵特征值和特征向量
- 矩阵的特征值及相关矩阵特征值和特征向量公式
- armadillo库之对称矩阵的特征值与特征向量
- mkl中使用dsyevd求解实对称矩阵的所有特征向量和特征值
- HTML中类似于ListBox的控件
- LFS安装(5)设置环境变量
- SEO的核心思想
- C专家编程
- 软件工程的25条建议
- Jacobi方法求实对称矩阵的特征值和特征向量
- 生产者,消费者,pthread_cond_t pthread_mutex_t
- TC SRM 552 DIV2
- GNU/Wget 使用手册
- 对称阵的LDL分解
- NOR FLASH AND NAND Flash
- 使用递归算法将批量调用异步处理转化为同步调用,并使用Java模拟ExtJs异步处理同步化(续)
- Cholesky分解
- 基于ARM的嵌入式最小系统研究