出来れば早急にお願いします!!
最小二乗法による一次関数で近似するプログラムです。
不明な点はコンパイル結果で出てくる数値のことですが
プログラムに問題があれば指摘お願いします。
#include <stdio.h>
#include <math.h>
#define EPS 1.0e-5
#define n 4
int main(void){
int i,k;
double x[n],y[n];
double sum_xy=0,sum_x=0,sum_y=0,sum_x2=0;
double a=0,b=0;
for(i=0;i<n;i++){
printf("X座標を入力[%d]:",i,x);
scanf("%f",&x);
printf("Y座標を入力[%d]:",i,y);
scanf("%f",&y);
}
for(k=0;k<n;k++){
sum_xy+=x[k]*y[k];
sum_x+=x[k];
sum_y+=y[k];
sum_x2+=pow(x[k],2);
}
a=(sum_x2*sum_y-sum_xy*sum_x)/(n*sum_x2-pow(sum_x,2));
b=(n*sum_xy-sum_x*sum_y)/(n*sum_x2-pow(sum_x,2));
printf("直線y=(%f)+(%f)x",a,b);
return 0;
}
ーーコンパイル結果ーー
直線y=(-1.#IND00)+(-1.#IND00)x /*括弧内の数値を正常に戻したいです*/
最小二乗法
Re: 最小二乗法
コードはcodeタグで囲んでいただけるとありがたいです。
入力と(できれば)期待される出力を教えてください。
入力と(できれば)期待される出力を教えてください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 最小二乗法
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)