next up previous contents
Next: の近似計算 Up: 2.3.2 Taylor 級数の計算 Previous: 2.3.2 Taylor 級数の計算

$ e$ の近似計算

$ n=1,\cdots,20$ に対して $ s_n=\displaystyle\sum_{k=0}^n\frac{1}{k!}$ を 計算する。

example6.c

/* example6.c -- 自然対数の底 e を級数で計算する。 */

#include <stdio.h>

int main()
{
    int k, n;
    double Sk,Ak;

    printf("自然対数の底 e を計算します。\n");
    printf("何項まで計算しますか ? ");
    scanf("%d", &n);

    /* k = 0 のとき */
    Ak = 1.0;
    Sk = Ak;

    for (k = 1; k <= n; k++) {
        Ak = Ak / k;
        Sk = Sk + Ak;
        printf("k=%3d, Ak=%e, Sk=%20.15e\n", k, Ak, Sk);
    }
    return 0;
}

実行結果

oyabun%	./example6
自然対数の底 e を計算します。
何項まで計算しますか ? 20
k=  1, Ak=1.000000e+00, Sk=2.000000000000000e+00
k=  2, Ak=5.000000e-01, Sk=2.500000000000000e+00
k=  3, Ak=1.666667e-01, Sk=2.666666666666667e+00
k=  4, Ak=4.166667e-02, Sk=2.708333333333333e+00
k=  5, Ak=8.333333e-03, Sk=2.716666666666666e+00
k=  6, Ak=1.388889e-03, Sk=2.718055555555555e+00
k=  7, Ak=1.984127e-04, Sk=2.718253968253968e+00
k=  8, Ak=2.480159e-05, Sk=2.718278769841270e+00
k=  9, Ak=2.755732e-06, Sk=2.718281525573192e+00
k= 10, Ak=2.755732e-07, Sk=2.718281801146385e+00
k= 11, Ak=2.505211e-08, Sk=2.718281826198493e+00
k= 12, Ak=2.087676e-09, Sk=2.718281828286169e+00
k= 13, Ak=1.605904e-10, Sk=2.718281828446759e+00
k= 14, Ak=1.147075e-11, Sk=2.718281828458230e+00
k= 15, Ak=7.647164e-13, Sk=2.718281828458995e+00
k= 16, Ak=4.779477e-14, Sk=2.718281828459043e+00
k= 17, Ak=2.811457e-15, Sk=2.718281828459046e+00
k= 18, Ak=1.561921e-16, Sk=2.718281828459046e+00
k= 19, Ak=8.220635e-18, Sk=2.718281828459046e+00
k= 20, Ak=4.110318e-19, Sk=2.718281828459046e+00
oyabun%


next up previous contents
Next: の近似計算 Up: 2.3.2 Taylor 級数の計算 Previous: 2.3.2 Taylor 級数の計算
Masashi Katsurada
平成18年4月28日