You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中可使用Scipy或其他库实现4维或n维插值吗?

多输出二维三次样条实现方案

你要实现的f(A, B) = C,D本质是双输入双输出的三次样条插值,输入为2个自变量,输出为2个因变量,无需专门的“4维三次样条”库,通用科学计算工具即可实现,常用实现路径如下:

Python 实现

使用scipy的插值模块即可完成,分别对两个输出维度做独立的二维三次样条拟合:

  • 如果输入是规则网格点,用bisplrep+bisplev组合:
import numpy as np
from scipy import interpolate

# 输入样本:A_arr、B_arr为所有样本的输入值,C_arr、D_arr为对应输出
tck_c = interpolate.bisplrep(A_arr, B_arr, C_arr, kx=3, ky=3)
tck_d = interpolate.bisplrep(A_arr, B_arr, D_arr, kx=3, ky=3)

# 实现目标函数
def f(a, b):
    return interpolate.bisplev(a, b, tck_c), interpolate.bisplev(a, b, tck_d)
  • 如果输入是不规则散点,改用CloughTocher2DInterpolator构造插值器:
interp_c = interpolate.CloughTocher2DInterpolator(list(zip(A_arr, B_arr)), C_arr)
interp_d = interpolate.CloughTocher2DInterpolator(list(zip(A_arr, B_arr)), D_arr)

def f(a, b):
    return interp_c(a, b), interp_d(a, b)

C++ 实现

可以使用Eigen结合样条拓展库,分别对C、D两个输出构造二维三次样条实例,调用时同步计算两个维度的输出即可。

内容的提问来源于stack exchange,提问作者Red

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 23:15:00