自然対数の底(ネイピア数)を計算する
当ページのリンクには広告が含まれています。
スポンサーリンク
自然対数の底(ネイピア数)を計算するC言語のサンプルプログラムを紹介します。
自然対数の底(ネイピア数)
\(e^x\) のマクローリン展開は
\begin{aligned} e^x \hspace{2pt}&= \sum_{n=0}^{\infty} \frac{1}{n!}x^n \\ &= 1 + x + \frac{1}{2!}x^2 + \frac{1}{3!}x^3 + \cdots \hspace{20pt} (-\infty < x < \infty) \end{aligned}です(参考:e^xのマクローリン展開 - 目で学ぶ!数学)。
この級数に \(x=1\) を代入すると
\begin{aligned} e \hspace{2pt}&= 1 + 1 + \frac{1}{2!} + \frac{1}{3!} + \cdots \\ &= 1 + \sum_{n=1}^{\infty} \frac{1}{n!} \end{aligned}このようにネイピア数を求める数式(級数)を得ることができます。
サンプルプログラム
それではネイピア数の級数を計算してみましょう。適切に計算できているかどうかを確認するために「math.h」を使って、ネイピア数の定数(M_E)も合わせて出力しています。
/* * C言語のサンプルプログラム - Webkaru * - 自然対数の底(ネイピア数)の計算 - */ #include <stdio.h> #include <math.h> int main(void) { /* 変数の宣言 */ int i; /* 階乗 */ int kaijou = 1; /* 繰り返す回数 */ int number = 30; /* ネイピア数 */ double napier = 1.0; /* 級数の計算 */ for(i=1;i<number;i++){ kaijou *= i; napier += 1.0 / kaijou; } /* ネイピア数の出力 */ printf("計算結果 e = %f\n", napier); /* ネイピア数の出力(定数) */ printf("math.hの定数 e = %f\n", M_E); return 0; }
実行結果です。
計算結果 e = 2.718282 math.hの定数 e = 2.718282
このように適切に計算できていますね。