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