<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=%E5%BB%A3%E7%BE%A9%E4%B8%8A%E7%B4%B0%E6%AE%98%E9%87%8F%E6%96%B9%E6%B3%95</id>
	<title>廣義上細殘量方法 - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=%E5%BB%A3%E7%BE%A9%E4%B8%8A%E7%B4%B0%E6%AE%98%E9%87%8F%E6%96%B9%E6%B3%95"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=%E5%BB%A3%E7%BE%A9%E4%B8%8A%E7%B4%B0%E6%AE%98%E9%87%8F%E6%96%B9%E6%B3%95&amp;action=history"/>
	<updated>2026-05-14T14:17:45Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=%E5%BB%A3%E7%BE%A9%E4%B8%8A%E7%B4%B0%E6%AE%98%E9%87%8F%E6%96%B9%E6%B3%95&amp;diff=402637&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=%E5%BB%A3%E7%BE%A9%E4%B8%8A%E7%B4%B0%E6%AE%98%E9%87%8F%E6%96%B9%E6%B3%95&amp;diff=402637&amp;oldid=prev"/>
		<updated>2025-08-22T10:31:57Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;佇咧數學上，&amp;#039;&amp;#039;&amp;#039;廣義上細殘量方法&amp;#039;&amp;#039;&amp;#039;( 一般簡稱&amp;#039;&amp;#039;&amp;#039;GMRES&amp;#039;&amp;#039;&amp;#039;) 是一个求解線性方程組數值解的疊代方法。這个方法利用佇咧 Krylov 空間內底有著上細殘量的向量來逼近解。Arnoldi 疊代方法去予人用來求解這个向量。&lt;br /&gt;
&lt;br /&gt;
GMRES 方法由 Yousef Saad 和 Martin H . Schultz 佇一九八六年提出。&lt;br /&gt;
&lt;br /&gt;
==GMRES 方法==&lt;br /&gt;
&lt;br /&gt;
需要求解的線性方程組記做&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ Ax=b \ , $。&lt;br /&gt;
&lt;br /&gt;
假設矩陣 _ A _ 是 _ n _ $ \ times $ _ n _ 階的倒反的。進一步，準講 _ b _ 是標準化的，即 | | _ b _ | |=一 ( 佇這篇文章內底，| | ・ | | 是 Euclidean 範數 )。&lt;br /&gt;
&lt;br /&gt;
這个問題的 _ m _ 階 Krylov 子空間是&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ K _ { m }=\ operatorname { span } \ , \ { b , Ab , A ^ { 二 } b , \ ldots , A ^ { m 影一 } b \ } \ , $。&lt;br /&gt;
&lt;br /&gt;
GMRES 通過予伊殘量 _ Ax _ m − _ b _ 上細的向量 _ x _ m ∈ _ K _ m 來逼近 _ Ax _=_ b _ 的精確解。&lt;br /&gt;
&lt;br /&gt;
猶毋過，向量 _ b _ , _ Ab _ ,…, _ A _ m− 一 _ b _ 差不多是線性相依的。所以，用 Arnoldi 疊代方法求得的這組 _ K _ m 的標準正交基&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ q _ { 一 } , q _ { 二 } , \ ldots , q _ { m } \ , $&lt;br /&gt;
&lt;br /&gt;
來取代頂懸彼組基。所以乎，向量 _ x _ m ∈ _ K _ m 寫做 _ x _ m=_ Q _ m _ y _ m，其中 _ y _ m ∈&amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;m 而且 _ Q _ m 是由 _ q _ 一 ,…, _ q _ m 組成的 _ n _ $ \ times $ _ m _ 矩陣。&lt;br /&gt;
&lt;br /&gt;
Arnoldi 過程嘛產生一个 ( _ m _ + 一 ) $ \ times $ _ m _ 階上 Hessenberg 矩陣 $ { \ tilde { H } } _ { m } $ 滿足&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ AQ _ { m }=Q _ { m + 一 } { \ tilde { H } } _ { m } \ , $。&lt;br /&gt;
&lt;br /&gt;
因為乎 $ Q _ { m } $ 是正交的，阮有&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ \ | Ax _ { m }-b \ |=\ | { \ tilde { H } } _ { m } y _ { m }-\ beta e _ { 一 } \ | \ , $，&lt;br /&gt;
&lt;br /&gt;
其中&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ e _ { 一 }=( 一 , 零 , 零 , \ ldots , 零 ) \ , $&lt;br /&gt;
&lt;br /&gt;
是&amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;m + 一的標準基的第一个向量，並且&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ \ beta=\ | b-Ax _ { 零 } \ | \ , $，&lt;br /&gt;
&lt;br /&gt;
其中 $ x _ { 零 } $ 是初初向量 ( 通常是零向量 )。所以，求予得殘量&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ r _ { m }={ \ tilde { H } } _ { m } y _ { m }-\ beta e _ { 一 } $。&lt;br /&gt;
&lt;br /&gt;
的範數上細的 $ x _ { m } $。這是一个 _ m _ 階線性上細平方問題。&lt;br /&gt;
&lt;br /&gt;
這就是 GMRES 方法。佇咧疊代的每一步內底：&lt;br /&gt;
&lt;br /&gt;
一 . 做一步 Arnoldi 疊代方法；&lt;br /&gt;
二 . 走揣會使得 | | _ r _ m | | 上細漢的喔 $ y _ { m } $；&lt;br /&gt;
三 . 計算 $ x _ { m }=Q _ { m } y _ { m } $；&lt;br /&gt;
四 . 若無量無夠細，重複以上的過程。&lt;br /&gt;
&lt;br /&gt;
佇每一步疊代中，著愛計算一改矩陣向量積 _ Aq _ m。對著一般的 _ n _ 階稠密矩陣，這愛計算複雜度差不多二 _ n _ 二改浮點運算。但是對疏疏矩陣，這个計算複雜度減到 O ( _ n _ )。進一步，關於矩陣向量積，佇咧 _ m _ 次疊代中會當進行 O ( _ m _ _ n _ ) 次浮點運算。&lt;br /&gt;
&lt;br /&gt;
==收斂性==&lt;br /&gt;
&lt;br /&gt;
第 _ m _ 次疊代得著佇 Krylov 子空間 _ K _ m 下的上細殘量。因為每一个子空間包含著後一个子空間內底，所以殘量單調遞減。佇咧第 _ n _ 次疊代後，其中 _ n _ 是矩陣 _ A _ 的階數，Krylov 空間 _ K _ n 是完整的&amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;n。所以，GMRES 方法達到精確解。毋過，問題是因為：佇咧極少的幾若改疊代了後 ( 相對的是 _ n _ )，向量 _ x _ m 差不多已經是真精確解的一个真好的逼近。&lt;br /&gt;
&lt;br /&gt;
猶毋過，佇一般情形下這是袂發生的。事實上，Greenbaum，Pták 和 Strakoš 的理論說明矣對每一个單調減少的序列 _ a _ 一 ,…, _ a _ n− 一 , _ a _ n=零，會當揣著一个矩陣 _ A _ 對所有 _ m _ 滿足 | | _ r _ m | |=_ a _ m，其中 _ r _ m 是頂頭所定義的殘量。特別的，有可能揣著一个矩陣，會當予𪜶前 _ n _ −  一改疊代的殘量一直保持做常數，毋過干焦佇最後一改疊代時到零。&lt;br /&gt;
&lt;br /&gt;
佇實驗內底，GMRES 方法定定表現了真好。佇特殊的情形下這會使予人證明。若是 _ A _ 是正定的，著&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ \ | r _ { m } \ | \ leq \ left ( 一-{ \ frac { \ lambda _ { \ mathrm { min } } ( A ^ { T } + A ) } { 二 \ lambda _ { \ mathrm { max } } ( A ^ { T } + A ) } } \ right ) ^ { m / 二 } \ | r _ { 零 } \ | $，&lt;br /&gt;
&lt;br /&gt;
其中 $ \ lambda _ { \ mathrm { min } } ( M ) $ 和 $ \ lambda _ { \ mathrm { max } } ( M ) $ 分別為矩陣 $ M $ 的上小佮上大特徵值。&lt;br /&gt;
&lt;br /&gt;
若是 _ A _ 是對稱的並且是正定的，著&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ \ | r _ { m } \ | \ leq \ left ( { \ frac { \ kappa _ { 二 } ^ { 二 } ( A ) 影一 } { \ kappa _ { 二 } ^ { 二 } ( A ) } } \ right ) ^ { m / 二 } \ | r _ { 零 } \ | $。&lt;br /&gt;
&lt;br /&gt;
其中 $ \ kappa _ { 二 } ( A ) $ 記為 _ A _ 佇咧 Euclidean 範數下跤的條件數。&lt;br /&gt;
&lt;br /&gt;
一般情形下，其中 _ A _ 是無正定的，著&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ \ | r _ { m } \ | \ leq \ inf _ { p \ in P _ { m } } \ | p _ { m } ( A ) \ | \ leq \ kappa _ { 二 } ( V ) \ inf _ { p \ in P _ { m } } \ max _ { \ lambda \ in \ sigma ( A ) } | p ( \ lambda ) | \ , $，&lt;br /&gt;
&lt;br /&gt;
其中 _ P _ m 記為次數無超過 _ m _ 而且 _ p _ ( 零 )=一的多項式的集合，_ V _ 是 _ A _ 的譜分解中的矩陣，而且 σ ( _ A _ ) 是 _ A _ 的譜。粗略的講，當 _ A _ 的特徵值聚集佇遠離原點的區域而且 _ A _ 離正規無蓋遠的時，收縮速度較緊。&lt;br /&gt;
&lt;br /&gt;
所有的無等式只界定殘量，毋是真正精差 ( 確定佮彼陣仔疊代 _ x _ m 之間的距離 )。&lt;br /&gt;
&lt;br /&gt;
==GMRES 方法的拓展 ( Restarted GMRES )==&lt;br /&gt;
&lt;br /&gt;
仝其他疊代方法仝款，為著加緊收斂，GMRES 定定結合預處理方法。&lt;br /&gt;
&lt;br /&gt;
疊代的開銷以 O ( _ m _ 二 ) 增加長，其中 _ m _ 是疊代次數。毋過有當時仔，GMRES 方法佇咧 _ k _ 次疊代後重新開始，即 _ x _ k 閣變做轉來初初值。按呢的方法叫做 GMRES ( _ k _ )。&lt;br /&gt;
&lt;br /&gt;
==佮其他解法的比較==&lt;br /&gt;
&lt;br /&gt;
對稱矩陣來講，Arnoldi 疊代方法變成講 Lanczos 疊代方法。對應的 Krylov 子空間方法叫做 Paige 和 Saunders 的上細殘量方法 ( MinRes )。無像非對稱的情形，MinRes 方法由三項循環關係 ( three-term recurrence relation ) 給出，並且仝款 GMRES 仝款，殘量的範數上細。毋過對一般矩陣，Krylov 子空間方法袂當由短的循環關係 ( short recurrence relation ) 給出。&lt;br /&gt;
&lt;br /&gt;
另外一類方法的由非對稱 Lanczos 疊代方法予出，特別的所在是 BiCG 方法。這利用矣 three-term recurrence relation，但是𪜶無達到上細的殘量，所以對遮的方法殘量袂單調遞減。斂性是袂當保證的。&lt;br /&gt;
&lt;br /&gt;
第三類辦法由 CGS 和 BiCGSTAB 給出。這寡嘛由 three-term recurrence relation 給出 ( 所以，非上優 )。而且可能過早的終止疊代矣而且無達到收斂的目的。遮的方法的想法是合適的選擇共疊代序列所產生的多項式。&lt;br /&gt;
&lt;br /&gt;
所有的對所有矩陣，這三類方法攏毋是上好的；總是有一類的方法予另外一類。因而，各種解法應該愛做實際的試驗，來決定對於予定的問題佗一種是上優的。&lt;br /&gt;
&lt;br /&gt;
==求解上細漢平常時問題==&lt;br /&gt;
&lt;br /&gt;
GMRES 方法其中一部份是求解向量 $ y _ { m } $ 予得&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ \ | { \ tilde { H } } _ { m } y _ { m }-e _ { 一 } \ | \ , $&lt;br /&gt;
&lt;br /&gt;
上細漢。這會當通過計算 QR 分解來實現：揣著一个 ( _ m _ + 一 ) $ \ times $ ( _ m _ + 一 ) 階正交矩陣 Ωm 佮一个 ( _ m _ + 一 ) $ \ times $ _ m _ 上三角矩陣 $ { \ tilde { R } } _ { m } $ 滿足&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ \ Omega _ { m } { \ tilde { H } } _ { m }={ \ tilde { R } } _ { m } $。&lt;br /&gt;
&lt;br /&gt;
三角矩陣的行數比列加一，所以伊的上尾一逝由零組成。所以，伊會當分解掉去&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ { \ tilde { R } } _ { m }={ \ begin { bmatrix } R _ { m } \ \ 零 \ end { bmatrix } } $，&lt;br /&gt;
&lt;br /&gt;
其中 $ R _ { m } $ 是一个 _ m _ $ \ times $ _ m _ 階三角 ( 方 ) 矩陣。&lt;br /&gt;
&lt;br /&gt;
QR 分解會當簡單的進行落去 ( update )，對一步來疊代到後一步疊代。因為逐改 Hessenberg 矩陣只要一行零元素佮一列元素頂懸有所無仝：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ { \ tilde { H } } _ { m + 一 }={ \ begin { bmatrix } { \ tilde { H } } _ { m } &amp;amp; h _ { m } \ \ 零 &amp;amp; h _ { m + 一 , m } \ end { bmatrix } } $，&lt;br /&gt;
&lt;br /&gt;
其中 _ h _ m=( _ h _ 一 _ m _ ,…_ h _ mm ) T。這意味對，Hessenberg 矩陣倒乘 Ωm 的擴大矩陣 ( 通過閣上零元素佮單位元素 )，所得的是類似三角矩陣的矩陣：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ { \ begin { bmatrix } \ Omega _ { m } &amp;amp; 零 \ \ 零 &amp;amp; 一 \ end { bmatrix } } { \ tilde { H } } _ { m + 一 }={ \ begin { bmatrix } R _ { m } &amp;amp; r _ { k } \ \ 零 &amp;amp; \ rho \ \ 零 &amp;amp; \ sigma \ end { bmatrix } } $&lt;br /&gt;
&lt;br /&gt;
這个矩陣會當三角化，若是 σ 為零。為著欲修正這个矩陣，愛需要做 Givens 旋轉&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ G _ { m }={ \ begin { bmatrix } I _ { m 影一 } &amp;amp; 零 &amp;amp; 零 \ \ 零 &amp;amp; c _ { m } &amp;amp; s _ { m } \ \ 零 &amp;amp;-s _ { m } &amp;amp; c _ { m } \ end { bmatrix } } $&lt;br /&gt;
&lt;br /&gt;
其中&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ c _ { m }={ \ frac { \ rho } { \ sqrt { \ rho ^ { 二 } + \ sigma ^ { 二 } } } } \ quad { \ mbox { and } } \ quad s _ { m }={ \ frac { \ sigma } { \ sqrt { \ rho ^ { 二 } + \ sigma ^ { 二 } } } } $。&lt;br /&gt;
&lt;br /&gt;
通過這 Givens 旋轉，所以阮構造&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ \ Omega _ { m + 一 }=G _ { m } { \ begin { bmatrix } \ Omega _ { m } &amp;amp; 零 \ \ 零 &amp;amp; 一 \ end { bmatrix } } $。&lt;br /&gt;
&lt;br /&gt;
事實上，&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ \ Omega _ { m + 一 } { \ tilde { H } } _ { m + 一 }={ \ begin { bmatrix } R _ { m } &amp;amp; r _ { m } \ \ 零 &amp;amp; r _ { mm } \ \ 零 &amp;amp; 零 \ end { bmatrix } } \ quad { \ text { 其中 } } \ quad r _ { mm }={ \ sqrt { \ rho ^ { 二 } + \ sigma ^ { 二 } } } $&lt;br /&gt;
&lt;br /&gt;
是一个三角矩陣。&lt;br /&gt;
&lt;br /&gt;
給出了 QR 分解，上細漢的問題就較𠢕解決矣。注意著&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ \ | { \ tilde { H } } _ { m } y _ { m }-e _ { 一 } \ |=\ | \ Omega _ { m } ( { \ tilde { H } } _ { m } y _ { m }-e _ { 一 } ) \ |=\ | { \ tilde { R } } _ { m } y _ { m }-\ Omega _ { m } e _ { 一 } \ | $。&lt;br /&gt;
&lt;br /&gt;
記 $ \ Omega _ { m } e _ { 一 } $ 為&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ { \ tilde { g } } _ { m }={ \ begin { bmatrix } g _ { m } \ \ \ gamma _ { m } \ end { bmatrix } } $&lt;br /&gt;
&lt;br /&gt;
其中 _ g _ m ∈&amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;m 和 γm ∈&amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;，著&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ \ | { \ tilde { H } } _ { m } y _ { m }-e _ { 一 } \ |=\ | { \ tilde { R } } _ { m } y _ { m }-\ Omega _ { m } e _ { 一 } \ |=\ left \ | { \ begin { bmatrix } R _ { m } \ \ 零 \ end { bmatrix } } y-{ \ begin { bmatrix } g _ { m } \ \ \ gamma _ { m } \ end { bmatrix } } \ right \ | $。&lt;br /&gt;
&lt;br /&gt;
會當予這个表達式上細的向量 _ y _ 為&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ y _ { m }=R _ { m } ^ { 影一 } g _ { m } $。&lt;br /&gt;
&lt;br /&gt;
閣一改，向量 $ g _ { m } $ 會當簡單的來進行落去喔 ( update )。&lt;br /&gt;
&lt;br /&gt;
==Example code==&lt;br /&gt;
&lt;br /&gt;
===Regular GMRES ( python 三 )===&lt;br /&gt;
&lt;br /&gt;
==註記==&lt;br /&gt;
&lt;br /&gt;
==參考==&lt;br /&gt;
&lt;br /&gt;
* A . Meister , _ Numerik linearer Gleichungssysteme _ , 二 nd edition , Vieweg 兩千空五 , ISBN 九百七十八追三分五百二十八分一鋪三千一百三十五刣七 .&lt;br /&gt;
* Y . Saad , _ Iterative Methods for Sparse Linear Systems _ , 二 nd edition , Society for Industrial and Applied Mathematics , 兩千空三 . ISBN 九百七十八追空抹八九千八百七十一孵五百三十四刣七 .&lt;br /&gt;
* Y . Saad and M . H . Schultz , &amp;quot; GMRES : A generalized minimal residual algorithm for solving nonsymmetric linear systems &amp;quot; , _ SIAM J . Sci . Stat . Comput . _ ,&amp;#039;&amp;#039;&amp;#039;七&amp;#039;&amp;#039;&amp;#039;: 八百五十六交八百六十九 , 一千九百八十六 . doi : 十 . 九十五空七千空五十八分之一千一百三十七 .&lt;br /&gt;
* J . Stoer and R . Bulirsch , _ Introduction to numerical analysis _ , 三 rd edition , Springer , New York , 兩千空二 . ISBN 九百七十八追空九三百八十七石得九九五千四百五十二孵三 .&lt;br /&gt;
* Lloyd N . Trefethen and David Bau , III , _ Numerical Linear Algebra _ , Society for Industrial and Applied Mathematics , 一千九百九十七 . ISBN 九百七十八追空抹八七九千八百七十一孵三百六十一孵九 .&lt;br /&gt;
* Dongarra et al . , _ Templates for the Solution of Linear Systems : Building Blocks for Iterative Methods _ , 二 nd Edition , SIAM , Philadelphia , 一千九百九十四&lt;br /&gt;
* https : / / github . com / J-N-ch / GMRES \ _ py \ _ restart&lt;br /&gt;
&lt;br /&gt;
[[分類: 待校正]]&lt;/div&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
</feed>