MATLAB的稀疏矩陣有什麼應用?
12-28
我看了幾個小時文檔,明白了各個函數的用法,明白了稀疏矩陣可以節省儲存空間和加快運算速度。
我想知道它具體有什麼應用?
最好能舉個簡單的例子。
Simulink的求解引擎也用到了稀疏矩陣。對於隱式求解器,需要在每一步都計算模型的雅可比矩陣。這個矩陣很大,一般是用稀疏矩陣存放的。
很容易想到的一個例子是,比如割韭菜Live推薦系統,或者某韭菜網用戶關係,顯然是一個n*n的矩陣,而n可以有幾百萬之多,而對這個矩陣的分解可能是O(n^2.幾~3)的複雜度,比如LU或者QR,而顯然這個矩陣是非常稀疏的,如果用了稀疏矩陣結構,就是O(n)+O(flop count)的複雜度,可以大幅縮短韭菜分析時間。
在電力系統的潮流計算中,需要求解大規模線性方程組,而其係數矩陣是非常稀疏(即矩陣中有很多0)的,這時我們就希望只存儲非零元素來進行計算,那麼利用稀疏化技術可以極大提高計算效率和速度。
算 pde 的時候只需要相鄰格點,於是差分形式是典型的 sparse
然後 sparse 求逆等等數值演算法和普通矩陣有所不同稀疏矩陣可用於LDPC碼(Low Density Parity Check Code),一種重要通信信道編碼。其中Low Density指校驗矩陣為稀疏矩陣。
在有限元分析中很有用的呀,,,
特定單元的整體剛度矩陣(三節點三角形單元)最終的表達式就是個稀疏陣,在有限元編程過程中,都會利用剛度矩陣的這個特性以及對稱特性的結合,在計算求解過程中進行半帶存儲,以此來簡化計算複雜度和節省儲存空間。
一般的矩陣跑不動的時候用啊……
推薦閱讀:
※卡西歐計算機991cnx怎麼計算矩陣?
※MATLAB、R之類軟體中向量化計算是如何實現的?
※如何寫出比 MATLAB 更快的矩陣運算程序?