何朝葵, 朱永忠, 柳慶新
(河海大學 理學院,南京211100)
向量組的正交化是線性代數中一個極其重要的內容,其在理論研究和工程應用上都很重要[1-4],在歐氏空間中,向量組的正交化方法一般采用Schmidt正交化法,Schmidt正交化法幾何意義很明顯,結構也很完美.但是Schmidt正交化后向量組的正交性不易理解,而且計算也較復雜,部分學者對Schmidt正交化法進行了改進[5].向量組正交化的另一種方法是合同變換法[6-8],它是通過對向量組的度量矩陣進行合同變換來達到把向量組正交化的方法.本文擬通過分析這兩種方法之間的關系,總結出一種比較簡單的新正交化方法——Schmidt初等變換正交化法.此方法具有明顯的幾何意義,計算也簡單,而且很容易在軟件上實現.
已知一組實向量組:α1,α2,…,αm∈n,令A=(α1,α2, …,αm),則
注意到向量組的度量矩陣ATA是實對稱矩陣,所以存在m階可逆矩陣Q,使得
QTATAQ=Λ=diag(k1,k2,…,km).
令B=AQ,則BTB=diag(k1,k2,…,km),把矩陣B列劃分,即B=(β1,β2, …,βm),則

所以向量組正交化的合同變換法就是對矩陣K中的ATA進行合同變換,同時對K中的A進行合同變換中的初等列變換,當把ATA化為對角矩陣時,矩陣A相應地化為矩陣B,矩陣B的列向量組就是所求的一個正交向量組.因為合同變換不唯一,導致矩陣Q不唯一,這樣B也就不唯一,所以得到的正交化向量組也不唯一.但是如果對合同變換所實施的初等變換進行特定規范化,就可得到特定的矩陣Q和B,從而得到特定的正交化向量組.在此,對合同變換做如下規范:不進行第一類和第二類初等變換,僅按步驟進行第三類初等變換.


則β1和β2是正交的,又注意到

所以矩陣(1)等于
(2)

最后得到正交向量組:
這就是Schmidt正交化向量組.因此,在合同變換法中只實施如上規范化的初等列變換,則得到的正交化向量組就是Schmidt正交化向量組,整個變換過程就是對矩陣K進行初等列變換,利用對角線元素依次把度量矩陣對角線上方每一行的元素化為零.如果允許已知向量組線性相關的情形,則在處理過程中可能會出現〈βi,βi〉=0情形,此時只需跳過第i步,直接進行第i+1步即可.
把上述特定初等列變換稱為規范化初等列變換;若把列改為行,則稱為規范化初等行變換.既然合同變換法規范化后得到的正交向量組就是Schmidt正交化向量組,這說明Schmidt正交化可以通過上述規范化的初等變換來實現.稱這種由合同變換法中利用規范化初等變換后得到Schmidt正交化向量組的方法為Schmidt初等變換正交化法.

解令A=(α1,α2,α3),則
所以,已知向量組Schmidt正交化后為

考慮向量組:α1,α2,…,αm∈n,由于投影向量:
第一步 實際上是把向量組后m-1個向量都減去它們在α1上的投影向量,原向量組化為

第二步 把上一步得到的向量組后m-2個向量都減去它們在β2上的投影向量,向量組化為

為正交向量組,原向量組化成
依次這樣,第m-1步后原向量組就化成了Schmidt正交化向量組:
合同變換規范化后,程序的編制很簡單,利用軟件Matlab編制的Schmidt初等變換正交化法程序如下:
function [B,eta] = Schmidt( A )
%Schmidt初等變換正交標準化
% 正交化
K=[A′*A,A′];
[m,n]=size(K);
for i=1:m-1
for j=i+1:m
if K(i,i)>0
K(j,:)=K(j,:)-K(i,j)/K(i,i)*K(i,:);
end
end
end
B=K(:,m+1:n)′;
% 標準化
j=0;
for i=1:m
if K(i,i)>0
j=j+1;
eta(:,j)=B(:,i)/sqrt(K(i,i));
end
end
end
在工作窗口輸入
A=[0 1 1;1 1 0;1 0 1;0 -1 1];
[B,eta]=Schmidt(A)
輸出結果為:
B =

eta =

與例1計算結果一致.
若輸入
A=[1 -1 3 1;-1 1 -1 4];
[B,eta]=Schmidt(A)
輸出結果為:
B =

eta =

這表明此方法對已知向量組線性無關的情形也有效.
通過分析合同變換正交化法和Schmidt正交化法的關系,找到了利用初等變換來實施Schmidt正交化的方法,且給出了這種方法的幾何解釋,并編制了相應的程序,這能夠幫助讀者加深對Schmidt正交化法的理解.
致謝感謝審稿專家對本文提出的建議.