如何将Python数组转换为Symphy矩阵来计算行列式?
我成功地创建了这种python数组:如何将Python数组转换为Symphy矩阵来计算行列式?,python,arrays,python-2.7,matrix,sympy,Python,Arrays,Python 2.7,Matrix,Sympy,我成功地创建了这种python数组: MainMatrix=[[0 for x in range(n)] for y in range(n)] M=Matrix([MainMatrix]) #Conversion of Array to SymPy Matrix M.det() #Computation of Determinant of the Matrix (我更改了矩阵中的一些值) 现在,我想知道是否有可能将其转换为辛矩
MainMatrix=[[0 for x in range(n)] for y in range(n)]
M=Matrix([MainMatrix]) #Conversion of Array to SymPy Matrix
M.det() #Computation of Determinant of the Matrix
(我更改了矩阵中的一些值)
现在,我想知道是否有可能将其转换为辛矩阵,以便计算行列式(假设主矩阵中的所有值都不是整数,有些是辛符号)。我想要这种东西:
MainMatrix=[[0 for x in range(n)] for y in range(n)]
M=Matrix([MainMatrix]) #Conversion of Array to SymPy Matrix
M.det() #Computation of Determinant of the Matrix
(是的,我知道第一行不起作用,但我只是想表达我的意图)
对于这种转换的解决方案,或者寻找主矩阵行列式的任何其他替代方案(请记住,所有条目都不是整数,有些是符号),我们将不胜感激。根据文档示例,只需执行以下操作:
from sympy import *
import math
n=3
n_atoms=8
MainMatrix=Matrix([[0 for x in range(n)] for y in range(n)])
KappaMatrix=Matrix([0 for x in range(n-1)])
MassMatrix=Matrix([0 for x in range(n)])
Kappa=3
ka_by_pi=4
for i in range(1,n):
KappaMatrix[i-1]=3
for i in range(1,n+1):
MassMatrix[i-1]=3
for i in range(2,n):
MainMatrix[i-1]= -KappaMatrix[i-2]/MassMatrix[i-1]
MainMatrix[i-1]= (KappaMatrix[i-2] + KappaMatrix[i-1])/MassMatrix[i-1]
MainMatrix[i-1]= -KappaMatrix[i-1]/MassMatrix[i-1]
MainMatrix[0]=(KappaMatrix[0]+Kappa)/MassMatrix[0]
MainMatrix[0]=-(KappaMatrix[0])/MassMatrix[0]
i=symbols('i')
MainMatrix[0]= -(Kappa/MassMatrix[0])*(math.cos(math.pi*ka_by_pi)+(i*math.sin(math.pi*ka_by_pi)))
MainMatrix[n-1]= -(Kappa/MassMatrix[n-1])*(math.cos(math.pi*ka_by_pi)-(i*math.sin(math.pi*ka_by_pi)))
MainMatrix[n-1]=-(KappaMatrix[n-2])/MassMatrix[n-1]
MainMatrix[n-1]=(KappaMatrix[n-2]+Kappa)/MassMatrix[n-1]
t=symbols('t')
for j in range(0,n_atoms):
MainMatrix[j]=MainMatrix[j]-(t**2)
print(MainMatrix)
您的
main矩阵
格式已正确。您只需将其传递给sympy.Matrix
M = Matrix(MainMatrix)
如果我这样做,然后尝试使用MainMatrix[I-1][I]=2来分配/更改MainMatrix中的一个值#仅举一个例子,那么它给了我一个错误:TypeError:“Zero”对象不支持项目分配我如何完成这个任务?@Raj你能在问题中添加一个示例,并提供所有细节吗?因为它对我有用,但也许我失踪了something@Raj我的意思是,你想要构造的矩阵这里是关于矩阵构造的代码(没有共享,因为它太长):@Raj,这是我能提供的最接近的方法,考虑到我拥有的数据,所以我希望它能帮助你,我更新了答案,看你只能调用一列,所以你可以只做:MainMatrix[1],而不是MainMatrix[1][0]