在做極線幾何約束和運動恢復結構求取深度資訊時,碰到了幾個齊次方程和超定方程最小二乘解的問題。做一總結:
對於齊次線性方程 a*x =0; 當a的行數大於列數時,就需要求解最小二乘解,在||x||=1的約束下,其最小二乘解為矩陣a'a最小特徵值所對應的特徵向量。求解方法有兩種(matlab):
1. [ v d] =eig(a' *a); d為a' *a的特徵值對角矩陣,v為對應的特徵向量。找到最小特徵值對應的v中的特徵向量即為最小二乘解。
2. 使用svd分解矩陣a,[u s v] = svd(a); 因為根據馬毅的書中的附錄介紹,u 由 a*a'的 特徵向量組成,v 由 a'*a的 特徵向量組成,因此,奇異值矩陣s中最小的奇異值對應的v中的奇異向量即為最小二乘解。
對於超定方程(非齊次線性方程的一種)的最小二乘解的情況。 a*x =b ; 當a的行數大於列數時,就需要求解最小二乘解,具體的數學原理不清楚,在matlab中使用乙個
左除命令就可以得到最小二乘意義下的解。這個解沒有模製的限制,就是實際的解。
matlab: a\b
齊次線性方程組的解 SVD 最小二乘法
ax 0 這是乙個齊次線性方程組 一般的非齊次線性方程組ax b其實也都可以化為齊次方程組的形式,所以比較普遍 先要說明在非齊次方程組中,a到底有沒有解析解,可以由增廣矩陣來判斷 而在齊次方程中 r a b r a 0 r a 根據a來分,只剩下了兩種情況 1.r a 未知數個數n 約束較強 1.1...
齊次線性方程組的解 SVD 最小二乘法
ax 0 這是乙個齊次線性方程組 一般的非齊次線性方程組ax b其實也都可以化為齊次方程組的形式,所以比較普遍 先要說明在非齊次方程組中,a到底有沒有解析解,可以由增廣矩陣來判斷 而在齊次方程中 r a b r a 0 r a 根據a來分,只剩下了兩種情況 1.r a 未知數個數n 約束較強 1.1...
SVD 奇異值分解 及求解最小二乘問題
1.svd 任意矩陣a mxn 都能被奇異值分解為 其中,u是mxm的正交矩陣,v是nxn的正交矩陣,r是由r個沿對角線從大到小排列的奇異值組成的方陣.r就是矩陣a的秩.2.moore pseudo逆 任意矩陣a,若存在矩陣x,使得 則稱x是a的moore pseudo逆,簡稱廣義逆,記為a 矩陣a...