MATLAB依旧:编写Gram-Schmidt正交化程序,并利用此程序生成随机正交矩阵

十分感谢大家回复及耐心观看解答

第1个回答  2014-07-04
function e=Schmidt(V)
large=size(V);
colums=large(1,1);
row=large(1,2);
sum=0;
for i=2:row
b(:,1)=V(:,1);
e(:,1)=b(:,1)/norm(b(:,1));
for j=1:i-1
e(:,j)=b(:,j)/norm(b(:,j));
matdot(:,j)=dot(V(:,i),e(:,j))*e(:,j);
sum=sum+matdot(:,j);
end
b(:,i)=V(:,i)-sum;
e(:,i)=b(:,i)/norm(b(:,i));
end
%例如运行:
V=[1,2,2;2,1,2;2,2,1]
V =
1 2 2
2 1 2
2 2 1
e=Schmidt(V)
e =
0.3333 0.8085 -0.1026
0.6667 -0.5659 -0.4061
0.6667 0.1617 -0.9081
相似回答