小テスト (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日) /