名稱空間
變體
操作

std::acos(std::complex)

來自 cppreference.com
< cpp‎ | 數值‎ | 複數
 
 
 
 
定義於標頭檔案 <complex>
template< class T >
complex<T> acos( const complex<T>& z );
(C++11 起)

計算復值 z 的復反餘弦。實軸上區間 [−1, +1] 之外存在分支切割。

目錄

[編輯] 引數

z - 複數型別的值

[編輯] 返回值

若無錯誤發生,返回 z 的復反餘弦,其範圍為沿虛軸無界且沿實軸在區間 [0, +π] 內的條帶。

[編輯] 錯誤處理和特殊值

錯誤報告與 math_errhandling 保持一致。

如果實現支援 IEEE 浮點算術,

  • std::acos(std::conj(z)) == std::conj(std::acos(z))
  • z(±0,+0),結果為 (π/2,-0)
  • z(±0,NaN),結果為 (π/2,NaN)
  • z(x,+∞)(對於任何有限 x),結果為 (π/2,-∞)
  • z(x,NaN)(對於任何非零有限 x),結果為 (NaN,NaN) 且可能丟擲 FE_INVALID
  • z(-∞,y)(對於任何正有限 y),結果為 (π,-∞)
  • z(+∞,y)(對於任何正有限 y),結果為 (+0,-∞)
  • z(-∞,+∞),結果為 (3π/4,-∞)
  • z(+∞,+∞),結果為 (π/4,-∞)
  • z(±∞,NaN),結果為 (NaN,±∞)(虛部的符號未指定)
  • z(NaN,y)(對於任何有限 y),結果為 (NaN,NaN) 且可能丟擲 FE_INVALID
  • z(NaN,+∞),結果為 (NaN,-∞)
  • z(NaN,NaN),則結果為 (NaN,NaN)

[編輯] 註解

反餘弦(或弧餘弦)是一個多值函式,需要在複平面上進行分支切割。分支切割通常放置在實軸的線段 (-∞,-1)(1,∞) 上。

弧餘弦主值的數學定義為 acos z =
1
2
π + iln(iz + 1-z2
)

對於任何 zacos(z) = π - acos(-z)

[編輯] 示例

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

輸出

acos(-2.000000,0.000000) = (3.141593,-1.316958)
acos(-2.000000,-0.000000) (the other side of the cut) = (3.141593,1.316958)
cos(pi - acos(-2.000000,-0.000000)) = (2.000000,0.000000)

[編輯] 另請參閱

計算複數的反正弦 (arcsin(z))
(函式模板) [編輯]
計算複數的反正切 (arctan(z))
(函式模板) [編輯]
計算複數的餘弦 (cos(z))
(函式模板) [編輯]
(C++11)(C++11)
計算反餘弦(arccos(x)
(函式) [編輯]
將函式 std::acos 應用於 valarray 的每個元素
(函式模板) [編輯]
C 文件 用於 cacos