首頁  >  文章  >  後端開發  >  C++程式以給定值為參數,尋找雙曲反餘弦的函數

C++程式以給定值為參數,尋找雙曲反餘弦的函數

WBOY
WBOY轉載
2023-09-04 09:45:06499瀏覽

C++程式以給定值為參數,尋找雙曲反餘弦的函數

類似於普通三角函數,雙曲線函數是使用雙曲線而不是圓來定義的。從指定的弧度角度,它會傳回雙曲餘弦函數中的比值參數。但換句話說,它是相反的。需要使用反雙曲三角運算(如反雙曲餘弦運算)來確定雙曲餘弦值對應的角度。

使用雙曲餘弦值計算角度,以弧度為單位,本教學將展示如何使用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}\:\times\frac{180}{\pi}}$$

結論

我們使用 cmath 套件中的 acosh() 函數來使用雙曲餘弦值執行反雙曲運算。此函數根據雙曲餘弦的輸入值輸出所需的弧度角度。回傳的範圍是 0 到正無窮大。當輸入值小於 1 時,會引發域錯誤。 C 和 C 早期迭代中的回傳類型是 double; C 的後續迭代也使用了 float 和 long-double 的重載形式。當提供整數值作為參數時,將在將輸入參數轉換為 double 類型後呼叫 acosh() 函數。

以上是C++程式以給定值為參數,尋找雙曲反餘弦的函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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