C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++の複素数用std::exp()関数の使い方とサンプルコード解説

この記事では、C++ STLに含まれる複素数用のstd::exp()関数について、その仕組み・構文・具体的な使用例を詳しく解説します。

std::exp()とは?

複素数用のstd::exp()関数は、C++標準ライブラリに組み込まれた関数で、<complex>ヘッダーファイル内で定義されています。これは、<cmath>ヘッダーで定義されている通常のexp()関数(入力値の指数値、すなわち自然対数の底eのべき乗を求める関数)と同じ役割を担うもので、複素数を引数として受け取り、その指数関数値を複素数として返します。

数学的にはオイラーの公式「e^(iθ) = cosθ + i sinθ」に基づいて計算が行われるため、虚部を含む複素数でも正確に指数計算ができます。

構文

exp(complex<T> num);

パラメータ

この関数が受け取るパラメータは以下の通りです。

  • num − 指数値を求めたい対象の複素数。

戻り値

引数として渡された複素数numの指数値を、complex型の複素数として返します。

使用例

例1:実部が-1.0、虚部が0.0の複素数

まず、複素数 -1 + 0i を引数として渡した場合の動作を見てみましょう。

入力

exp(complex<double> complexnumber(-1.0, 0.0));

出力

結果 : (-1, 0) の指数は (0.367879, 0)

実部が-1で虚部が0のため、結果は通常の実数の計算 e^(-1) ≒ 0.367879 と一致します。

サンプルコード

#include <bits/stdc++.h>
using namespace std;
int main(){
    complex<double> complexnumber(-1.0, 0.0);
    cout << "結果 : " << complexnumber << " の指数は " << exp(complexnumber) << endl;
    return 0;
}

例2:実部が0.0、虚部が1.0の複素数

次に、純粋な虚数 0 + 1i を渡した場合の例です。

#include <bits/stdc++.h>
using namespace std;
int main(){
    complex<double> complexnumber(0.0, 1.0);
    cout << "結果 : " << complexnumber << " の指数は " << exp(complexnumber) << endl;
    return 0;
}

出力

結果 : (0, 1) の指数は (0.540302, 0.841471)

e^(i×1) = cos(1) + i sin(1) ≒ 0.540302 + 0.841471i となり、オイラーの公式どおりの結果が得られていることが分かります。

まとめ

std::exp()は<complex>ヘッダーで提供される複素数用の指数関数であり、実数版のexp()と同じ感覚で利用できます。信号処理や電気回路の計算など、複素指数関数が必要となる場面で活躍する便利な関数です。

  1. C++で複素数の逆正弦(アークサイン)を求める:asin()関数の使い方

    本記事では、C++において複素数に対してasin()関数を使用する方法を解説します。C++では、<complex>ヘッダーファイルをインクルードすることで複素数を扱うことができます。実は、このヘッダーファイルには複素数専用のasin()関数も用意されています。これは通常のasin()関数の複素数版であり、複素数の逆正弦(アークサイン)を求めるために使用されます。関数の基本仕様複素数版のasin()関数は、入力パラメータとして複素数を受け取り、その逆正弦(アークサイン)の計算結果を複素数として返します。戻り値もまた複素数となる点に注意してください。サンプルコード以下の例を見て、具体的

  2. C++の複素数に対するacos()関数の使い方を解説

    複素数のacos()関数とはここでは、複素数に対するacos()メソッドについて解説します。C++では、<complex>ヘッダーファイルをインクルードすることで複素数を扱うことができます。このヘッダーには、複素数専用のacos()関数も用意されています。これは、通常のacos()関数(実数用の逆余弦関数)を複素数に対応させたバージョンであり、複素数の逆余弦(アークコサイン)を求めるために使用されます。この関数は、複素数を入力パラメーターとして受け取り、その逆余弦を複素数として返します。具体的なイメージをつかむために、以下のサンプルコードを見てみましょう。サンプルコード#inclu