最小2乗法による近似

では,このデータに対して,最小2乗法で多項式を当てはめてみましょう.データを最小2乗法で多項式近似するには,stats パッケージの関数 fit を用いるので,そのパッケージを読み込みます.

> with(stats);

Warning, the previous binding of the name transform has been removed and it now has an assigned value

さらに,リストのリストについて転置を求める Transpose を利用するために listTools パッケージを読み込みます.

> with(ListTools);

Warning, the assigned name Group now has a global binding

以下で関数名 f を利用するので,安全のために f の定義を消しておきます.

> unassign('f');

2次多項式で近似するには次のようにします

> fit[leastsquare[[x,y], y=a*x^2+b*x+c]](Transpose(data));

y = .5974025974*x^2+.8822009569*x-0.3847368421e-1

後から使うために,右辺の式を関数 f として定義します.x を含んだ式 exp を x を引数とする関数とするには,unapply(exp, x) を利用します.

> f := unapply(rhs(%), x);

f := proc (x) options operator, arrow; .5974025974*x^2+.8822009569*x-0.3847368421e-1 end proc