Re: [線代] 最小平方法與對稱方陣的問題
來獻醜一下...(′・ω・‵)
底下講的都是 full column rank 的情況。
※ 引述《j0958322080 (Tidus)》之銘言:
: 標題: [線代] 最小平方法與對稱方陣的問題
: 時間: Mon Jan 1 18:50:18 2018
: 在解最小平方法問題 Ax ~ b 時,(A 屬於 M (R))
: m x n
: T T
: 最後得到的解就是 x = (A * A) * A b,
: T T
: 想問一下為什麼不能直接從 (A * A)x = A b 解,
其實可以,畢竟數學上這麼做是對的,只是通常不會這麼做。
理由有很多種,其中一種是用這個方式解出來的解容易不準。
尤其如果 A 本身越接近 singular,本來就已經不容易準了,
解 normal equation 出來會更慘。
至於原因,只要數值計算相關的書都會提到,因為 condition number 會變大。
condition number 越大,這個問題就越敏感 (sensitive),
也就是只要問題稍微擾動一點,解出來的解相對誤差會差很多。
(而且擾動誤差是沒辦法避免的,因為浮點數設計上就是會有)
可以用 normal equation + condition number 做關鍵字去 google,
能查到很多寫的不錯的 lecture,這裏就不贅述了。
:
: 這樣不就只是一個聯立方程組而已嗎??
:
: 我看在計算數學中解這問題通常會使用 QR 分解,
: T -1
: 其中 Q = Q = Q ,所以把 A 拆解成 QR 矩陣的乘積,可得
: T T T T T T
: (A * A)x = A b --> (QR) QRx = (QR) b -->R Rx = (QR) b
這裡,因為不知道你是故意這麼寫的,所以提醒一下。
實務上 QR 分解後不會像這邊這樣寫的去解。
例如 m ≧n 時, 我們會把 A 分解成
┌ R1 ┐
A = QR = [ Q1 Q2 ]│ │ = Q1 R1. (其中 Q, R1 分別是 m x m, n x n 方陣)
└ 0 ┘
最小平方問題會變成
|| R1 x - Q1^T b ||
|| Ax - b || = || Q^T (A x - b) || = || ||
|| Q2^T b ||
上面最小值發生於 R1 x = Q1^T b 時,因此原問題轉為解這個聯立方程組。
不會去解你上面寫的 R^T R x = (QR)^T b,
除了計算量,還有上面提到解 normal equation 的原因是一樣的。
(解這個,和解原本的 normal equation 意思差不多,失去做 QR 的意義...)
:
: (中略)
:
: → j0958322080 : QR分解最後是解聯立方程還是也是要算反矩陣?? 01/02 23:14
數學上,解聯立方程組和算反矩陣是等價的問題。
但算出反矩陣問題很多:
1. 只要用浮點數去存基本上都是近似解,再去乘回原方程組又會產生誤差、
2. 耗費空間儲存反矩陣、
3. 計算量超高。
所以不會這麼做。
直接用高斯消去法 + backward substitution 去解就好了。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.30.202.147
※ 文章網址: https://www.ptt.cc/bbs/Math/M.1514963286.A.033.html
※ 編輯: as7218 (61.30.202.147), 01/03/2018 15:11:30
推
01/03 15:57,
6年前
, 1F
01/03 15:57, 1F
→
01/03 15:57,
6年前
, 2F
01/03 15:57, 2F
→
01/03 15:57,
6年前
, 3F
01/03 15:57, 3F
→
01/03 15:57,
6年前
, 4F
01/03 15:57, 4F
→
01/03 15:57,
6年前
, 5F
01/03 15:57, 5F
推
01/03 20:01,
6年前
, 6F
01/03 20:01, 6F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
線代
3
18