卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章20460本站已运行348

C++程序以给定值为参数,找到双曲正弦反函数的值

C++程序以给定值为参数,找到双曲正弦反函数的值

双曲函数是使用双曲线而不是圆定义的,与普通三角函数相当。它从提供的弧度角返回双曲正弦函数中的比率参数。但要做相反的事,或者换句话说。如果我们想根据双曲正弦值计算角度,我们需要像双曲反正弦运算一样的反双曲三角运算。

本课程将演示如何使用 C++ 中的双曲反正弦 (asinh) 函数,使用双曲正弦值(以弧度为单位)计算角度。双曲反正弦运算遵循以下公式 -

$$mathrm{sinh^{-1}x:=:In(x:+:sqrt{x^2:+:1})},其中 :In:是:自然对数:(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}:timesfrac{180}{pi}}$$

结论

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

卓越飞翔博客
上一篇: 在C语言中,静态函数
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏