跳转到内容

Scheme 编程/高等数学

来自维基教科书,开放的书籍,开放的世界
Scheme 编程
 ← 简单数学 高等数学 列表操作 → 

三角函数

[编辑 | 编辑源代码]

Scheme 始终使用弧度来表示角度,因此其正弦、余弦、正切、反正弦、反余弦和反正切函数都按此操作

> (sin 0)
0.0
> (cos 0)
1.0
> (tan 0)
0.0
> (asin 1)
1.5707963267948965
> (acos 0)
1.5707963267948965
> (atan 1)
0.7853981633974483

双曲函数

[编辑 | 编辑源代码]

Scheme 提供了许多双曲函数,例如双曲正弦、余弦、正切及其反函数。

> (sinh 0)
0.0
> (cosh 0)
1.0
> (tanh 1)
0.7615941559557649
> (asinh 0)
0.0
> (acosh 1)
0.0
> (atanh 0)
0.0

幂函数

[编辑 | 编辑源代码]

将底数提高到幂

[编辑 | 编辑源代码]

Scheme 提供了 expt 函数来将底数提高到指数。

> (expt 2 10)
1024

求一个数的平方根

[编辑 | 编辑源代码]

Scheme 提供了 sqrt 函数来求一个数的平方根。

> (sqrt 2)
1.4142135623730951
> (expt 2 0.5)
1.4142135623730951

指数和对数函数

[编辑 | 编辑源代码]

Scheme 提供了 exp 函数来将底数 提高到幂

> (exp 2)
7.3890560989306504

Scheme 提供了 log 函数来求一个数的自然对数

> (log 7.389056)
1.999999986611192

请注意,除了底数 之外,没有内置过程可以求其他底数的对数。相反,你可以输入

> (define logB 
    (lambda (x B) 
      (/ (log x) (log B))))

其他有用的数学函数(舍入、模、gcd 等)

[编辑 | 编辑源代码]

舍入函数

[编辑 | 编辑源代码]

Scheme 提供了一组函数来向上、向下或最接近的整数舍入实数

  • (floor x) - 这将返回不超过 x 的最大整数。
  • (ceiling x) - 这将返回不小于 x 的最小整数。
  • (truncate x) - 这将返回最接近 x 的整数,该整数不超过 x 的绝对值。
  • (round x) - 这将按照数学中的惯例将 x 的值舍入到最接近的整数。它甚至在值之间的一半时也有效。
  • (abs x) - 这将返回 x 的绝对值。

数论除法

[编辑 | 编辑源代码]

为了执行数学上精确的除法并完成数论者的任务,Scheme 提供了少量特定于除法的函数

  • (remainder x y) - 计算将 y 除以 x 的余数(即 x/y 的余数)
> (remainder 5 4)
1
> (remainder -5 4)
-1
> (remainder 5 -4)
1
> (remainder -5 -4)
-1
> (remainder x y)
error
> (remainder 2 1)
0
  • (modulo x y) - 计算 x 和 y 的模。
> (modulo 5 4)
1
> (modulo -5 4)
3
> (modulo 5 -4)
-3
> (modulo -5 -4)
-1

模和余数之间显然存在差异,其中一个此处没有显示,即余数是唯一一个将返回不精确值的函数,并且可以接受不精确的参数。

华夏公益教科书