在我的一個matlab代碼中,我必須處理某個給定矩陣的Cholesky因式分解。我通常調用chol(A,'lower')
來生成下三角因子。Cholesky分解
現在,用profiler
檢查我的代碼,很明顯功能chol
是非常耗時的,特別是如果輸入矩陣的大小變大。
因此,我想知道,如果有任何有價值的替代內置chol
函數。
我一直在想LAPACK
函數庫,也就是spptrf
函數。它是否可用於MATLAB
?
任何暗示或支持都是值得歡迎的。
EDIT
只是作爲一個例子,分析器檢索此信息:
其中Coh_u
具有大小(1395*1395)
。還有,要注意的是,chol
被稱爲4000
次,因爲我需要膽甾醇因子4000
不同的配置。
背後幕後Matlab通常使用高質量的數字圖書館,這些數字圖書館在準確性,精度和速度上與現成的圖書館如BLAS,LAPACK等相同(廣義上講)。事實上,在某些情況下,Matlab使用那些庫。這很可能,但我沒有檢查,他們的'chol'的實現使用這樣的代碼。比我更好的程序員(儘管可能並不比你更好)試圖實現(以某種方式)更快的Matlab數字例程實現,並失敗了。 – 2013-02-26 14:32:35
此刻我正在比較我的代碼的性能與另一個,用'fortran'編寫,並使用lapack'spptrf'。feelinf是'spptrf'比'chol'快得多,儘管在比較兩種不同語言的類似代碼時總是需要小心謹慎。我懷疑'MATLAB'內部調用'LAPACK'庫,但我不太確定。 – fpe 2013-02-26 14:39:06