5

コモンズ数学を使用して、多項式の定数を計算しようとしていました。ルーチンが存在するように見えますが、このエラーが発生しました。誰かが問題を見ていますか?

この質問を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);
}

スレッド "main" org.apache.commons.math3.exception.MathIllegalArgumentException での例外: 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)

4

2 に答える 2

4

validateSampleData() の javadoc には、2 次元配列には列よりも少なくとも 1 行多い必要があると記載されています。

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

于 2013-01-26T03:41:16.637 に答える