C++程序查找给定值的双曲余弦反函数


类似于常规三角函数,双曲函数是使用双曲线而不是圆来定义的。它根据指定的弧度角返回双曲余弦函数中的比率参数。但是,换句话说,要执行相反的操作。需要像双曲余弦反函数这样的反双曲三角运算来根据双曲余弦值确定角度。

本教程将演示如何使用C++双曲余弦反函数 (acosh) 来根据双曲余弦值计算以弧度表示的角度。双曲余弦反函数的公式如下:

$$\mathrm{cosh^{-1}x\:=\:In(x\:+\:\sqrt{x^2\:-\:1})},其中 \:In\: 是\: 自然对数\:(log_e \: k)$$

acosh() 函数

可以使用 acosh() 函数根据双曲余弦值确定角度。此函数包含在 C++ 标准库中。在使用此函数之前,必须导入 cmath 库。此方法接受双曲余弦值作为输入,并以弧度为单位返回角度。以下是使用的简单语法:

语法

#include < cmath >
acosh( <hyperbolic cosine value> )

此函数的输入范围为 1 及以上。如果输入为负数,则会引发域错误。它返回范围 [0, +∞](包含两端)内的数字。

算法

  • 将双曲余弦值 x 作为输入
  • 使用 acosh( x ) 计算 cosh−1(x)
  • 返回结果。

示例

#include <iostream> #include <cmath> using namespace std; float solve( float x ) { float answer; answer = acosh( x ); return answer; } int main() { float angle, ang_deg; angle = solve( 2.50918 ); ang_deg = angle * 180 / 3.14159; cout << "The angle (in radian) for given hyperbolic cosine value 2.50918 is: " << angle << " = " << ang_deg << " (in degrees)" << endl; angle = solve( 11.5919 ); ang_deg = angle * 180 / 3.14159; cout << "The angle (in radian) for given hyperbolic cosine value 11.5919 is: " << angle << " = " << ang_deg << " (in degrees)" << endl; angle = solve( 1.32461 ); ang_deg = angle * 180 / 3.14159; cout << "The angle (in radian) for given hyperbolic cosine value 1.32461 is: " << angle << " = " << ang_deg << " (in degrees)" << endl; angle = solve( 1.60028 ); ang_deg = angle * 180 / 3.14159; cout << "The angle (in radian) for given hyperbolic cosine value 1.60028 is: " << angle << " = " << ang_deg << " (in degrees)" << endl; }

输出

The angle (in radian) for given hyperbolic cosine value 2.50918 is: 1.5708 = 90.0001 (in degrees)
The angle (in radian) for given hyperbolic cosine value 11.5919 is: 3.14159 = 180 (in degrees)
The angle (in radian) for given hyperbolic cosine value 1.32461 is: 0.785399 = 45.0001 (in degrees)
The angle (in radian) for given hyperbolic cosine value 1.60028 is: 1.04719 = 59.9997 (in degrees)

双曲余弦值传递给 acosh() 方法,该方法以弧度格式返回角度。使用以下算法,我们将此输出从弧度转换为度数。

$$\mathrm{\theta_{deg}\:=\:\theta_{rad}\:\times\frac{180}{\pi}}$$

结论

我们使用 cmath 包中的 acosh() 函数使用双曲余弦值执行反双曲运算。此函数根据双曲余弦的输入值以弧度为单位输出所需的角度。返回范围为 0 到正无穷大。当输入值小于 1 时,会引发域错误。在早期版本的 C 和 C++ 中,返回类型为双精度浮点数;后来版本的 C++ 还为单精度浮点数和长双精度浮点数使用了重载形式。当提供整数值作为参数时,在将输入参数转换为双精度浮点数类型后,将调用 acosh() 函数。

更新于: 2022年10月19日

170 次查看

开启你的职业生涯

通过完成课程获得认证

开始学习
广告