[问题] 用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