
2、MATLAB程序
1 function b=Schmidt_orthogonalization(a) 2 [m,n] = size(a); 3 if(m<n) 4 error('行小於列,無法計算,請轉置后重新輸入'); 5 return 6 end 7 b=zeros(m,n); 8 %正交化 9 b(:,1)=a(:,1); 10 for i=2:n 11 for j=1:i-1 12 b(:,i)=b(:,i)-dot(a(:,i),b(:,j))/dot(b(:,j),b(:,j))*b(:,j); 13 end 14 b(:,i)=b(:,i)+a(:,i); 15 end 16 17 %單位化 18 % for k=1:n 19 % b(:,k)=b(:,k)/norm(b(:,k)); 20 % end
說明1:如果需要單位化,把單位化后的注釋刪除即可
說明2:輸入a為列向量矩陣,輸出b也為列向量矩陣
