小テスト (7月8日)
最小二乗法
サンプルデータ
のように、一行目にデータ数、二行目以降にスペースで区切られた
(x, y)データの組が与えられたとき、このデータに対する
最小二乗法を行いデータによく当てはまる直線 y = ax + b を
求めaとbを表示するプログラムを書け。
ファイル名は第1引数から取得せよ。
最小二乗法については、ここを見よ。
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *fp;
int i, n;
double x, y;
if (argc != 2) {
fprintf(stderr, "file name needed\n");
return 1;
}
fp = fopen(argv[1], "r");
if (fp == NULL) {
fprintf(stderr, "cannot open %s\n", argv[1]);
return 1;
}
fscanf(fp, "%d", &n);
for (i=0; i<n; i++) {
fscanf(fp, "%lf", &x);
fscanf(fp, "%lf", &y);
// このへんを書く
}
fclose(fp);
// このへんを書く
return 0;
}
小テスト (7月8日)
/