MATLAB中施密特正交化的實現


1、施密特正交化的概念

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也為列向量矩陣

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM