命名空间
变体
操作

std::acosh(std::complex)

来自 cppreference.com
< cpp‎ | numeric‎ | complex
 
 
 
 
定义在头文件 <complex>
template< class T >
complex<T> acosh( const complex<T>& z );
(自 C++11)

计算复数 z 的复数反双曲余弦,分支割线位于实轴上小于 1 的值处。

内容

[编辑] 参数

z - 复数值

[编辑] 返回值

如果没有发生错误,则返回 z 的复数反双曲余弦,范围为实轴上非负值的半条带和虚轴上的区间 [−iπ; +iπ]

[编辑] 错误处理和特殊值

错误报告与 math_errhandling 一致。

如果实现支持 IEEE 浮点数运算,

  • std::acosh(std::conj(z)) == std::conj(std::acosh(z)).
  • 如果 z(±0,+0),则结果为 (+0,π/2)
  • 如果 z(x,+∞)(对于任何有限的 x),则结果为 (+∞,π/2)
  • 如果 z(x,NaN)(对于任何[1] 有限的 x),则结果为 (NaN,NaN) 并且可能引发 FE_INVALID
  • 如果 z(-∞,y)(对于任何正的有限的 y),则结果为 (+∞,π)
  • 如果 z(+∞,y)(对于任何正的有限的 y),则结果为 (+∞,+0)
  • 如果 z(-∞,+∞),则结果为 (+∞,3π/4)
  • 如果 z(±∞,NaN),则结果为 (+∞,NaN)
  • 如果 z(NaN,y)(对于任何有限的 y),则结果为 (NaN,NaN) 并且可能引发 FE_INVALID
  • 如果 z(NaN,+∞),则结果为 (+∞,NaN)
  • 如果 z(NaN,NaN),则结果为 (NaN,NaN)
  1. 根据 C11 DR471,这仅适用于非零的 x。如果 z(0,NaN),则结果应为 (NaN,π/2)

[编辑] 备注

尽管 C++ 标准将此函数称为“复数反双曲余弦”,但双曲函数的反函数是面积函数。它们的实参是双曲扇形的面积,而不是弧长。正确的名称是“复数反双曲余弦”,以及较不常见的“复数面积双曲余弦”。

反双曲余弦是一个多值函数,需要在复数平面上进行分支割线。分支割线通常放置在实轴的线段 (-∞,+1) 上。

反双曲余弦主值的数学定义是 acosh z = ln(z + z+1 z-1)

对于任何 zacosh(z) =
z-1
1-z
acos(z)
,或者在复数平面的上半部分,简单地说,i acos(z)

[编辑] 示例

#include <complex>
#include <iostream>
 
int main()
{
    std::cout << std::fixed;
    std::complex<double> z1(0.5, 0);
    std::cout << "acosh" << z1 << " = " << std::acosh(z1) << '\n';
 
    std::complex<double> z2(0.5, -0.0);
    std::cout << "acosh" << z2 << " (the other side of the cut) = "
              << std::acosh(z2) << '\n';
 
    // in upper half-plane, acosh = i acos 
    std::complex<double> z3(1, 1), i(0, 1);
    std::cout << "acosh" << z3 << " = " << std::acosh(z3) << '\n'
              << "i*acos" << z3 << " = " << i*std::acos(z3) << '\n';
}

输出

acosh(0.500000,0.000000) = (0.000000,-1.047198)
acosh(0.500000,-0.000000) (the other side of the cut) = (0.000000,1.047198)
acosh(1.000000,1.000000) = (1.061275,0.904557)
i*acos(1.000000,1.000000) = (1.061275,0.904557)

[编辑] 参见

计算复数的反正弦 (arccos(z))
(函数模板) [编辑]
计算复数的面积双曲正弦 (arsinh(z))
(函数模板) [编辑]
计算复数的面积双曲正切 (artanh(z))
(函数模板) [编辑]
计算复数的双曲余弦 (cosh(z))
(函数模板) [编辑]
(C++11)(C++11)(C++11)
计算反双曲余弦 (arcosh(x))
(函数) [编辑]
C 文档 for cacosh