齊次方程組(超定方程組)的最小二乘解,及利用其擬合空間平面

rainbow70626發表於2024-10-13

一、基礎理論
齊次方程組形如:。在一些最佳化,擬合等問題中經常出現,我們常考慮方程多於未知數元數的情況------超定方程組。

首先對於平凡解x=0我們一般不感興趣,一般我們會尋求方程組的非零解。

如果x是方程組的一個解,那麼對於,也是齊次方程組的解,一個合理的假設是隻求滿足的解。

假設A的維數是m×n,一般的m>n(超定),那麼方程組存在精確解的條件是rank(A)<n,即矩陣A列不滿秩。當沒有精確解的時候(rank(A) = n, A列滿秩),我們通常求其最小二乘解,描述為:

求使||Ax||最小化並滿足||x||=1的x。

先介紹一個引理,即對於一個酉陣或半酉陣p()和一個向量x(向量維數等於P列數),有:

將A進行精簡奇異值分解,令:

其中U和V為半酉陣,分別滿足

則:

另,若令:

則問題等效成求使||Dy||最小化並滿足||y||=1的y

需要說明的是對於當前問題,A列滿秩,則D是對角陣,V是酉陣(方陣)

在奇異值分解中D的對角線元素是遞減排列的,那麼只需去取=(0,0,......0,1),則;

,是A最小的奇異值

此時:

即x為V矩陣的最後一列,在此背景下x為A‘A的最小特徵值對應的單位特徵向量。

二、示例

示例:利用空間點擬合空間平面
有平面上的n個點的座標,擬合平面ax+by+cy+d=0

注:這裡不用ax+by+cy+1=0的形式擬合,形成一個Ax=b的非齊次方程組,然後透過廣義逆的方式求解,主要考慮到平面可能過原點等問題。

有m個方程:

用矩陣的方式表示成Ax=0的形式為;

透過上述方式可進行求解。

matlab程式碼如下:

function n = get_plane(X)
%%
% X為平面上的點座標,大小為n×3矩陣
% n為平面的四維向量表示
 
%%
[m,~] = size(X);
a1 = ones(m,1);
A = [X,a1];
[~,~,V] = svd(A,'econ');
n = V(:,4);

原文連結:齊次方程組(超定方程組)的最小二乘解,及利用其擬合空間平面

相關文章