def Nrelax(w,eta): ''' Esta funcion recibe como parametros la frecuencia de oscilacion del suelo y el coeficiente de restitucion. Como resultado crea una figura que permite evaluar visualmente si v'_n converge y de que forma lo hace. ''' #Condiciones iniciales y=0 #posicion v=2 #velocidad s=1 #signo de la velocidad n=0 #numero de botes while n<100: out=outnchoque(y,v,w,s,eta) y=out[0] #posicion del choque v=out[1] #v' despues del choque s=out[2] #signo de v_s despues del choque n+=1 plt.figure(1) plt.plot(n,v,'go') plt.xlabel('Numero de colisones $n$') plt.ylabel('Velocidad despues del bote $v\'_n$') plt.title('Comportamiento de $v\'_n$ versus la cantidad de botes $n$, $\omega =$ '+str(w)) num=str(w) num=num.replace('.','') plt.savefig('estabilidad'+num+'.eps') return
w3=np.linspace(1.68,1.724,45) w4=np.linspace(1.725,1.7398,50) w5=np.linspace(1.735,1.79,45) w=np.concatenate((w1,w2,w3,w4,w5)) eta=0.15 #Condiciones iniciales y=0 v=2 s=1 t=0 #Evolucion de particula i=0 #contador de w plt.figure(1) while i<len(w): n=0 #contador de botes while n<150: out=outnchoque(y,v,w[i],s,eta) y=out[0] #posicion del choque v=out[1] #v' despues del choque s=out[2] #signo de v_s despues del choque n+=1 if n>100: plt.plot(w[i],v,'bo') i+=1 plt.xlabel('Frecuencia angular $\omega$') plt.ylabel('Velocidad despues del bote $v\'_n$') plt.title('Valores estacionarios de $v\'_n$ versus $\omega$ ') plt.savefig('bifurcacion.eps')