;Autor: José Manuel Gómez Soto
#lang racket
(require plot)
(define intervalo (lambda (a b inc)
(if (> a b)
'()
(cons a
(intervalo (+ a inc) b inc)))
))
(define mimap (lambda(f lista)
(if (null? lista) '()
(cons (f (car lista))
(mimap f (cdr lista))))))
(define orbita (lambda(f x0 n)
(if (= n 0) '()
(cons x0 (orbita f (f x0) (- n 1))))))
(define funcionlogistica (lambda(lam)
(lambda(x) (* 4 lam (* x (- 1 x))))))
(define diagramabifurcacion
(lambda (funcion a b inclambda incorbitas nitera color)
(plot (points (flatten (mimap (lambda(y)
(map (lambda(x1)
(vector y (last (orbita (lambda(x) ((funcion y) x)) x1 nitera)))) (intervalo a b incorbitas)))
(intervalo a b inclambda))) #:sym 'dot #:color color
) #:x-min a
#:x-max b #:y-min a #:y-max b)))
(diagramabifurcacion funcionlogistica 0.1 1.0 0.001 0.01 100 5)
No hay comentarios:
Publicar un comentario