【发布时间】:2021-11-06 22:49:55
【问题描述】:
我正在尝试对散点进行符号 2D 插值。我利用了
f = scipy.interpolate.interp2d(X, Y, Z)
但我无法使用 SymPy 使插值函数符号化。我需要它对符号区分和其他东西具有象征意义。
我试过了
x = sympy.Symbol("r")
y = sympy.Symbol("s")
f_symbolic = sympy.lambdify((x, y), f(x, y))
给了
TypeError: 无法根据规则“安全”将数组数据从 dtype('O') 转换为 dtype('float64')
您能否指导或帮助我实现符号 2D 插值或如何使 scipy.interpolate.interp2d 对象具有符号?
注意:插值函数如下所示。它由 4 个角点给出。
【问题讨论】:
-
numpy/scipy 不能进行符号计算。那是严格的数字。
-
sympy.lambdify 将 sympy 表达式转换为 numpy 函数(在限制范围内)
-
这是否意味着无法获得符号功能?我想到了另一种方法。如果我没记错的话,我正在寻找一个函数 z(x,y) = ax + bxy + cy + d。所以,也许我可以从方程组中找到系数 a、b、c、d - 因为我知道角落的 4 个点的 (x, y, z)。
标签: python scipy interpolation sympy