21 lines
838 B
Racket
21 lines
838 B
Racket
|
|
#lang racket
|
|||
|
|
(define (feigenbaum #:max-it (max-it 13) #:max-it-j (max-it-j 10))
|
|||
|
|
(displayln " i d" (current-error-port))
|
|||
|
|
(define-values (_a _a1 d)
|
|||
|
|
(for/fold ((a 1) (a1 0) (d 3.2))
|
|||
|
|
((i (in-range 2 (add1 max-it))))
|
|||
|
|
(let* ((a′ (for/fold ((a (+ a (/ (- a a1) d))))
|
|||
|
|
((j (in-range max-it-j)))
|
|||
|
|
(let-values (([x y] (for/fold ((x 0) (y 0))
|
|||
|
|
((k (expt 2 i)))
|
|||
|
|
(values (- a (* x x))
|
|||
|
|
(- 1 (* 2 y x))))))
|
|||
|
|
(- a (/ x y)))))
|
|||
|
|
(d′ (/ (- a a1) (- a′ a))))
|
|||
|
|
(eprintf "~a ~a\n" (~a i #:width 2) (real->decimal-string d′ 8))
|
|||
|
|
(values a′ a d′))))
|
|||
|
|
d)
|
|||
|
|
|
|||
|
|
(module+ main
|
|||
|
|
(feigenbaum))
|