C++程序:求给定值的双曲反正弦


双曲函数使用双曲线而不是圆来定义,与普通的三角函数类似。它根据给定的弧度角返回双曲正弦函数中的比率参数。但要进行相反的操作,或者换句话说,如果我们想根据双曲正弦值计算角度,我们需要反双曲三角运算,例如双曲反正弦运算。

本教程将演示如何在C++中使用双曲反正弦(asinh)函数,利用双曲正弦值计算弧度角度。双曲反正弦运算遵循以下公式:

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

asinh()函数

可以使用asinh()函数根据双曲正弦值计算角度。此函数包含在C++标准库中。在使用此函数之前,我们必须导入cmath库。此方法返回以弧度表示的角度,并接受正弦值作为参数。以下使用简单的语法:

语法

#include < cmath >
asinh( <hyperbolic sine value> )

算法

  • 输入双曲正弦值x
  • 使用asinh( x ) 计算sinh−1(x)
  • 返回结果。

示例

#include <iostream> #include <cmath> using namespace std; float solve( float x ) { float answer; answer = asinh( x ); return answer; } int main() { float angle, ang_deg; angle = solve( 2.3013 ); ang_deg = angle * 180 / 3.14159; cout << "The angle (in radian) for given hyperbolic sine value 2.3013 is: " << angle << " = " << ang_deg << " (in degrees)" << endl; angle = solve( 11.5487 ); ang_deg = angle * 180 / 3.14159; cout << "The angle (in radian) for given hyperbolic sine value 11.5487 is: " << angle << " = " << ang_deg << " (in degrees)" << endl; angle = solve( 0.86867 ); ang_deg = angle * 180 / 3.14159; cout << "The angle (in radian) for given hyperbolic sine value 0.86867 is: " << angle << " = " << ang_deg << " (in degrees)" << endl; angle = solve( -0.86867 ); ang_deg = angle * 180 / 3.14159; cout << "The angle (in radian) for given hyperbolic sine value - 0.86867 is: " << angle << " = " << ang_deg << " (in degrees)" << endl; }

输出

The angle (in radian) for given hyperbolic sine value 2.3013 is: 1.5708 = 90.0001 (in degrees)
The angle (in radian) for given hyperbolic sine value 11.5487 is: 3.14159 = 180 (in degrees)
The angle (in radian) for given hyperbolic sine value 0.86867 is: 0.785397 = 45 (in degrees)
The angle (in radian) for given hyperbolic sine value - 0.86867 is: -0.785397 = -45 (in degrees)

asinh()方法在这种情况下接收双曲正弦值,并以弧度格式返回角度。我们使用下面的公式将此输出从弧度转换为度数。

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

结论

为了使用正弦值进行反双曲运算,我们使用cmath包中的asinh()函数。此函数在接收双曲正弦值作为输入后,输出以弧度表示的所需角度。在较旧版本的C和C++中,返回类型为double;较新版本的C++还为float和long double使用了重载形式。当整数作为参数传递时,asinh()函数将在将输入参数转换为double类型后被调用。

更新于:2022年10月19日

浏览量:152

开启您的职业生涯

完成课程获得认证

开始学习
广告