[关闭]
@Xc-liu 2016-04-11T21:11:50.000000Z 字数 2097 阅读 839

homework_7


作者:刘星辰 材料物理专业

背景介绍:

本文主要分析投掷棒球时,棒球的自旋对飞行轨迹的轨迹的影响。首先分析忽略棒球的自旋只考虑空气阻力的影响时棒球的轨迹,最后分析加上自旋以后棒球的轨迹有什么变化。

正文

运动参数对比

\ 轨迹的最大高度(y方向) 运动时间 射程(x方向)
无自旋
有自旋

计算程序:

  1. #coding:utf-8
  2. #initial value
  3. import math
  4. t=[]
  5. dt=0.01 #B/m=4*10-5 realy count
  6. g=9.8
  7. end_time=120
  8. t.append(0)
  9. w=4000*math.pi
  10. v_1=7 #initial volocity
  11. v_2=70
  12. S=4.1*10**-4
  13. #define variable
  14. x_1=[]
  15. v_x_1=[]
  16. y_1=[]
  17. v_y_1=[]
  18. z_1=[]
  19. v_z_1=[]
  20. x_1.append(0)
  21. y_1.append(0)
  22. z_1.append(0)
  23. v_x_1.append(v_1) #initial speed equal 700m/s
  24. v_y_1.append(v_2)
  25. v_z_1.append(0)
  26. x_2=[]
  27. v_x_2=[]
  28. y_2=[]
  29. v_y_2=[]
  30. z_2=[]
  31. v_z_2=[]
  32. x_2.append(0)
  33. y_2.append(0)
  34. z_2.append(0)
  35. v_x_2.append(v_1) #initial speed equal 700m/s
  36. v_y_2.append(v_2)
  37. v_z_2.append(0)
  38. #caulate the coordinate
  39. for i in range(int(end_time/dt)):
  40. d=x_1[i]+v_x_1[i]*dt
  41. x_1.append(d)
  42. e=v_x_1[i]-dt*(0.0039+0.0058/(1+math.e**(((v_x_1[i]**2+v_y_1[i]**2+v_z_1[i]**2)**0.5-35)/5)))*((v_x_1[i]**2+v_y_1[i]**2+v_z_1[i]**2)**0.5)*v_x_1[i]
  43. v_x_1.append(e)
  44. f=y_1[i]+v_y_1[i]*dt
  45. y_1.append(f)
  46. h=v_y_1[i]-g*dt
  47. v_y_1.append(h)
  48. z_1.append(0)
  49. v_z_1.append(0)
  50. j=x_2[i]+v_x_2[i]*dt
  51. x_2.append(j)
  52. p=v_x_2[i]-dt*(0.0039+0.0058/(1+math.e**(((v_x_2[i]**2+v_y_2[i]**2+v_z_2[i]**2)**0.5-35)/5)))*((v_x_2[i]**2+v_y_2[i]**2+v_z_2[i]**2)**0.5)*v_x_2[i]
  53. v_x_2.append(p)
  54. l=y_2[i]+v_y_2[i]*dt
  55. y_2.append(l)
  56. m=v_y_2[i]-g*dt
  57. v_y_2.append(m)
  58. n=z_2[i]+v_z_2[i]*dt
  59. z_2.append(n)
  60. o=v_z_2[i]-dt*S*v_x_2[i]*w
  61. v_z_2.append(o)
  62. #draw the picture
  63. import matplotlib as mpl
  64. from mpl_toolkits.mplot3d import Axes3D
  65. import numpy as np
  66. import matplotlib.pyplot as plt
  67. mpl.rcParams['legend.fontsize'] = 10
  68. fig = plt.figure()
  69. ax = fig.gca(projection='3d')
  70. ax.plot(x_1, y_1, z_1, label='no spin')
  71. ax.plot(x_2,y_2,z_2, label='spin')
  72. ax.legend()
  73. plt.show()

参考文献

计算物理教材

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注