引自Numerical Methods Using MATLAB(4版)書籍,如有侵權(quán)請聯(lián)系刪除
前言
這一章主要講求解的方法。
學(xué)習(xí)過程
其中前面的內(nèi)容都是在講向量和矩陣,學(xué)過線代即可跳過。
方法一 高斯消除 Gauss Elimination
高斯消除主要分為兩個步驟,一個為前向消除,一般指將矩陣化簡為上三角矩陣,另一個為后向替代,指從最后一行開始替代求解。
其中,如果遇到對角線元素為0時,我們無法除0消除,這時候我們可以交換行使得對角線為0。
在運算過程中,我們可能會遇到計算誤差,然后在逐步計算中傳播誤差,因此我們可以通過局部比例交換來解決這個問題。就是行交換,如何判斷哪行交換可以更小的減少誤差這點沒看懂。好像是選出每行的最大絕對值,再讓每列除最大絕對值,將權(quán)重最大的交換到前面?
病態(tài)矩陣:有一種矩陣它會因為微小的干擾而對結(jié)果產(chǎn)生較大的相對誤差,比如近似于奇異矩陣,行列式近似于0,等式幾乎都是平行等等這些情況。
方法二 LU分解 LU Factorization
非奇異矩陣可以分解為
。其中
為下三角矩陣,其對角線都為1,
為上三角矩陣,其對角線不為0。
也有可能不能分解為
,這時候可以通過排列矩陣
使得
。
方法三 Jacobi迭代
使用直接法會使得產(chǎn)生錯誤后這個錯誤就一直存在了,但是迭代法可以在之后將錯誤調(diào)整回來。
該迭代原理舉例:
則迭代式可以為:
如果對角線元素大于其行上所有元素絕對值之和,則稱是嚴格對角的。即如果是嚴格對角的,那么
有唯一解
。迭代式迭代的過程數(shù)列
最后會收斂到
。同理,Gauss-Seidel迭代也是如此。
方法四 Gauss-Seidel迭代
我們可以加速Jacobi迭代的收斂速度,于是提出了該方法。
對Jacobi迭代中的例子,Gauss-Seidel迭代的迭代式可以為:
Jacobi迭代和Gauss-Seidel迭代很相似,但在某些情況下,會出現(xiàn)Gauss-Seidel迭代不收斂而Jacobi迭代收斂的情況。
方法五 牛頓法拓展
對于多個方程式求解,牛頓法迭代也是一種方法,但是怎樣的迭代式收斂,我們需要判斷其前提條件。
Jacobi矩陣可以表示為
那么函數(shù)變化可以表示為
定理:對于三維的不動點迭代來說,如果初始值近似于不動點
,且滿足
那么這個迭代可以收斂到。
其迭代公式為:
方法六 Seidel迭代
針對牛頓法改進。
對于非線性方程組的牛頓迭代
詞匯學(xué)習(xí)
octant 八分圓
orthogonal 正交的
determinant 行列式
scalar 標量
tractable 易處理的
cofactor 輔因子
invertible 可逆的
pivoting 交換
pivotal 關(guān)鍵的
equilibrate 平衡
perturbation 干擾
prone 俯臥
permutation 排列