给定方程取决于未知变量 (y) 和一组参数。给定具有参数值的网格的每个元素,我想对 y 进行数值求解。
我尝试的解决方案的简化示例如下(y 是未知变量,x 是参数):
import numpy as np
import sympy as sp
x,y=sp.symbols('x y')
xgrid=np.arange(1,6)
f = sp.lambdify(x,sp.nsolve(x**2+y,y,2),"numpy")
print(f(xgrid))
但是,我收到以下错误:“预期为一维数值函数”。我期待为 xgrid 中的每个值 x 收到一个 y=-x**2 的向量。
请注意,实际感兴趣的函数不是示例中的 y=-x**2,而是隐含在 x in y 中的非线性函数。
我是否被迫对网格中的每个值进行循环,还是我仍然可以以某种方式使用lambdify?提前致谢!