Question: There are 5 functions and one integrate function. Some of the force functions are working and others are not. The notes indicate what is and

There are 5 functions and one integrate function. Some of the force functions are working and others are not. The notes indicate what is and is not working and the integrate code block is empty and returns 0.

# add necessary importsimport numpy as npimport matplotlib.pyplot as plt# Given constantsG = 4*np.pi**2mass = {'sun': 1.0,'earth': 3.0034e-6,'moon': 3.6923e-7}r0 = {'sun': np.array([0,0,0]),'earth': np.array([9.978977040419635E-01, 6.586825681892025E-02, -6.320430920521123E-06]),'moon': np.array([9.956768547953816E-01, 6.676030485840675E-02, 1.641093070596718E-04])}v0 = {'sun': np.array([0,0,0]),'earth': np.array([-4.70015711e-01, 6.25165839e+00, -3.40817831e-04]),'moon': np.array([-0.55065949, 6.03534661, 0.01111456])}# functionsdef F_gravity(ri, rj, mi=float, mj=float): #Force Functionrij = ri-rj;length = np.sqrt(np.dot(rij,rij))direction_norm = rij / (rij**2).sum()**0.5return (-G*mi*mj/(length**2))*direction_normdef F_ES(rE): ## Gravitional force on earth by sunreturn F_gravity(r0["sun"],rE,mass["earth"],mass["sun"])def integrate_earth(tmax,dt=1e-3): ## the functionsteps = np.arange(0,tmax,dt)r_values=[]r=r0["earth"].copy()v =v0["earth"].copy()m_inv = 1/(mass["earth"])r_values.append(r.copy())for t in steps:r +=v*dtv-=m_inv*F_ES(r.copy())*dtr_values.append(r.copy())return r_values#FORCE FUNCTION 1#This is NOT correctdef F_EM(rE, rM):rE = r0["earth"]rM = mass["moon"]returnnp.array( F_gravity(rM, rE ,mass["moon"],mass["earth"]) )#FORCE FUNCTION 2#This is correctdef F_ME(rE, rM):return np.array( F_gravity(rM, rE ,mass["moon"],mass["earth"]) )#FORCE FUNCTION 3#This is correctdef F_MS(rM):return np.array( F_gravity(rM, r0["sun"] ,mass["moon"],mass["sun"]) )#FORCE FUNCTION 4#This is NOT correctdef F_E(rE, rM):return np.array( F_gravity(rM, rE ,mass["moon"],mass["earth"]) )#FORCE FUNCTION 5#This is NOT correctdef F_M(rE, rM):return np.array( F_gravity(rE, rM ,mass["earth"],mass["moon"]) )def integrate_EM(tmax, dt=1e-3): # Start of code block but not completedreturn 0if __name__ == "__main__":# create the trajectory# PLOT FUNCTIONS'''This is dummy code being worked on but close to what is neededpositions = integrate_EM(1)#stand in set up code for plottingarray =np.array(positions)#stand in set up code for plottingpositions2 = integrate_EM(2)#stand in set up code for plottingarray2 =np.array(positions2)#stand in set up code for plottingplt.plot(0,0, label = 'Earth')#stand in set up code for plottingplt.grid(True)#stand in set up code for plotting#plt.xlabel("x (AU)")#stand in set up code for plotting#plt.ylabel("y (AU)")#stand in set up code for plotting#plt.legend()#stand in set up code for plotting#plt.show()#stand in set up code for plottingplt.plot(0,0, label = 'Moon')#stand in set up code for plottingplt.grid(True)#stand in set up code for plottingplt.xlabel("x (AU)")#stand in set up code for plottingplt.ylabel("y (AU)")#stand in set up code for plottingplt.legend()#stand in set up code for plottingplt.show()#stand in set up code for plottingplt.savefig("orbit_earth_moon.png")#stand in set up code for plotting'''

There are 5 functions and one integrate function. Some of the forcefunctions are working and others are not. The notes indicate what isand is not working and the integrate code block is empty and

\f\f\f

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!