正交分解可以將多個向量分解爲互相正交的多個向量。
可以用QR分解方法或施密特正交化方法,施密特正交化方法一般數值不穩定。
假設有{V1...Vn}向量組,施密特正交化算法原理如下:
結果中{β1...βn}爲一組正交基,{η1...ηn}爲其標準正交基。
matlab代碼如下:
clear all;close all;clc; A=[1 2 3;4 5 6;7 8 9]; %qr正交分解 [Q1, ~] = qr(A); Q1 %施密特正交分解 [m,n] = size(A); Q2 = zeros(m,n); for j = 1:n v = A(:,j); for i = 1:j-1 R(i,j) = Q2(:,i)'*A(:,j); v = v - R(i,j)*Q2(:,i); end R(j,j) = norm(v); Q2(:,j) = v/R(j,j); end Q2