微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 scipy.optimize 在矩形网格上查找二元样条的根

如何解决使用 scipy.optimize 在矩形网格上查找二元样条的根

我在二维网格上有数据点,表示某个我不知道其解析形式的函数 g(x,y)。我想做一个样条插值并找到函数具有我称之为“c”的特定值的点。插值函数工作正常,但是当我尝试使用 scipy 的“root”函数时出现错误

from scipy.optimize import RectBivariateSpline,root
import numpy as np
from numpy.random import rand

# do a spline interpolation on rectangular grid
x = np.linspace(0,1)
g = RectBivariateSpline(x,x,rand(x.shape[0],x.shape[0]))

# I want to find the grid points where g = 0.3,so the function is modified accordingly
c = 0.3
g2 = lambda in1,in2 : g(in1,in2) - c

# find the roots with starting values x01 and x02:
x01 = 0.2
x02 = 0.3
# first option:
root(g2,x01,x02)
#second option:
root(g2,[x01,x02])

选项 1 产生错误

ValueError: object too deep for desired array

而选项 2 加注

TypeError: <lambda>() missing 1 required positional argument: 'y'

我需要如何传递起始值?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。