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() 方法。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP