importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.integrateimportsolve_ivpn=201x=np.linspace(-5,5,n)y=np.linspace(-5,5,n)kappa=2xx,yy=np.meshgrid(x,y)xx2=(xx-2)**2yy2=yy**2z=10*yy2-kappa*np.cos(xx*np.pi/2)+0.2*xx2val=[-1,0,1,2,3,5,8,10]contours=plt.contour(x,y,z,levels=val)plt.axis([-1.75,3,-1,1])plt.xlabel("$q$")plt.text(-5.75,0,"$p$",rotation=0)# Write contour data for outputwithopen('energy.dat','w')asmyfile:fori,level_segsinenumerate(contours.allsegs):forj,verticesinenumerate(level_segs):header=f"Segment {i+1}, Path {j+1}"np.savetxt(myfile,vertices,fmt='%f',header=header)myfile.write('\n')defrhs(t,w):x,y,a=wdxdt=-np.pi*np.sin(np.pi/2*x)-0.4*(x-2)dydt=-20*ydadt=-(dxdt**2+dydt**2)return[dxdt,dydt,dadt]w0=[1.6,0.36666,3]npts=101time=np.linspace(0,0.5,npts)sol=solve_ivp(rhs,[time[0],time[-1]],w0,t_eval=time)plt.plot(sol.y[0],sol.y[1],'-o')plt.show(block=False)