三段話搞明白什麼是Krylov子空間迭代法

2021-10-10 08:17:42 字數 1844 閱讀 4525

krylov方法是一種 「降維打擊」 手段,有利有弊。其特點一是犧牲了精度換取了速度,二是在沒有辦法求解大型稀疏矩陣時,他給出了一種辦法,雖然不精確。

假設你有乙個線性方程組:

其中a是已知矩陣,b是已知向量,x是需要求解的未知向量。

當你有這麼個問題需要解決時,一般的思路是直接求a的逆矩陣,然後x就出來了:

但是,如果a的維度很高,比方說1000*1000的矩陣,那麼a就是乙個大型矩陣,大型矩陣是很難求逆的,如果a還是乙個稀疏矩陣,那就更難求了。這時聰明的krylov想到了一種方法來替換a的逆

其中β都是未知標量,m是你來假設的乙個值,最大不能超過矩陣的維度,比如這裡例子裡是1000.

瞧,這麼一處理,我們就不用算a^了。我們只要求出方程裡那些β的值,就齊活兒了。

(krylov通過數學上的推導證明了,當m趨近於矩陣維度時(這裡是1000),算出來的值就是精確解了。當然很少有人會真的把m提到那個數量級來算,那樣就等於新構建了乙個大型線形方程組,計算量還是很大。不過這麼轉換一下也不是沒有好處,畢竟從稀疏矩陣變為了非稀疏矩陣,好求一點,沒準就能直接求逆了。)

(這裡省略了幾步,還要用arnoldi方法做個迴圈,先留個空,有同學需要我再補上)

解β值要帶回第乙個公式,得到以下方程:

有細心的同學一看,說不對勁啊。b的維度是1000,那就是有1000個方程,β的數量小於1000. 那不是方程數大於未知數了嗎?這種情況應該沒法兒求解啊。

對的,這種情況確實沒法兒精確求解,只能求近似解。

方程數大於未知數時常用的方法之一是最小二乘法。那麼這裡可不可以用最小二乘法呢?

一般來說,最小二乘法應用的最重要的條件之一,就是方程須是線性的,最小二乘法一般只用來解線性方程,解非線性的就非常困難,需要進行一些「魔改」,比如基於最小二乘法的levenberg-marquardt and trust-region methods,就是matlab裡的fsolve函式呼叫的演算法,這裡我就不鋪開講了,免得讀者分心。我們觀察了一下這個方程,正好就是線性的,那麼就可以用。

(岔個話,非線性方程組的求解一直是個「老大難」的問題,一般可用的方法只有newton(牛頓)法,對就是三百年前英國那個牛頓,這麼些年一直沒啥進步。我們研究krylov方法,其最重要最廣泛的應用,就是可以跟newton法結合起來,把牛頓法里一般需要手動求解的乙個非常複雜的jacobian矩陣給省去了。創造這一天才結合的科學家將這種耦合演算法稱作jfnk,就是jacobian-free newton krylov的縮寫,意圖一目了然,從此科學家們省去了手推jacobian矩陣的煩惱,人人用了都說好,所以學krylov演算法的同學不順便學一學jfnk就是「入寶山而空手歸」了。)

令這裡r^是指當m為m時的殘量,所謂殘量,就是error,就是我們不想要他存在的乙個量。從上面的第乙個公式就可以看出來,如果我們最終得出的x完全精確,那麼r應該等於0. 於是現在這個問題轉變為求乙個含有多個自變數的表示式的最小值問題。

含有多個自變數的表示式的最小值問題,可以用最小二乘法來解決。最小二乘法的核心就是以下這些個公式:

意思就是在r為最小值的時候,r關於所有變數的偏導都應當為0,這是毫無疑問的。

於是問題轉化為了乙個求m個方程m個未知數的方程組的問題,而且m通常不大(當然,m是你自己設定的,設那麼大不是自找麻煩麼)

這種問題就很好解了,一般用前面的

方法就可以搞定了。

然後問題解決,戰鬥結束。

回顧一下,大概是這樣乙個流程:

大型稀疏矩陣求逆–>krylov方法–>線性方程最小二乘問題–>小矩陣求逆

如何讓將一段話分成三段迴圈淡入淡出

將一段話分成三段,第一段顯示後隱藏後接著第二段顯示隱藏接著第三段,第一段 一直迴圈,要求每次顯示隱藏時文字要淡入淡出。參考 將淡入淡出的動畫效果寫在乙個類中,然後通過js新增移除這個類來實現 keyframes txt fade 50 100 slider text one fade 獲取dom節點...

三段論邏輯

一。承前啟後 前面說過,邏輯學是研究 推論 的學科。推論的有效性取決於它的形式而不取決於它的內容。推論是由命題組成的,而命題又是由詞項組成的。前面一段討論的是命題邏輯,命題邏輯只研究簡單命題和復合命題之間的關係,這種復合邏輯的真值僅僅取決於其支命題的真值,不涉及到命題內部的詞項之間的邏輯關係。命題邏...

百科一段話

div css是 標準 或稱 web標準 中常用術語之一,div css 是一種網頁的布局方法,這一種網頁布局方法有別於傳統的html網頁設計語言中的 table 定位方式,可實現網頁頁面內容與表現相分離。xhtml是the extensible hypertext markup language ...