%%%程序编写者 西北工业大学自动化学院 Email: yincwxa2013@mail.nwpu.edu.cn
%% All rights reserved
%雅克比求特征值
clear
clc
a=input('输入一个n阶对称方阵A=')
n=length(a(1,:))
q=2;
Q=eye(n);
while (q>0.0001)
i=1;
j=2;
for t=1:n-1
for s=i+1:n
if abs(a(t,s))>abs(a(i,j))
i=t
j=s
end
end
end
if a(i,i)==a(j,j) cosk=cos(pi/4);sink=sign(a(i,i))*cosk;
else
d=(a(i,i)-a(j,j))/(-2*a(i,j));
t=sign(d)/(abs(d)+sqrt(d^2+1));
cosk=1/sqrt(t^2+1);
sink=t*cosk;
end
for s=1:n
p(s,s)=1;
end
p(i,i)=cosk;
p(j,j)=cosk;
p(i,j)=sink;
p(j,i)=-sink;
p
a1=p'*a*p
Q=Q*p
q=abs(sum(sum(a.^2))-sum(diag(a.^2)))
a=a1;
end
a1
tezhengzhi=diag(a1)
Q
%% 输入一个n阶对称方阵A=[3.5 -6 5;-6 8.5 -9;5 -9 8.5]
转载本文请联系原作者获取授权,同时请注明本文来自殷春武科学网博客。
链接地址:http://blog.sciencenet.cn/blog-748007-751156.html
上一篇:数值分析----三角分解matlab程序
下一篇:LMIs矩阵内部信息定义法