基于一组点估算多项式的Java库

5

多项式的次数应该是点数减1,例如如果给出2个点,则应该是一条直线。

我知道可以使用矩阵来解决这个问题。

例如,如果有4个点:
多项式将会是y = ax^3 + bx^2 + cx + d,矩阵将会是:

| y0 |         | x0^3    x0^2    x0    1 |     | a |
| y1 |    =    | x1^3    x1^2    x1    1 |  x  | b |
| y2 |         | x2^3    x2^2    x2    1 |     | c |
| y3 |         | x3^3    x3^2    x3    1 |     | d |

我可以解出a、b、c、d。有没有一种库能够通过输入点{x0,y0}到{xn,xn}来执行此操作?


2
Apache Commons Math http://commons.apache.org/proper/commons-math/ - nkcode
1个回答

3

请查看Jama,特别是它的QRDecomposition类,网址为http://math.nist.gov/javanumerics/jama/

我正在写一个非常相似的东西,我发现普林斯顿大学CIS项目中的这个对我很有帮助。

http://introcs.cs.princeton.edu/java/97data/MultipleLinearRegression.java.html

唯一的问题是来自Jama的结果没有返回x截距,因此你的方程式中没有d。

你也可以使用Excel中的数据分析工具并点击回归,它会返回你数据集的统计信息和最适合你的数据的方程式。


谢谢!这个库正好有我需要的,即Matrix.solve。 - user3669539

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接