Namespaces
Variants

std:: asin (std::complex)

From cppreference.net
ヘッダーで定義 <complex>
template < class T >
std:: complex < T > asin ( const std:: complex < T > & z ) ;
(C++11以降)

複素数の値 z の複素逆正弦を計算します。 実軸上の区間 [−1, +1] の外側に分岐切断が存在します。

目次

パラメータ

z - 複素数値

戻り値

エラーが発生しない場合、複素数の逆正弦が返されます。その値は虚軸方向には非有界で、実軸方向には区間 [−π/2, +π/2] 内に収まります。

エラーおよび特殊ケースは、この演算が -i * std::asinh (i * z) によって実装されているかのように処理されます。ここで i は虚数単位です。

注記

逆正弦(またはアークサイン)は多価関数であり、複素平面上で分岐切断を必要とします。分岐切断は慣例的に実軸の線分 (-∞,-1) および (1,∞) に配置されます。

主値 arc sine の数学的定義は arcsin z = - i ln( i z + 1-z 2
)
です。

For any z , asin(z) = acos(-z) -
π
2
.

#include <cmath>
#include <complex>
#include <iostream>
int main()
{
    std::cout << std::fixed;
    std::complex<double> z1(-2.0, 0.0);
    std::cout << "asin" << z1 << " = " << std::asin(z1) << '\n';
    std::complex<double> z2(-2.0, -0.0);
    std::cout << "asin" << z2 << " (the other side of the cut) = "
              << std::asin(z2) << '\n';
    // for any z, asin(z) = acos(−z) − pi / 2
    const double pi = std::acos(-1);
    std::complex<double> z3 = std::acos(z2) - pi - 2;
    std::cout << "sin(acos" << z2 << " - pi / 2) = " << std::sin(z3) << '\n';
}

出力:

asin(-2.000000,0.000000) = (-1.570796,1.316958)
asin(-2.000000,-0.000000) (the other side of the cut) = (-1.570796,-1.316958)
sin(acos(-2.000000,-0.000000) - pi / 2) = (2.000000,0.000000)

関連項目

複素数の逆余弦を計算する ( arccos(z) )
(関数テンプレート)
複素数の逆正接を計算する ( arctan(z) )
(関数テンプレート)
複素数の正弦を計算する ( sin(z) )
(関数テンプレート)
(C++11) (C++11)
逆正弦を計算する ( arcsin(x) )
(関数)
関数 std::asin をvalarrayの各要素に適用する
(関数テンプレート)