Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

近似曲線

数値解析みたいなのは全く疎いので質問します。
例えばint[] に100個の値が入っていたとします。その値をグラフで表すと、ギザギザの右肩上がりののグラフです。
この値を近似曲線にするライブラリなどあれば教えて頂きたいのですが。
int[]の値を与えると、近似値が入ったint[]が返ってくるみたいなのはないでしょうか。

2

回答

500

閲覧

2件の回答

評価

0

とりあえず最小二乗法でぐぐってみたら。

評価

0

最小二乗法の直線(ax+b)はわかりました。
int n=x.length;
double sum_xy = 0, sum_x = 0, sum_y = 0, sum_x2 = 0;
for (int i=0; i<n; i++) {
    sum_xy += x[i] * y[i];
    sum_x += x[i];
    sum_y += y[i];
    sum_x2 += Math.pow(x[i], 2);
}
a = (n * sum_xy - sum_x * sum_y) / (n * sum_x2 - Math.pow(sum_x, 2));
b = (sum_x2 * sum_y - sum_xy * sum_x) / (n * sum_x2 - Math.pow(sum_x, 2));
最小二乗法の曲線(ax2 + bx + c)の変数cを求める式が分かりませんでした。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。