Haskell程式查詢給定值的arccosine(反餘弦)


本教程將幫助我們找到給定值的arccosine(反餘弦)。arccosine是cosine(餘弦)的反函式。如果給定一個介於-1和1之間的值,它將返回餘弦等於該值的角(以弧度為單位)。

例如,pi/3弧度的cosine等於0.5。因此,如果將0.5作為輸入傳遞給arccosine函式,它應該返回pi/3弧度。

語法

acos(angle)

這裡,acos()是一個內建函式,並且值作為引數傳遞以計算傳遞的值的arccosine(反餘弦)。

方法1:使用內建acos()函式查詢arccosine(反餘弦)

Haskell中的acos()函式僅適用於弧度。在這種方法中,傳遞給acos()函式的值必須在[-1,1]範圍內。如果值超出[-1, 1]範圍,則會顯示錯誤訊息。

演算法

  • 步驟1 − 程式執行將從main函式開始。main()函式控制整個程式。

  • 步驟2 − 初始化一個名為“angle”的變數。最初,它將具有垃圾值。然後,將一個常量值賦給它。

  • 步驟3 − 常量值必須介於-1和1之間(包括-1和1),否則acos()將返回NaN值。此值使用賦值運算子賦給變數“angle”。

  • 步驟4 − 呼叫內建arccosine(反餘弦)函式acos()。它的定義已在標準庫中提供。

  • 步驟5 − 將包含值的“angle”變數作為引數傳遞給acos()函式。

  • 步驟6 − 在acos()函式計算最終結果值後,將結果賦給“result”變數,並透過列印result值顯示最終輸出。

示例

在這個例子中,我們將看到如何找到傳遞值的arccosine(反餘弦)。這可以透過使用內建的acos()函式來完成。

main = do 
let angle = 0.5
putStrLn "The value between -1 and 1, whose arccosine is to be computed is:  "
print (angle) 
let result=acos(angle)
putStrLn "The resultant arccosine value is:  "
print (result)

輸出

The value between -1 and 1, whose arccosine is to be computed is:  
0.5
The resultant arccosine value is:  
1.0471975511965979

方法2:使用內建acos()函式查詢複數的arccosine(反餘弦)

在Haskell中,“Data.Complex”模組提供了一個“cis”函式,可用於建立具有給定相位角的複數,我們可以用它來計算複數的arccosine(反餘弦)。複數的arccosine是多值的,這意味著將有無限多個複數的cosine等於輸入數。

演算法

  • 步驟1 − 匯入“Data.Complex”模組以處理複數。

  • 步驟2 − “cacos”函式以複數作為輸入,並使用acos(z) = -i*log(z + i*sqrt(1 - z^2))返回該數的arccosine(反餘弦)。

  • 步驟3 − 程式執行將從main函式開始。main()函式控制整個程式。

  • 步驟4 − 初始化一個名為“value”的變數,該變數包含複數,併為其分配一個常量複數值。

  • 步驟5 − 呼叫複數的arccosine(反餘弦)函式定義,該定義由cacos()函式包含或計算。

  • 步驟6 − 將包含複數的“value”變數作為引數傳遞給cacos()函式。

  • 步驟7 − 在cacos()函式計算最終結果值後,將結果賦給“result”變數,並透過列印result值顯示最終輸出。

示例

在這個例子中,我們將使用內建acos()函式查詢複數的arccosine(反餘弦)。

import Data.Complex
cacos :: Complex Double -> Complex Double
cacos z = (negate 1 :+ 0) * log (z + (0 :+ 1) * sqrt (1 - z * z))
main :: IO ()
main = do  
let value = 2.3 :+ 4.5
let result = cacos value
putStrLn $ "The arccosine of " ++ show value ++ " is " ++ show result   --final result is

輸出

The arccosine of 2.3 :+ 4.5 is (-2.31904592228528) :+ (-1.1060974844200153)

結論

可以使用acos()函式計算Haskell中給定值的arccosine(反餘弦)值。傳遞給此函式的引數值必須介於-1和1之間(包括-1和1)。

複數的arccosine是多值的,可以使用cacos()函式計算。程式的輸出將取決於所選的對數函式的分支和角度的區間。

更新於: 2023年1月20日

130次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

立即開始
廣告