余弦積分 Ci(x) とは
余弦積分 Ci(x) は、物理学・信号処理・電磁気学など幅広い分野で登場する特殊関数で、とくにアンテナ理論や振動積分の解析でよく用いられます。正の実数 \(x\) に対しては、0 から \(x\) までの \((\cos t - 1)/t\) の積分に、\(x\) の自然対数とオイラー・マスケローニ定数 \(\gamma\)(約 0.5772156649)を加えたものとして定義されます。この計算サイトでは、任意の実数入力について Ci(x) を倍精度いっぱいの精度で求めます。
使い方
入力欄に \(x\) の値を入力して計算してください。結果は無次元量である Ci(x) の値です。実数値としての主値の定義域は \(x > 0\) です。\(x = 0\) では関数が負の無限大に発散する(対数特異点)ため、本計算サイトでは「未定義」と表示します。負の値を入力した場合は \(\operatorname{Ci}(|x|)\) を返します。これは \(\operatorname{Ci}(-x)\) の実部が \(\operatorname{Ci}(x)\) に等しいためで、\(\pm i\cdot\pi\) の虚部は省略しています。
公式の解説
定義式は $$\operatorname{Ci}(x) = \gamma + \ln(x) + \int_{0}^{x} \frac{\cos t - 1}{t}\, dt$$ です。被積分関数をテイラー級数に展開して項別積分すると、収束級数 $$\operatorname{Ci}(x) = \gamma + \ln(x) - \frac{x^2}{2\cdot 2!} + \frac{x^4}{4\cdot 4!} - \frac{x^6}{6\cdot 6!} + \cdots$$ が得られます。\(x\) が小さい〜中程度(ここでは \(|x| \le 6\))の範囲では、この級数は速やかかつ高精度に収束します。\(x\) がより大きい場合は、漸近表現 \(\operatorname{Ci}(x) = f(x)\cdot\sin(x) - g(x)\cdot\cos(x)\) に切り替えます。これにより、大きな引数で級数計算を悩ませる桁落ち(致命的な相殺)を回避できます。\(x\) が大きくなると Ci(x) は \(\sin(x)/x\) のように振動しながら 0 に向かって減衰していきます。
計算例
\(x = 1\) の場合:\(\ln(1) = 0\) で、級数は $$-0.25 + 0.0104166667 - 0.0002314815 + 0.0000031002 - \cdots \approx -0.2398117421$$ となります。これに \(\gamma = 0.5772156649\) を加えると \(\operatorname{Ci}(1) = 0.3374039229\) となり、\(x = 1\) における余弦積分の既知の参照値と一致します。
よくある質問
なぜ Ci(0) は未定義なのですか? \(x\) が 0 に近づくと \(\ln(x)\) が負の無限大に発散するため、この点で対数特異点を持つからです。
負の x の場合はどうなりますか? 負の引数では Ci は複素数になります。この実数版の計算サイトでは実部にあたる \(\operatorname{Ci}(|x|)\) を返し、虚部は省略します。
結果の精度はどのくらいですか? 通常の入力範囲では、ほぼ機械イプシロンの倍精度(有効数字約 15 桁)の精度で計算されます。