house.m
来自「MATLAB科学计算与工程分析源代码源程序4」· M 代码 · 共 24 行
M
24 行
function [v,beta]=house(x)
% 此函数用来计算满足v(1)=1的v和beta使得P=I-beta*v*v'
% 是正交矩阵且P*x=norm(x)*e1
% 编写日期:2007-5-13
n=length(x);
if n==1
error('请正确输入向量!');
else
sigma=x(2:n)'*x(2:n);
v=[1;x(2:n)];
if sigma==0
beta=0;
else
mu=sqrt(x(1)^2+sigma);
if x(1)<=0
v(1)=x(1)-mu;
else
v(1)=-sigma/(x(1)+mu);
end
beta=2*v(1)^2/(sigma+v(1)^2);
v=v/v(1);
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?