[問題] 用sympy做矩陣公式運算

作者: std92050 (不想去上學)   2022-09-15 21:49:27
對python沒有很了解 描述不清的話請見諒==
我想對一個大小2L+1(不特定)的方陣做一些反矩陣的計算 希望算出以L為變數的公式
矩陣的元素可以由一個函數決定 不過這個函數也depend on L
矩陣大概長這樣 https://i.imgur.com/G9N7xZf.jpg
其實就是除了對角線旁邊兩條以外的元素都是0
我目前是想用sympy來算 有查到的方法是用 sympy.FunctionMatrix 和配合
Lambda帶入上面提到的函數
來構造這個矩陣 但是最後吐出來的是包含
FunctionMatrix(...) 的東西 不是原本預期的包含L的公式
所以想請問要怎麼修改或是有更沒有更好的方法 謝謝
作者: cocoaswifty (coco)   2022-09-15 21:51:00
np
作者: std92050 (不想去上學)   2022-09-15 21:52:00
我記得numpy不能做符號公式計算吧?
作者: chang1248w (彩棠)   2022-09-15 22:23:00
看起來是頭尾兩項有瑕疵的轉移矩陣
作者: std92050 (不想去上學)   2022-09-15 22:43:00
對 其實是把轉移矩陣頭尾砍掉得來的
作者: lycantrope (阿寬)   2022-09-16 08:46:00
能手寫的出來就可以用sympy 寫
作者: papple23g (逆道者)   2022-09-16 12:02:00
計算了L=0~10 行列式都是0 矩陣不可逆?https://pastebin.com/QPP2WMuF
作者: lycantrope (阿寬)   2022-09-16 12:39:00
筆算就知道行列式為0
作者: std92050 (不想去上學)   2022-09-16 13:06:00
但我用cloumn operation算看起來應該是可逆的? 不過我是要把那個矩陣減掉identity再取inverse 不是直接取
作者: papple23g (逆道者)   2022-09-16 15:48:00
可舉例預期輸出含L的公式是什麼東西嗎?
作者: lycantrope (阿寬)   2022-09-16 15:56:00
應該跟樓上寫的一樣只是mat要再減I
作者: papple23g (逆道者)   2022-09-16 16:23:00
那樣的話我認為反矩陣元素無法簡單用L來表達,因為隨著L增加,矩陣元素涉及的計算因子會越多,意味著公式的型態會越複雜,就像量力的矩陣在一些系統下,矩陣越大求解的結果就越精確,但大部分還是得靠numpy數值解去逼近正確結果
作者: chang1248w (彩棠)   2022-09-16 17:19:00
大小要怎麼是2L?中心點是1/3旁邊的0?
作者: lycantrope (阿寬)   2022-09-16 17:23:00
如果是i, j 從1開始中心點應該是 L+1 一直到2L+1改papple的np數值解 https://pastebin.com/aX8syE5r跟sympy不熟,還想不到sympy怎麼改寫
作者: papple23g (逆道者)   2022-09-17 00:25:00
https://bit.ly/3BLi5eg我用sympy令a=1/3,b=2/3,你可以看到光是L=3時,(I-r)^-1的表達式已經變得很誇張了,更遑論要用L表達後續的計算輸出
作者: std92050 (不想去上學)   2022-09-17 22:52:00
我再研究看看 感謝

Links booklink

Contact Us: admin [ a t ] ucptt.com