跳轉到內容

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

模和餘數之間顯然存在差異,其中一個此處沒有顯示,即餘數是唯一一個將返回不精確值的函式,並且可以接受不精確的引數。

華夏公益教科書