c++ - 二维插值

标签 c++ python math

给定以下示例数据,我想在 y = 12 和 x = 3.5 处找到 z 的值。我如何在 C++ 中执行此操作?

y = 10
x = [1,2, 3,4, 5,6]
z = [2.3, 3.4, 5.6, 7.8, 9.6, 11.2]

y = 20 
x = [1,2, 3,4, 5,6]
z = [4.3, 5.4, 7.6, 9.8, 11.6, 13.2]

y = 30 
x = [1,2, 3,4, 5,6]
z = [6.3, 7.4, 8.6, 10.8, 13.6, 15.2]

我当前的 Python 代码:

import scipy
import math
import numpy
from scipy import interpolate

x = [1, 2, 3, 4, 5, 6]
y = [10, 20, 30]

Y = numpy.array([[i]*len(x) for i in y])
X = numpy.array([x for i in y])
Z = numpy.array([[2.3, 3.4, 5.6, 7.8, 9.6, 11.2],
                 [4.3, 5.4, 7.6, 9.8, 11.6, 13.2],
                 [6.3, 7.4, 8.6, 10.8, 13.6, 15.2]]) 


tck = interpolate.bisplrep(X, Y, Z)
print interpolate.bisplev(3.5, 15, tck) 

最佳答案

只需进行两次插值。先用Y插值选择两个Z表。然后用 X 进行插值以选择 Z 值。

关于c++ - 二维插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2024274/

相关文章:

c++ Qt QGraphicsItemAnimation 抛球模型

java - 我如何计算我的代码的平均值

algorithm - 工作矩阵平方根

python - 在 TensorFlow 中对 5-D 张量进行上采样

python - 从所选标签返回对象列表

python - 多字 discord 斜杠命令 (PyCord)

iphone - 在ios中绘制数学图表的最佳方法是什么?

c++ - 在 C++ 中计算切线空间

c++ - SVN和SFTP与eclipse同步

c++ - 比较函数不适用于 equal_range