我试图使用公共数学来计算多项式中的常数。看起来该例程存在,但我收到此错误。有没有人看到这个问题?
我试图将这个问题转换为 commons-math: https ://math.stackexchange.com/questions/121212/how-to-find-curve-equation-from-data
通过绘制数据(Wolfram|Alpha 链接),它看起来不是线性的。所以最好用多项式拟合。我假设您想要拟合数据:
XY 1 4 2 8 3 13 4 18 5 24 .. 使用二次多项式 y=ax2+bx+c。
wolfram alpha 提供了一个很好的实用程序。我希望我能得到与 wolfram 相同的答案。
http://www.wolframalpha.com/input/?i=fit+4%2C+8%2C+13%2C
例如,通过输入该数据,我会得到:4.5 x-0.666667(线性)
这是代码和错误:
import org.apache.commons.math3.stat.regression.OLSMultipleLinearRegression;
import org.apache.commons.math3.stat.regression.SimpleRegression;
final OLSMultipleLinearRegression regression2 = new OLSMultipleLinearRegression();
double[] y = {
4.0,
8,
13,
};
double[][] x2 =
{
{ 1.0, 1, 1 },
{ 1.0, 2, 4 },
{ 0.0, 3, 9 },
};
regression2.newSampleData(y, x2);
regression2.setNoIntercept(true);
regression2.newSampleData(y, x2);
double[] beta = regression2.estimateRegressionParameters();
for (double d : beta) {
System.out.println("D: " + d);
}
线程“主”org.apache.commons.math3.exception.MathIllegalArgumentException 中的异常:在 org.apache.commons.math3.stat.regression.AbstractMultipleLinearRegression.validateSampleData( AbstractMultipleLinearRegression.java:236) at org.apache.commons.math3.stat.regression.OLSMultipleLinearRegression.newSampleData(OLSMultipleLinearRegression.java:70) at org.berlin.bot.algo.BruteForceSort.main(BruteForceSort.java:108)