C++程式:求給定值的雙曲反正切


雙曲函式使用雙曲線而不是圓來定義。它根據提供的弧度角返回雙曲正切函式的比率引數。然而,反之亦然。要根據雙曲正切值計算角度,需要使用反雙曲三角函式,例如雙曲反正切運算。

本文將演示如何使用C++雙曲反正切(atanh)函式,根據雙曲正切值(以弧度為單位)確定角度。雙曲反正切運算的公式如下:

$$\mathrm{cosh^{-1}x\:=\:\frac{1}{2}In\left(\frac{1\:+\:x}{1\:-\:x}\right)},其中\:In\:是自然對數\:(log_e \: k)$$

atanh() 函式

可以使用 atanh() 函式根據雙曲正切值計算角度。此函式是C++標準庫的一部分。在使用此函式之前,需要匯入 cmath 庫。當提供雙曲正切值時,此函式會以弧度返回角度。使用方法如下:

語法

#include  − cmath >
atanh( −hyperbolic tangent value> )

此函式的輸入範圍為[-1 到 1](包含兩端)。如果輸入超出此範圍,則會引發域錯誤。

演算法

  • 將雙曲正切值 x 作為輸入
  • 使用 atanh( x ) 計算 tanh−1(x)
  • 返回結果。

示例

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

輸出

The angle (in radian) for given hyperbolic tangent value 0.9171521 is: 1.57079 = 90 (in degrees)
The angle (in radian) for given hyperbolic tangent value 0.996272 is: 3.14159 = 180 (in degrees)
The angle (in radian) for given hyperbolic tangent value 0.655794 is: 0.785398 = 45 (in degrees)The angle (in radian) for given hyperbolic tangent value - 0.655794 is: -0.785398 = -45 (in degrees)

atanh() 方法接收雙曲正切的值並返回弧度格式的角度。我們使用下面的公式將此輸出從弧度轉換為度。

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

結論

我們使用來自 cmath 庫的 atanh() 函式,使用雙曲正切值執行反雙曲運算。此函式根據雙曲正切的輸入值返回所需的角度(以弧度為單位)。輸入的範圍是從 -1 到 +1。當輸入值超出範圍時,會引發域錯誤。在早期版本的C和C++中,返回型別為double;在後期的C++版本中,還使用了float和long double的過載形式。當提供整數值作為引數時,在將輸入引數轉換為double型別後,將使用 atanh() 方法。

更新於:2022年10月19日

瀏覽量:144

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告