Haskell 实数与复数反正弦计算教程


发布日期 : 2020-08-18 13:28:30 UTC

访问量: 10 次浏览

本教程将帮助我们找到给定值的反正弦。反正弦是正弦的反函数。
它接收正弦函数的输出值,并返回产生该输出值的输入角度。

反正弦函数在三角学和几何学中对寻找直角三角形的缺角和边很有用。

语法

asin(angle)

这里,asin() 是一个内置函数,值作为参数被传递,用于计算所传递的值的反正弦。
反正弦函数将 -1 和 1 之间的值映射为 -π/2 和 π/2 弧度之间的角度。

方法1:使用内置的 asin() 函数寻找反正弦

在这种方法中,asin 被定义为 atan (x / sqrt (1 - x^2)) 的别名,它是反正弦的标准数学定义。

算法

  • 第1步:程序的执行将从主函数开始。main() 函数拥有对程序的全部控制权。
  • 第2步:一个名为 angle 的变量正在被初始化。最初,它将有一个垃圾值。然后,一个常量值被分配给它。
  • 第3步:常量值必须在 -1 和 1 之间(含),否则 asin() 将给出 NaN 值。这个值通过使用赋值运算符被分配到变量 angle 中。
  • 第4步:调用内置的反正弦函数 asin()。它的定义已经在标准库中提供了。
  • 第5步:包含数值的 angle 变量被作为参数传递给 asin() 函数。
  • 第6步:在 asin() 函数计算出最终结果值后,将结果分配给 result 变量,并通过打印结果值显示最终输出。

示例

在这个例子中,我们将看到如何找到所传数值的反正弦。这可以通过使用内置的 asin() 函数来完成。

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

输出

The value between -1 and 1, whose arcsine is to be computed is:  
0.5
The resultant arcsine value is:  
0.5235987755982989

方法2:对复数使用内置的 asin() 函数

在这个方法中,来自 Data.Complex 模块的 asin 函数被用来寻找一个复数 y 的反正弦,其中 y 是只有实部为 x、虚部为 0 的复数。asin 的输出是一个复数,其中该复数的虚部是给定值的反正弦。

算法

  • 第1步:导入 Data.Complex 模块,以处理复数。
  • 第2步:程序的执行将从主函数开始。main() 函数拥有对程序的全部控制权。
  • 第3步:一个名为 x 的变量,包含复数的实部,正在被初始化。并给它分配一个介于 -1 和 1 之间的值。
  • 第4步:一个名为 y 的变量包含整个复数,包括实部和虚部,实部的值来自 x 变量,虚部被视为 0。
  • 第5步:调用内置的反正弦函数 asin()。它的定义在标准库中已经有了。
  • 第6步y 变量包含复数,作为参数传递给 asin() 函数。
  • 第7步:在 asin() 函数计算出最终结果值后,将结果分配给 z 变量,并通过打印 z 变量的虚部显示最终输出。

示例

在这个程序中,来自 Data.Complex 模块的 asin 函数被用来寻找一个复数的反正弦。

import Data.Complex
main :: IO ()
main = do  
let x = -0.3  
let y = x :+ 0
let z = asin y 
putStr "The arcsine of the value is: "
print (imagPart z)

输出

The arcsine of the value is: -0.0

结论

在 Haskell 中,给定值的反正弦可以通过使用 asin() 函数来计算。
作为参数传递给这个函数的值必须在 -1 和 1 之间(含)。

对于复数的反正弦,asin 的输出是一个复数,该复数的虚部是给定值的反正弦。
这只适用于实数,对于复数的反正弦没有定义。