next up previous contents
Next: 2.4 方程式を解く Up: 2.3.2 Taylor 級数の計算 Previous: の近似計算

$ \sin 1$ の近似計算

$ \displaystyle x-\frac{x^3}{3!}+\frac{x^5}{5!}-\cdots
+\frac{(-1)^{k+1}x^{2k-1}}{(2k-1)!}+\cdots$ を最初の 10 項まで ($ x^{19}$ の項まで) 打ち切った級数で $ \sin 1$ を計算する。

example7.c

/* example7.c -- Taylor 展開による sin x の計算 */

#include <stdio.h>
#include <math.h>

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

    printf("sin x を原点での Taylor 展開を用いて計算します。\n");
    printf("項数を入力して下さい ");
    scanf("%d", &n);

    printf("x = ");
    scanf("%lf", &x);

    /* k = 1 の場合 */
    Ak = x;
    Sk = Ak;

    for (k = 2; k <= n; k++) {
        Ak = - Ak * (x * x) / ((2 * k - 1) * (2 * k - 2));
        Sk = Sk + Ak;
        printf("k=%3d, Ak= %15e, Sk= %20.15e\n", k, Ak, Sk);
    }
    printf("C の組み込み関数によると sin(%g) = %20.15e\n", x, sin(x));
    return 0;
}

実行結果

oyabun%	./example7
sin x を原点での Taylor 展開を用いて計算します。
項数を入力して下さい 10
x = 1
k=  2, Ak=   -1.666667e-01, Sk= 8.333333333333334e-01
k=  3, Ak=    8.333333e-03, Sk= 8.416666666666667e-01
k=  4, Ak=   -1.984127e-04, Sk= 8.414682539682540e-01
k=  5, Ak=    2.755732e-06, Sk= 8.414710097001764e-01
k=  6, Ak=   -2.505211e-08, Sk= 8.414709846480680e-01
k=  7, Ak=    1.605904e-10, Sk= 8.414709848086585e-01
k=  8, Ak=   -7.647164e-13, Sk= 8.414709848078937e-01
k=  9, Ak=    2.811457e-15, Sk= 8.414709848078965e-01
k= 10, Ak=   -8.220635e-18, Sk= 8.414709848078965e-01
C の組み込み関数によると sin(1) = 8.414709848078965e-01
oyabun%


next up previous contents
Next: 2.4 方程式を解く Up: 2.3.2 Taylor 級数の計算 Previous: の近似計算
Masashi Katsurada
平成18年4月28日