In [1]:
import numpy as np
# importamos bibliotecas para plotear
import matplotlib
import matplotlib.pyplot as plt
# para desplegar los plots en el notebook
%matplotlib inline
def cobweb(f, x, y):
"""
Dibuja un diagrama de telaraña para una función.
"""
plt.axhline(linewidth=1.0, color="black")
plt.axvline(linewidth=1.0, color="black")
plt.ylim((y.min(),y.max()))
indep = np.linspace(x.min(), x.max(), len(x))
# grafica la funcion
plt.plot(indep,f(indep),'blue')
# grafica la diagonal
def diag(x):
return x
plt.plot(indep, diag(indep), 'black')
# grafica la telaraña
y0 = f(x[0])
x0 = x[0]
for i in range(len(x)):
plt.hlines(y0, x0, y0,'r')
x0 = y0
y0 = f(x0)
plt.vlines(x0, x0, y0,'r')
In [2]:
def f(x):
return np.cos(x)
In [3]:
# la serie de tiempo
x = np.linspace(0,10,100)
f_x = f(x)
fig = plt.plot(x, f_x)
In [9]:
# el diagrama de telaraña revela un punto fijo
cobweb(f, np.linspace(0,1,100), np.linspace(0,1,100))
plt.axis('equal')
Out[9]:
In [5]:
x = [0.7,]
for t in range(30):
x.append(f(x[t]))
zoom = plt.plot(x)
# cerca de 0.73908, profit
x[-5:]
Out[5]: