gpt4 book ai didi

python - 使用 SciPy 拟合样条以使用多个 y 值数据集

转载 作者:行者123 更新时间:2023-11-28 17:45:59 26 4
gpt4 key购买 nike

我想使用一组通用的 x 值和三组 y 值生成平滑样条:

xs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

ys1 = [0.2, 0.3, 0.1, 0.8, 0.7, 0.2, 0.1, 0.8, 0.9, 1.1]
ys2 = [0.1, 0.2, 0.4, 0.5, 0.8, 0.3, 0.2, 0.9, 1.2, 1.2]
ys3 = [0.1, 0.1, 0.4, 0.1, 0.9, 0.3, 0.1, 0.8, 0.9, 0.9]

查看样条曲线文档,我不确定我是否使用了正确的函数,但我正在尝试使用 RectBivariateSpline 创建我的样条曲线.我正在尝试做的是类似这样的事情,但是我遇到了很多错误,这让我觉得我可能使用了错误的函数?

import scipy as scip
from scipy.interpolate import RectBivariateSpline

x_arr = scip.array(x_arr)
y_arr = scip.vstack((ys1, ys2, ys3))
spline = RectBivariate(x_arr, x_arr, y_arr)

最佳答案

RectBivariateSpline 用于 3D 样条,其中 Z 坐标作为二维数组给出,每个元素 [i,j]对应位置x[i]y[j]

在您的情况下,您看起来更多的是拥有 3 X 2D 样条,您可以使用以下方法计算:

import scipy
from scipy.interpolate import spline
xnew = scipy.linspace(0, 10, 1000)
ys1 = spline(xs, ys1, xnew, order=3)
ys2 = spline(xs, ys2, xnew, order=3)
ys3 = spline(xs, ys3, xnew, order=3)

如果您想采用平均样条曲线(如您的评论中所述):

ys = np.vstack((ys1,ys2,ys3)).mean(axis=0)

关于python - 使用 SciPy 拟合样条以使用多个 y 值数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18172142/

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