Newton法を使って逆数を求めるには、以下の漸化式を使います。
これは多項式にも適用することができます。具体的な例として、Bernouli数を計算してみます。Bernouli数は以下の式で定義される数列です。
微分してt=0を代入すると不定になるので代数的に求めることはできず、通常はを求めるには極限値を計算する必要があります。左辺の指数関数にMaclaurin展開を適用すると、以下のように多項式の逆数と考えることができます。
分母の多項式をyとして、漸化式を使ってを35次まで求めてみましょう。/* 4.4.8m */ p : 35 + 2$ y : sum(t ^ j / factorial(j+1), j, 0, p - 2)$ prec : 1$ x : 1$ while prec < p - 1 do ( prec : 2 * prec, if prec > p - 1 then prec : p - 1, z : x, z : z ^ 2, w : taytorat(taylor(y, t, 0, prec - 1)), z : w * z, x : 2 * x - z, x : taytorat(taylor(x, t, 0, prec - 1)))$ x : expand(x)$ print(x)$ for i : 0 thru hipow(x, t) do print("B", i, "=", coeff(x, t, i)*i!)$
使用した機能
参考文献
- Crandall, Mathematica―理工系ツールとしての (アジソン ウェスレイ・トッパン情報科学シリーズ) p.73-p.75