我知道有人问了几个与插值相关的问题,但我没有找到任何对我有足够帮助的答案,所以我有以下问题。
我有两个点数组。一个跟踪时间(x 轴),一个跟踪费用(y 轴), 我想要得到这样的东西:
InterpolatingPolynomial[{{0, 10}, {1, 122}, {2, 3.65}, {3, 56.3}, {4, 12.4}, {5, 0}}, x]
(在 Mathematica 中,返回拟合点的构造多项式)。是否有可能返回 func<double,double>
由两个double
构成C# 中的数组?
提前致谢。
最佳答案
This论文准确地描述了您想要的内容。 Vandermonde Determinant该方法实现起来非常简单,因为它需要计算矩阵的行列式以获得插值多项式的系数。
不过,我建议构建一个具有适当接口(interface)的类,因为动态构建 Func 非常复杂(请参阅 here 的示例)。你可以这样做:
public class CosineInterpolation {
public CosineInterpolation(double[] x, double[] y) { ... }
public double Interpolate(double x) { ... }
}
关于c# - 函数插值 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14536927/