next up previous
Next: 3.3 レポート課題6A (本日の出席証明) Up: 3 テイラー展開の計算による円周率計算 Previous: 3.1 テイラー展開

3.2 まずは簡単な $ e$ の計算

自然対数の底 (Euler の数, Napier の数とも言う) $ e$ の計算で実践してみましょう。

$ e$ $ e^x=\exp x$$ x=1$ における値なので、テイラー展開

$\displaystyle \exp x=\sum_{n=0}^\infty \frac{x^n}{n!}
$

$ x=1$ を代入して

$\displaystyle e=\exp 1=\sum_{n=0}^\infty \frac{1}{n!}=1+1+\frac{1}{2}+\frac{1}{3!}+\cdots.
$

これを例えば 10 項まで足すと

$\displaystyle \sum_{j=0}^{10}\frac{1}{j!}
=
1+1+\frac{1}{2}+\frac{1}{3!}+\cdots+\frac{1}{10!}
=$$\displaystyle \mbox{\textcolor{red}{$2.7182818$}}$$\displaystyle 01146\cdots$   (赤字の位は正しい)

と (実は小数点以下第7位まで正しい) $ e$ の近似値が得られます。

さて、それでこの計算をどう実行するか。 和の計算は前回やりました。
復習: 和 $ \sum_{j=1}^n a_j$ の計算の定跡
s=0
for j=1 to n
    s=s+($ a_j$ を計算する式)
next j

これを参考に、 一般項 $ a_j=\dfrac{1}{j!}$ が漸化式

$\displaystyle a_0=1,\quad a_j=\dfrac{a_{j-1}}{j}$   $\displaystyle \mbox{($j\ge 1$)}$

で与えられることを利用すると、 次のコードが得られます。
$ \dsp s_n=\sum_{j=0}^n\frac{1}{j!}$$ n=10$ として計算
REM 自然対数の底をテイラー級数で計算
N=10
REM a0, s0
LET A=1
LET S=A
FOR J=1 TO N
  LET A=A/J
  LET S=S+A
NEXT J
PRINT S
END

     色々な N に対する部分和を計算してみよう。 どうするのが良いか? (正解と言えるものはないかもしれないが、 工夫してみよう。)

表示する桁数の指定
例えば変数 S の値を小数点以下 10 位まで表示させるには、 PRINT USING という命令を利用して
  PRINT USING "#.#########": S
(小数点 . の後に # が 10 個続いています。)
とすればOKです。 十進BASICを OPTION ARITHMETIC DECIMAL_HIGH として、 10進1000桁モードで利用すると、1000桁表示されてしまい、 逆に面倒です。こういう場合は、 小数点以下100位 (あるいは少し余裕を見て 110 位とか) まで 表示するのが良いでしょう。 そのためには、# を 100 個並べて
  PRINT USING "#.#######(中略)#####": S
(小数点 . の後に # を 100 個続ける…)
としても良いですが、面倒ですね。少し手助けしておきます。 例えば文字列演算機能を利用して、次のようにしてみましょう。
  FMT$="#."+REPEAT$("#",100)

  PRINT USING FMT$: S


next up previous
Next: 3.3 レポート課題6A (本日の出席証明) Up: 3 テイラー展開の計算による円周率計算 Previous: 3.1 テイラー展開
Masashi Katsurada
平成23年6月15日