数值线性代数小结
對于數(shù)值線性代數(shù)(Numerical Linear Algebra,簡稱NLA)來說有三個最重要的問題:線性方程組,線性擬合和特征值計算。從這個觀點(diǎn)來看,NLA的問題
也不是特別的多。但是NLA的復(fù)雜性存在于兩個方面,一個存在于計算工具上,另一個存在于要處理的問題本身。對于第一個問題,由于使用計算機(jī)進(jìn)行數(shù)值運(yùn)算,不可避免
的會產(chǎn)生精度的問題,所以為了避免精度問題和合理的量化精度產(chǎn)生的影響,NLA會變得非常復(fù)雜,對于每一個算法,都會存在對這個算法的分析,現(xiàn)在我個人理解就是擾動
分析。對于每個問題本身,由于矩陣會存在不同的結(jié)構(gòu),為了利用這些結(jié)構(gòu)的特性,針對每一個結(jié)構(gòu)都會有特定的算法來提高解決問題的速度,這樣就會使得同一個問題存在
多個可用的算法,需要使用者針對問題本身做出選擇。
對于NLA來說,可以利用的結(jié)果包括對稱,帶狀,對角和三角(包括上三角和下三角)。另外一個常用的處理方式就是矩陣分塊,使用矩陣分塊,利用程序的局部性提升
計算的性能。
對于如何解決這個問題,有一個paper可以很好的說明這一點(diǎn)(The Decompositional Approach to Matrix Computation)。
在這篇文章中作者之處為了解決現(xiàn)在的問題,我們是先通過矩陣分解(Matrix Decomposition),然后利用分解后的矩陣來解決這些問題的。現(xiàn)在最廣泛流傳的矩陣分解包括LU,
Pivoted LU,LDL,Cholsky,QR,Schur,SVD,Spectral等分解。學(xué)習(xí)NLA,很大一部分就是在學(xué)習(xí)如何進(jìn)行矩陣分解以及如何使用分解來解決問題。
從另外一個角度來看,使用矩陣分解解決問題屬于直接方法(Direct Method)。與之相對應(yīng)的存在另外一種解決問題的方法,稱之為迭代式方法(Iterative Method)。
兩種方法各有利弊,在不用的場景下有不同的用途。對于迭代式方法,比較出名的有Keylov subspace mehtod, 共軛梯度法(Conjugate Gradient)。
將會在接下來的blog中詳細(xì)解釋主要的矩陣分解方法和迭代式方法。
轉(zhuǎn)載于:https://www.cnblogs.com/lacozhang/p/3655537.html
總結(jié)
- 上一篇: C#各种结束进程的方法详细介绍
- 下一篇: (转)一个华科研究生导师的肺腑之言