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