Haskell程序 查找给定值的余弦
本教程将帮助我们找到给定值的余弦。余弦是余弦的反函数。如果给定一个介于-1和1之间的值,它将返回余弦等于该值的角度(单位:弧度)。
例如,π/3弧度的余弦等于0.5。因此,如果你把0.5作为输入传给arccosine函数,它应该返回pi/3弧度。
语法
acos(angle)
这里,acos()是一个内置的函数,值被作为参数传递,以计算所传递的值的余弦。
方法1:使用内置的acos()函数寻找阿科西恩
acos()函数在Haskell中只以弧度工作。在这个方法中,传递给acos()函数的值必须是[-1,1]。如果该值不在[-1,1]的范围内,将显示一个错误信息。
算法
- 第1步 – 程序的执行将从主函数开始。main()函数拥有对程序的全部控制权。
-
第2步 – 一个名为 “角度 “的变量正在被初始化。最初,它将有一个垃圾值。然后,一个常量值被分配给它。
-
第3步 – 常数必须在-1和1之间,否则acos()将给出NaN的值。这个值通过使用赋值运算符被分配到变量 “angle “中。
-
第4步 – 调用内置的阿科西函数,acos()。它的定义在标准库中已经有了
-
第5步 – 包含数值的 “角度 “变量作为参数传递给acos()函数。
-
第6步 – 在acos()函数计算出最终结果值后,将结果分配给 “result “变量,并通过打印结果值显示最终输出。
示例
在这个例子中,我们将看到如何找到所传数值的余弦。这可以通过使用内置的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()函数寻找阿科正弦。
在Haskell中,”Data.Complex “模块提供了一个’cis’函数,可以用来创建具有给定相位角的复数,我们可以用它来计算一个复数的余弦。一个复数的余弦是多值的,这意味着会有无限多的复数的余弦等于输入数。
算法
- 第1步–导入一个 “Data.Complex “模块,以处理复数。
-
第2步 – “cacos “函数将一个复数作为输入,并使用acos(z) = -ilog(z + isqrt(1 – z^2))来返回该数的余弦值。
-
第3步 – 程序的执行将从主函数开始。main()函数拥有对程序的全部控制权。
-
第4步 – 一个名为 “值 “的变量,包含复数,正在被初始化。一个常数复数被分配给它。
-
第5步 – 调用cacos()函数包含或计算的复数的arccosine函数定义。
-
第6步 – 包含复数的 “value “变量作为参数传递给cacos()函数。
-
第7步 – 在cacos()函数计算出最终结果值后,将结果分配给 “result “变量,并通过打印结果值显示最终输出。
示例
在这个例子中,我们将使用内置的复数acos()函数来寻找阿库辛。
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)
结论
在Haskell中,可以通过acos()函数来计算给定值的阿科正弦值。作为参数传递给这个函数的值必须在-1和1之间,包括在内。
一个复数的阿库辛是多值的,可以用cacos()函数来计算。程序的输出将取决于所选择的对数函数的分支和角度的区间。