import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
def projectile(u,theta):
g=9.8
R=u**2*np.sin(2*(np.pi*theta/180))/(2*g)
T=2*u*np.sin(np.pi*theta/180)/g
H=2*u*np.sin(np.pi*theta/180)/g
return [R,H,T]
A=[]
R=[]
H=[]
T=[]
for i in range (1,91):
a=projectile(100,i)
A.append(i)
R.append(a[0])
H.append(a[1])
T.append(a[2])
data={}
data.update({'Angle':A, 'Range':R, 'Time of Flight':T, 'Maximum Height': H})
Project=pd.DataFrame(data)
Project
Angle | Range | Time of Flight | Maximum Height | |
---|---|---|---|---|
0 | 1 | 1.780587e+01 | 0.356172 | 0.356172 |
1 | 2 | 3.559004e+01 | 0.712235 | 0.712235 |
2 | 3 | 5.333085e+01 | 1.068081 | 1.068081 |
3 | 4 | 7.100668e+01 | 1.423602 | 1.423602 |
4 | 5 | 8.859601e+01 | 1.778689 | 1.778689 |
... | ... | ... | ... | ... |
85 | 86 | 7.100668e+01 | 20.358450 | 20.358450 |
86 | 87 | 5.333085e+01 | 20.380195 | 20.380195 |
87 | 88 | 3.559004e+01 | 20.395731 | 20.395731 |
88 | 89 | 1.780587e+01 | 20.405055 | 20.405055 |
89 | 90 | 6.248198e-14 | 20.408163 | 20.408163 |
90 rows × 4 columns
Project.to_csv('projectile.csv')
pro=pd.read_csv('projectile.csv')
pro.head()
Unnamed: 0 | Angle | Range | Time of Flight | Maximum Height | |
---|---|---|---|---|---|
0 | 0 | 1 | 17.805866 | 0.356172 | 0.356172 |
1 | 1 | 2 | 35.590038 | 0.712235 | 0.712235 |
2 | 2 | 3 | 53.330849 | 1.068081 | 1.068081 |
3 | 3 | 4 | 71.006684 | 1.423602 | 1.423602 |
4 | 4 | 5 | 88.596009 | 1.778689 | 1.778689 |
plt.figure(figsize=(15,8))
plt.plot(pro.Angle, pro.Range, '-', color='r', label='Range')
plt.plot(pro.Angle, pro['Time of Flight'],'-',color='m',lw=3,label='Time of Flight')
plt.plot(pro.Angle, pro['Maximum Height'],'-.',color='g',lw=3, label='Maximum Height')
plt.legend(fontsize=20, loc='center')
plt.xlabel('Angle of Projection(in Degree)', fontsize=20, color='b')
plt.ylabel('Range, Maximum Height, Time of Flight', fontsize=20, color='b')
plt.xticks(fontsize=20, color='r')
plt.yticks(fontsize=20,color='r')
plt.axvline(x=45,color='k',lw=3)
plt.savefig('Projectile.jpg')