(1.2.2節の)黄金比φが変換 x → 1 + 1/x の不動点であることを示し,
この事実を使いfixed-point手続きによりφを計算せよ.
黄金比の定義は次のとおりです.
φ2 = φ + 1
この両辺をφで割ります.
φ = 1 + 1/φ
この結果から,
変換 x → 1 + 1/x
が得られます.
φ2 = φ + 1
この両辺をφで割ります.
φ = 1 + 1/φ
この結果から,
変換 x → 1 + 1/x
が得られます.
不動点を求める手続きは次のとおりです.
(define tolerance 0.00001) (define (fixed-point f first-guess) (define (close-enough? v1 v2) (< (abs (- v1 v2)) tolerance)) (define (try guess) (let ((next (f guess))) (if (close-enough? guess next) next (try next)))) (try first-guess))
実行してみます.
ようこそ DrRacket, バージョン 6.1 [3m]. 言語: Pretty Big; memory limit: 2048 MB. > (fixed-point (lambda (x) (+ 1 (/ 1 x))) 1.0) 1.6180327868852458 >
p.21から黄金比の値は約1.6180ですから, 求める結果が得られています.
0 件のコメント:
コメントを投稿