Haskell程式:求給定值的雙曲反正切
本教程將幫助我們找到給定值的雙曲反正切。雙曲反正切,也稱為反雙曲正切,是雙曲正切的反函式。它用atanh(或arctanh)表示,可以定義為atanh(x) = (ln(1+x) - ln(1-x)) / 2
語法
atanh(angle)
這裡,atanh()是一個函式,值作為引數傳遞以計算傳遞值的雙曲反正切。它返回(-∞, ∞)範圍內的值。在Haskell中,atanh()函式是Floating類的部分,Floating類是Real類的子類。它用於計算值的反正切,其雙曲正切等於給定值。
方法一:使用log()函式
在這種方法中,該函式使用自然對數函式(log)和平方根函式(sqrt)來計算輸入值的雙曲反正切,並在函式被呼叫後計算結果。
演算法
步驟1 − 匯入“Data.Complex”模組以使用log函式。
步驟2 − 程式執行將從main函式開始。main()函式控制整個程式。
步驟3 − 初始化名為“value”的變數。最初,它將具有垃圾值。然後,將一個常數值賦給它。使用賦值運算子將此值賦給變數“value”。
步驟4 − 呼叫雙曲反正切函式atanh()。如果不使用cmath庫,則必須定義atanh()函式。為了計算傳遞值的雙曲反正切,使用log和sqrt函式定義atanh()函式,如atanh x = log ((1 + x) / (1 - x)) / 2。
步驟5 − 將包含值的“value”變數作為引數傳遞給atanh()函式。
步驟6 − atanh()函式計算最終結果值後,將結果賦值給“result”變數,並透過列印結果值顯示最終輸出。
示例
在這個例子中,我們將看到如何使用log()函式找到傳遞值的雙曲反正切。
import Data.Complex
atanh :: Double -> Double
atanh x = log ((1 + x) / (1 - x)) / 2
main :: IO()
main = do
let value = 0.5
let result = Prelude.atanh value
putStrLn ("The hyperbolic arctangent of " ++ show value ++ " is " ++ show result)
輸出
The hyperbolic arctangent of 0.5 is 0.5493061443340549
方法二:使用atanh()函式
在這種方法中,給定值的雙曲反正切是透過直接呼叫atanh()函式來計算的。atanh()函式的定義包含在cmath庫中。因此,我們可以直接呼叫此函式並將值作為引數傳遞給它。然後,結果雙曲反正切將顯示在螢幕上。
演算法
步驟1 − 匯入“Data.Complex”模組。
步驟2 − 程式執行將從main函式開始。main()函式控制整個程式。
步驟3 − 初始化名為“value”的變數。最初,它將具有垃圾值。然後,將一個常數值賦給它。使用賦值運算子將此值賦給變數“value”。
步驟4 − 直接呼叫cmath庫中已包含其函式定義以計算雙曲反正切的雙曲反正切函式atanh()。
步驟5 − 將包含值的“value”變數作為引數傳遞給atanh()函式,只需編寫函式呼叫的變數名即可。
步驟6 − atanh()函式計算最終結果值後,將結果賦值給“result”變數,並透過列印結果值顯示最終輸出。可以使用‘putStrLn’列印結果,例如putStrLn ("The hyperbolic arctangent of " ++ show value ++ " is " ++ show result)。也可以使用print (result)。
示例
在這個例子中,我們將看到如何使用atanh()函式找到傳遞值的雙曲反正切。
import Data.Complex
main :: IO ()
main = do
let value = 0.5
let result = Prelude.atanh value
putStrLn ("The hyperbolic arctangent of " ++ show value ++ " is " ++ show result)
輸出
The hyperbolic arctangent of 0.5 is 0.5493061443340549
結論
可以使用atanh()函式計算Haskell中給定值的雙曲反正切值。雙曲反正切函式atanh()是Haskell中的內建函式,其定義已在cmath庫中提供。否則,如果不使用cmath庫,我們也可以使用log函式定義雙曲反正切函式的函式定義。
雙曲反正切函式在物理學、工程學和計算機科學等領域非常有用,用於研究雙曲函式及其性質。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP