python sympy中使用numpy高效计算

xiaoxiao2025-05-30  18

python sympy中使用numpy高效计算

问题所在解决办法

问题所在

当使用sympy时,如果将一个符号变量使用.subs方法替换为类型为np.array的变量时,将无法计算出数值结果。如下:

import sympy as sym import numpy as np x = sym.Symbol('x1') y = sym.Symbol('y1') z= sym.exp(x*y) xm = np.array([1+1j,2,3]) ym = np.array([1,2,3]) print(z.subs({'x1':xm, 'y1':ym}))

并且根据官网文档1,subs方法效率极低。

解决办法

根据官方文档给出的办法,可以使用sym.lambdify。

The lambdify function translates SymPy expressions into Python functions, leveraging a variety of numerical libraries.

同样参考1,就是将上边的代码改成如下:

import sympy as sym import numpy as np x = sym.Symbol('x1') y = sym.Symbol('y1') z= sym.exp(x*y) xm = np.array([1+1j,2,3]) ym = np.array([1,2,3]) f=sym.lambdify(('x1','y1'), z, "numpy") print(f(xm,ym))

https://docs.sympy.org/0.7.4/modules/numeric-computation.html ↩︎ ↩︎

转载请注明原文地址: https://www.6miu.com/read-5030955.html

最新回复(0)