C++程式:求給定值的反正弦
在三角學中,我們最常用的幾個比率是正弦、餘弦、正切等。根據給定的角度,可以計算出這些比率。但是,如果我們有比率值,我們也可以使用反三角函式來計算角度。
在這篇文章中,我們將討論如何透過C++中的反正弦(arcsine)方法從正弦值獲得弧度角。
asin()函式
asin()方法用於使用反三角正弦函式計算角度。此函式存在於C++的標準庫中。我們需要匯入cmath庫才能使用此方法。此函式透過取正弦值作為輸入來返回弧度角。以下是簡單的語法:
語法
#include < cmath > asin( <sine value> )
正弦值必須在[-1到+1]範圍內(包括兩端)。否則,將引發域錯誤,並將返回非數字(nan)。返回值將在$\mathrm{[-\:\frac{\pi}{2},\frac{\pi}{2}]}$範圍內(包括兩端)。
演算法
- 以正弦值x作為輸入
- 使用asin(x)計算sin−1(x)
- 返回結果。
示例
#include <iostream> #include <cmath> using namespace std; float solve( float x ) { float answer; answer = asin( x ); return answer; } int main() { float angle, ang_deg; angle = solve( 0.7071067 ); ang_deg = angle * 180 / 3.14159; cout << "The angle (in radian) for given sine value 0.7071067 is: " << angle << " = " << ang_deg << " (in degrees)" << endl; angle = solve( 0.866025 ); ang_deg = angle * 180 / 3.14159; cout << "The angle (in radian) for given sine value 0.866025 is: " << angle << " = " << ang_deg << " (in degrees)" << endl; angle = solve( 1 ); ang_deg = angle * 180 / 3.14159; cout << "The angle (in radian) for given sine value 1 is: " <<; angle << " = " << ang_deg << " (in degrees)" << endl; angle = solve( 0.5 ); ang_deg = angle * 180 / 3.14159; cout << "The angle (in radian) for given sine value 0.5 is: " << angle << " = " << ang_deg << " (in degrees)" << endl; }
輸出
The angle (in radian) for given sine value 0.7071067 is: 0.785398 = 45 (in degrees) The angle (in radian) for given sine value 0.866025 is: 1.0472 = 60 (in degrees)The angle (in radian) for given sine value 1 is: 1.5708 = 90.0001 (in degrees) The angle (in radian) for given sine value 0.5 is: 0.523599 = 30 (in degrees)
這裡,asin()函式取正弦值並返回弧度格式的角度。這裡我們使用以下公式將輸出從弧度轉換為度數:
$$\mathrm{\theta_{deg}\:=\:\theta_{rad}\:\times\:\frac{180}{\pi}}$$
結論
要根據正弦值執行反三角運算,我們使用cmath庫中的asin()函式。此函式以正弦值作為輸入,並返回弧度單位的給定角度。在較舊版本的C/C++中,返回型別為double,但在C++的後續版本中,還為float和long double添加了過載形式。當整數作為引數傳遞時,它將輸入引數轉換為double,並呼叫對應於double型別引數的asin()方法。
廣告