📄 householder.m
字号:
function [M,f1,eig1]=householder(A,n)
%%%%%%%%%%%%把一个对称矩阵化为三对角矩阵
%n=5;
%A_{1}=[5,4,3,2,1;4,4,2,2,1;3,2,3,2,1;2,2,2,2,1;1,1,1,1,1];
A_{1}=A;
eig1=zeros(n,1);
for m=1:n-2
f(m)=0;
for i=m+1:n
f(m)=f(m)+A_{m}(i,m)^(2);
end
G(m)=sqrt(f(m))*sign(A_{m}(m+1,m));
h(m)=G(m)^(2)+G(m)*A_{m}(m+1,m);
for k=1:m
u_{k}=zeros(n,1);
end
for i=k+1:n
if i==k+1
u_{m}(i)=A_{m}(i,m)+G(m);
else u_{m}(i)=A_{m}(i,m);
end
end
p_{m}=eye(n)-u_{m}*u_{m}'/h(m);
A_{m+1}=p_{m}*A_{m}*p_{m};
end
M=A_{n-1}
h=0.5; %%%%%%% 节点步长
for k=1:n+1
t(k)=(k-1)*h;
f_{1}(k)=det(M-t(k)*eye(n)); %%% 节点数值
end
f1=f_{1}
eig1=eig(M)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -