gpt4 book ai didi

python - 将符号矩阵传递给 sympy.lambdify

转载 作者:太空宇宙 更新时间:2023-11-03 12:07:34 25 4
gpt4 key购买 nike

我想在 sympy 中创建一个符号矩阵的函数,然后对其进行 lambdify 以在 numpy 中进行评估。让我们试试这个简单的函数,它返回我输入的值 f(x) = x,但最终我想做一些事情,比如获取矩阵的踪迹,或者做一些更有趣的事情。

当 x 是一个 sympy 时没问题。符号:

import sympy as sy
from sympy import Matrix, MatrixSymbol

x = sy.Symbol('x')
f = sy.lambdify(x, x, 'numpy')
f(Matrix((3,))) # returns Matrix([[3]])

但不是当 x 是一个 sympy.MatrixSymbol 时:

import sympy as sy
from sympy import Matrix, MatrixSymbol

x = sy.MatrixSymbol('x', 2, 2)
f = sy.lambdify(x, x, 'numpy')
f(Matrix((3,))) # should return Matrix((3,)), right?

它告诉我:

lambda() takes no arguments (1 given)

感谢任何想法或指导!

最佳答案

这是一个 cludge hack。 mySymbol 接受一个字符串(保持简短),n 和 m 是所需的矩阵维度。

def makeMatrix(mySymbol,n,m):       #makes a lambdafiable matrix

myMatrix = zeros(n,m)

for i in numpy.arange(n):
for j in numpy.arange(m):
myStr = mySymbol+"_"+str(i)+"_"+str(j)

myMatrix[i,j]=sympify(myStr)

return myMatrix

关于python - 将符号矩阵传递给 sympy.lambdify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24665065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com