オイラー法の関数をSchemeで実装 〜 『計算物理学入門』読み(その1)

オイラー法の関数をSchemeで実装してみた。オイラー法のついての説明はWikipediaの記事を参照してください。

オイラー法は、理解しやすいけど、精度も悪いし、場合によっては値が収束しない事もあるみたい。

コードは以下の通り。


;; Euler
;; オイラー法を使って、初期条件と導関数dy/dx=f(x,y)からxの時のyの値を求める。
;; x-ini: xの初期値
;; y-ini: yの初期値
;; x:
;; fxy: f(x,y)
;; dx: x_nからx_n+1までの区間の幅
(define (euler x-ini y-ini x fxy dx)
(let loop ((x-i x-ini)
(y-i y-ini))
(if (< x-i x)
(loop (+ x-i dx) (+ y-i (* (fxy x-i y-i) dx)))
y-i)))