Feigenbaum constant calculation: Difference between revisions
Content added Content deleted
(→{{header|zkl}}: added code) |
|||
Line 107: | Line 107: | ||
13 4.66920537 |
13 4.66920537 |
||
</pre> |
</pre> |
||
=={{header|Racket}}== |
|||
{{trans|C}} |
|||
<lang 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))</lang> |
|||
{{out}} |
|||
<pre> i d |
|||
2 3.21851142 |
|||
3 4.38567760 |
|||
4 4.60094928 |
|||
5 4.65513050 |
|||
6 4.66611195 |
|||
7 4.66854858 |
|||
8 4.66906066 |
|||
9 4.66917155 |
|||
10 4.66919515 |
|||
11 4.66920026 |
|||
12 4.66920098 |
|||
13 4.66920537 |
|||
4.669205372040318</pre> |
|||
=={{header|Ring}}== |
=={{header|Ring}}== |