震えてるよ

解がすげー微弱だけど振動してる。
本当は振動しないはずなので、計算誤差なんだが、どうやって丸めるかね。移動平均なんて取ったら求めた解の特徴が鈍るし、級数展開するにしても点の数が多過ぎてメモリに収まらん。もしくはデータを間引いてから考えるとかになるが...このへんは他の人はどうやってやってるのかなあ。
まあ暫くNumerical Recipesを眺めて考えよう。
あとべき級数
  f(x-x_0)=\sum_{n=0}^Na_n(x-x_0)^n
をコーディングするときに、

a[0]+a[1]*x+a[2]*x*x;

とか、

a[0]+a[1]*x+a[2]*pow(x, 2.0);

とか書くのは犯罪的なコードらしい。よりエレガントなのは、

a[0]+(a[1]+a[2]*x)*x;

らしい。確かにこの方が書き間違いが無いかも。