X=0 5 10 15そ の結果,y=0.0149x^3-0.544x^2+9.3867x-4E-12,R^2=1となり,各ポイントと曲線は全て一致した結果でしたが,上記 の多項式にx=8を代入しても,y=55.906になり,x=10のときのy=54.4よりも小さな値になってしまいます。原因がわかりません。
y=0 35.2 54.4 68.8
No.01336 Re: EXCELを用いた多項式近似 【青木繁伸】 2006/10/16(Mon) 17:45
貴方が書いた計算式に従うと y=47.9064になるんですが?
それと,得られた近似式は0〜15の範囲で単調増加なのでx=10のときのy=54.4よりは小さくなって当たり前ではないかと思います。
なお,与えられたデータ点に3次式を当てはめたとき,係数はCoefficients:となり,x=8のときのyの値は47.923199999999980 になると思います。
Estimate
(Intercept) -1.7225804116449694e-15
x 9.3866666666666667e+00
I(x^2) -5.4400000000000059e-01
I(x^3) 1.4933333333333377e-02
Excelは相変わらず,計算精度を考えていないのと,似たようなことをする機能の結果を統一できない(あっちは少し良くなってもこっちは前のまま悪い。。みたいな)
Excelは捨てた方がいいです。
No.01337 Re: EXCELを用いた多項式近似 【ちゃー坊】 2006/10/16(Mon) 18:29
青木先生,ありがとうございました。
EXCELのバグかと早合点しましたが,私の単純ミスでした。ごめん なさい。EXCELで再計算した結果,y=47.9064になり,やはりRより計算精度がかなり低いようです。余談ですが,Rはインストールしたのです が,まだまだ使いこなせません。よろしければ,Rのプログラムを提示していただけないでしょうか。
No.01338 Re: EXCELを用いた多項式近似 【青木繁伸】 2006/10/16(Mon) 19:03
表示桁数を多くしたり,元に戻したりとか余計なことをしているのと,
これよりスマートなやり方もあるけど,オーソドックスな方法?ということでx <- c(0, 5, 10, 15)
y <- c(0, 35.2, 54.4, 68.8)
ans <- lm(y~x+I(x^2)+I(x^3))
#ans <- lm(y~I(x^3)+I(x^2)+x) # 誤差の出方がちょっと違う
old <- options(digits=20) # 表示桁数変更
summary(ans)
new.x <- 8
sum(ans$coefficients*c(1, new.x, new.x^2, new.x^3))
options(old) # 表示桁数を元に戻す
No.01342 Re: EXCELを用いた多項式近似 【ちゃー坊】 2006/10/17(Tue) 10:23
何とか,Rのプログラムが動きました。感激!!
ありがとうございました。
● 「統計学関連なんでもあり」の過去ログ--- 039 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る