使用SPQR求解線性方程組

在slam十四講這本書上,有一個(gè)課后習(xí)題需要找出一種方法求解AX=B。在eigen的官網(wǎng)上,搜索求解器,找到一個(gè)SPQR的方法,需要額外安裝,于是我開始了安裝SPQR的探索,終于成功求解出答案。

從編譯鏈接、到矩陣的輸入,到最后指針的輸出。這個(gè)過(guò)程真是不容易。

先說(shuō)說(shuō)編譯鏈接,主要的問(wèn)題是:undefined referenced to XXX。不討論問(wèn)題如何出現(xiàn),先說(shuō)說(shuō)正確的方法是什么。要使用SPQR的方法,需要在CMakeList.txt做三類動(dòng)作:
1、添加SPQR及依賴庫(kù)的頭文件的Include路徑include_directories.
2、添加SPQR及依賴庫(kù)的庫(kù)文件LIB路徑lind_directories.
3、鏈接項(xiàng)目可執(zhí)行文件與依賴庫(kù)的,靜態(tài)庫(kù)或者共享庫(kù)。target_link_library()
在這個(gè)過(guò)程中l(wèi)inux的技術(shù)get一些,比如ln命令。find / -name "regex"。 dpkg -i ; dpkg -L.

第二部分又遇到一矩陣輸入的問(wèn)題,F(xiàn)ILE*是一個(gè)文件指針,需要指向一個(gè).mm文件,這個(gè)文件是Matrix Market文件格式,可以直接搜索查看。

最后我想調(diào)出求解的值,遇到viod *x;無(wú)法取值的情況,這個(gè)時(shí)候可以使用類型轉(zhuǎn)換,double *pt; pt = (double*) x;可以進(jìn)行取值。

關(guān)于suitespace網(wǎng)址有一個(gè)大學(xué)的教授很厲害的樣子,

https://people.engr.tamu.edu/davis/suitesparse.html

pkgs.com

? ??

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容