matlab householder求解线性方程组AX=F A为mn的奇异矩阵 mn 的程序
function x = householder(A,F)
[m,n] = size(A);
if m >= n R = A; Q = eye(m); else [Q,R] = qr(A'); Q = Q'; end
for i = 1:n v = R(i:end,i); v(1) = v(1) + sign(v(1))norm(v); v = v/norm(v); R(i:end,i:end) = R(i:end,i:end) - 2v*(v'R(i:end,i:end)); F(i:end) = F(i:end) - 2v*(v'*F(i:end)); if i < n R(i+1:end,i) = 0; end end
x = R\F;
if m < n x = Q*x'; end
end
原文地址: https://www.cveoy.top/t/topic/cTTW 著作权归作者所有。请勿转载和采集!