Go to the first, previous, next, last section, table of contents.


リスト 練習問題 2 解答「行列による最小二乗近似」

与えられた xy ベクトルは、 以前のようにクイック変数 q1 と q2 にストアされているものとします。 最初の仕事は、問題を行列形式で表現することです。

   m*x + b*1 = y

よって必要なのは、 最初の列ベクトルが x ベクトルで次の列が 1 である、 19x2 の行列です。 そこでまず 1 でできた列ベクトルを作り、 x ベクトルと結合して A 行列を作ります。

2:  [1.34, 1.41, 1.49, ... ]    1:  [ [ 1.34, 1 ]
1:  [1, 1, 1, ...]                    [ 1.41, 1 ]
    .                                 [ 1.49, 1 ]
                                      ...

    r 1 1 v b 19 RET                M-2 v p v t   s 3

ここで @c{$A^T y$} trn(A) * ytrn(A) * A を計算し、割り算します。

1:  [33.36554, 13.613]    2:  [33.36554, 13.613]
    .                     1:  [ [ 98.0003, 41.63 ]
                                [  41.63,   19   ] ]
                              .

 v t r 2 *                    r 3 v t r 3 *

(おや、見覚えある数値だ!)

1:  [0.52141679, -0.425978]
    .

    /

m*x + b*1 = y 形式の方程式を解いていたので、 この数値がそれぞれ mb に違いありません。 間違い無く、これらの値は V MV R を使って解いた結果と一致します。

このお話の教訓: V MV R で 大概の問題は解けるでしょうが、 世の中にはしばしばもっと簡単な方法(ハイレベルの数学関数を使った)が存在する! ということです。

事実、Calc には a F コマンドが組込まれていて、 最小二乗近似を行います。 曲線近似(Curve Fitting) 参照 .


Go to the first, previous, next, last section, table of contents.     利用度数