Schmidt方法(单位正交化)matlab程序
02-11
Schmidt 方法(单位正交化)matlab 实现程序
function V =danweizhengjiaohua(P)
colum = size(P,2);%%获得P 的列数
for i = 1:colum
U(:,i) = P(:,i);
if i == 1
V(:,i) = U(:,i)/sqrt(dot(U(:,i),U(:,i)));
else
Uu = U(:,i);
for j=1:i-1
Uu = Uu - dot(P(:,i),U(:,j))/dot(U(:,j),U(:,j))*U(:,j); end
U(:,i) = Uu;
if dot(U(:,i),U(:,i)) == 0
V(:,i) = zeros(size(U(:,i)));
else
V(:,i) = U(:,i)/sqrt(dot(U(:,i),U(:,i)));
end
end
end