[关闭]
@wudawufanfan 2016-12-16T17:03:47.000000Z 字数 1017 阅读 430

在此处输入标题

未分类


在此输入正文

  1. from matplotlib import animation
  2. from pylab import*
  3. import numpy as np
  4. c=300.0
  5. dx=0.01
  6. dt=0.01
  7. t=0.0
  8. y=[]
  9. l=np.linspace(0,1,100)#x-axis
  10. y0=np.exp(-1000*(l-0.3)**2)#y-axis it's a wave package locates at x=0.3
  11. y0_2=np.exp(-1000*(l-0.7)**2)+np.exp(-700*(l-0.7)**2)
  12. def w():
  13. global t,dt
  14. y.append(y0_2)
  15. y.append(y0_2)
  16. while t<100.0:
  17. y_next=np.zeros(100)
  18. for i in range(1,98):
  19. y_next[i]=-y[-2][i]+y[-1][i+1]+y[-1][i-1]
  20. y.append(y_next)
  21. t=t+dt
  22. return y, t
  23. #print w()[0] ,w()[1]
  24. def w2():
  25. global t,dt
  26. y.append(y0)
  27. y.append(y0)
  28. while t<100.0:
  29. y_next=np.zeros(100)
  30. for i in range(1,98):
  31. if i<50:
  32. y_next[i]=-y[-2][i]+y[-1][i+1]+y[-1][i-1]
  33. else:
  34. y_next[i]=2*(1-0.5)*y[-1][i]-y[-2][i]+0.5*(y[-1][i+1]+y[-1][i-1])
  35. y.append(y_next)
  36. t=t+dt
  37. return y, t
  38. #print w()[0] ,w()[1]
  39. a=w()[0]
  40. a=w()[0]
  41. f=figure()
  42. ax=axes(xlim=(0,1),ylim=(-1.2,1.2))
  43. line, =ax.plot([],[],lw=2)
  44. def animate(i):
  45. line.set_data(l,a[i])
  46. return line,
  47. def init():
  48. line.set_data([],[])
  49. return line,
  50. anim=animation.FuncAnimation(f,animate,init_func=init,frames=200,interval=50,blit=True)#frames mean zhenshu,interval mean each frame last how long
  51. show()
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注