matlab練習程序(正交分解)

正交分解可以將多個向量分解爲互相正交的多個向量。

可以用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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章