加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

使用最小二乘法与Commons Math和拟合

发布时间:2020-12-14 06:07:57 所属栏目:Java 来源:网络整理
导读:我试图用公共数学来计算多项式中的常数.它看起来像例程存在但我得到了这个错误.有谁看到这个问题? 我试图将这个问题转换为公共数学: https://math.stackexchange.com/questions/121212/how-to-find-curve-equation-from-data 从绘制数据(Wolfram | Alpha链

我试图用公共数学来计算多项式中的常数.它看起来像例程存在但我得到了这个错误.有谁看到这个问题?

我试图将这个问题转换为公共数学:
https://math.stackexchange.com/questions/121212/how-to-find-curve-equation-from-data

从绘制数据(Wolfram | Alpha链接),它看起来不是线性的.所以最好用多项式拟合.我假设您想要拟合数据:

X Y.
1 4
2 8
3 13
4 18
5 24
..
使用二次多项式y = ax2 bx c.

而wolfram alpha提供了很好的实用性.我希望我能得到像沃尔夫拉姆一样的答案.

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);
}

线程“main”中的异常org.apache.commons.math3.exception.MathIllegalArgumentException:这么多预测变量没有足够的数据(3行)(3个预测变量)
????在org.apache.commons.math3.stat.regression.AbstractMultipleLinearRegression.validateSampleData(AbstractMultipleLinearRegression.java:236)
????在org.apache.commons.math3.stat.regression.OLSMultipleLinearRegression.newSampleData(OLSMultipleLinearRegression.java:70)
????在org.berlin.bot.algo.BruteForceSort.main(BruteForceSort.java:108)

最佳答案
validateSampleData()的javadoc声明二维数组必须至少有一行而不是列.

http://commons.apache.org/proper/commons-math/javadocs/api-3.3/org/apache/commons/math3/stat/regression/AbstractMultipleLinearRegression.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读