[关闭]
@Xc-liu 2016-06-07T12:11:39.000000Z 字数 1418 阅读 819

homework_14计算程序

计算物理

程序1

  1. import math
  2. import matplotlib.pyplot as plt
  3. import numpy as np
  4. #########
  5. y_af=[0]
  6. y_nw=[0]
  7. y_bf=[0]
  8. x=[0]
  9. #########
  10. t=0
  11. L=1.9
  12. dx=0.01
  13. c=250
  14. dt=dx/(4*c)
  15. r=c*dt/dx
  16. M=L/dx
  17. e=3.8*10**-5
  18. #########
  19. for i in range(int(L/dx)):
  20. x.append(x[i]+dx)
  21. y_bf.append(math.sin((2*math.pi*(5+0.5)/1.9)*x[i]))
  22. y_nw.append(math.sin((2*math.pi*(5+0.5)/1.9)*x[i]))
  23. y_af.append(math.sin((2*math.pi*(5+0.5)/1.9)*x[i]))
  24. #########
  25. for k in range(int(t/dt)):
  26. for i in range(int(L/dx)):
  27. l=int(L/dx)
  28. if i==0:
  29. y_af[i]=(2-2*r**2-6*e*r**2*M**2)*y_nw[i]-y_bf[i]+r**2*(1+4*e*M**2)*(y_nw[i+1]-y_nw[1])-e*r**2*M**2*(y_nw[i+2]-y_nw[2])
  30. if i==1:
  31. y_af[i]=(2-2*r**2-6*e*r**2*M**2)*y_nw[i]-y_bf[i]+r**2*(1+4*e*M**2)*(y_nw[i+1]+y_nw[i-1])-e*r**2*M**2*(y_nw[i+2]-y_nw[1])
  32. if i==l-1:
  33. y_af[i]=(2-2*r**2-6*e*r**2*M**2)*y_nw[i]-y_bf[i]+r**2*(1+4*e*M**2)*(y_nw[i+1]+y_nw[i-1])-e*r**2*M**2*(-y_nw[l-1]+y_nw[i-2])
  34. if i==l:
  35. y_af[i]=(2-2*r**2-6*e*r**2*M**2)*y_nw[i]-y_bf[i]+r**2*(1+4*e*M**2)*(-y_nw[l-1]+y_nw[i-1])-e*r**2*M**2*(-y_nw[l-2]+y_nw[i-2])
  36. if i==0:
  37. y_af[i]=0
  38. if i==l:
  39. y_af[i]=0
  40. if i>=2:
  41. if i<=l-2:
  42. y_af[i]=(2-2*r**2-6*e*r**2*M**2)*y_nw[i]-y_bf[i]+r**2*(1+4*e*M**2)*(y_nw[i+1]+y_nw[i-1])-e*r**2*M**2*(y_nw[i+2]+y_nw[i-2])
  43. for j in range(int(L/dx)):
  44. y_nw[j]=y_af[j]
  45. y_bf[j]=y_nw[j]
  46. ########
  47. plt.scatter(x,y_af,marker='+',color='b',label='t=0')
  48. plt.title(u'$varepsilon=3.8*10^{-5}$',fontsize=14)
  49. plt.xlabel(u'x/m',fontsize=14)
  50. plt.ylabel(u'y/m',fontsize=14)
  51. plt.legend(fontsize=12,loc='best')
  52. plt.show()
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注