gpt4 book ai didi

java - 对数组(或两个)进行插值

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:34:10 24 4
gpt4 key购买 nike

我正在寻找 Java 库或一些帮助来编写我自己的插值函数。那就是我有两个 double 数组,它们的大小可能不同,但是是有序的。我需要能够估计中间值,然后插入,以便两个数组的大小相同。事实上,插值中出现的点总数是 2 个数组大小的总和减 1。但是每个数组的范围必须保持相同,因此不需要外推。

例如。 a1 = [1, 4, 9, 16, 25, 36] 和 a2 = [6, 9, 14, 30]

结果可能是这样的。

a1 = [1, 2.25, 4, 6.25, 9, 12.25, 16, 25, 36]和a2 = [6, 6.5625, 7.25, 9, 10.0625, 11.25, 14, 25.25, 30]

这些示例是 f(x) = x^2 和 g(x) = x^2 + 5,但是很容易成为任何多项式 - 重点是能够估计/足够好地近似数据集的函数以提供足够好的插值。这里的 x 值只是输入数组的索引。在输出中只有 y 值是重要的。

最佳答案

其他答案为您提供线性插值——这些对于复杂的非线性数据并不适用。 你想要一个spline fit ,(样条插值)我相信。

样条拟合使用数据中的一组控制点描述数据区域,然后在控制点之间应用多项式插值。更多的控制点可以让你更准确地适应,而不是更一般的适应。样条曲线比线性拟合准确得多,比一般回归拟合使用起来更快,比高阶多项式更好,因为它不会在控制点之间做一些疯狂的事情。

我想不起来名字了,但是 Java 中有一些非常适合的库——我建议您寻找一个,而不是编写自己的函数。


**编辑:可能有用的库:**

** 可能有用的理论/代码:**

  • 带代码的样条小程序:link
  • Arkan多段线到贝塞尔样条的样条拟合
  • Theory样条曲线,以及一些拟合数学。如果图书馆不这样做,更多的数学,更少的代码可能会有所帮助。

关于java - 对数组(或两个)进行插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1221944/

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