首页 > 文章列表 > C++程序以给定值为参数,寻找双曲反余弦的函数

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

函数 C程序 双曲反余弦
352 2023-09-10

类似于普通三角函数,双曲函数是使用双曲线而不是圆来定义的。从指定的弧度角度,它返回双曲余弦函数中的比值参数。但换句话说,它是相反的。需要使用反双曲三角运算(如反双曲余弦运算)来确定双曲余弦值对应的角度。

使用双曲余弦值计算角度,以弧度为单位,本教程将展示如何使用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}:timesfrac{180}{pi}}$$

结论

我们使用 cmath 包中的 acosh() 函数来使用双曲余弦值执行反双曲运算。该函数根据双曲余弦的输入值输出所需的弧度角度。返回的范围是 0 到正无穷大。当输入值小于 1 时,会引发域错误。C 和 C++ 早期迭代中的返回类型是 double; C++ 的后续迭代也使用了 float 和 long-double 的重载形式。当提供整数值作为参数时,将在将输入参数转换为 double 类型后调用 acosh() 函数。