首頁  >  文章  >  後端開發  >  C++程式以給定值找到雙曲反正切

C++程式以給定值找到雙曲反正切

PHPz
PHPz轉載
2023-09-01 08:13:11669瀏覽

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](包括兩者)。如果輸入超出此範圍,則會引發域錯誤。

演算法

  • 以超bolic正切值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()方法。

以上是C++程式以給定值找到雙曲反正切的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除