ex8.10

from scipy.integrate import odeint
import numpy as np
import pylab as plt

df = lambda f,t,w: [w/np.sqrt((10+20*np.cos(t)-f[0])**2+(20+
                 15*np.sin(t)-f[1])**2)*(10+20*np.cos(t)-f[0]),
                 w/np.sqrt((10+20*np.cos(t)-f[0])**2+(20+
                 15*np.sin(t)-f[1])**2)*(20+15*np.sin(t)-f[1])]
d= lambda xy,t: np.sqrt((xy[:,0]-10-20*np.cos(t))**2+
                (xy[:,1]-20-15*np.sin(t))**2)  #计算距离函数
plt.rc('font', family='SimHei')
plt.rc('axes', unicode_minus=False)
t1 = np.linspace(0, 3.4068, 100)  #终值时间是一点一点凑出来的
s1 = odeint(df, [0,0], t1, args=(20,))
d1 = d(s1, t1)  #计算两者之间的距离
plt.plot(t1, d1); plt.xlabel('$t$'); plt.ylabel('$d$', rotation=0)
plt.figure(); t2=np.linspace(0,50,501)
s2 = odeint(df, [0,0], t2, args=(5,))
d2 = d(s2, t2)  #计算两者之间的距离
plt.plot(t2, d2); plt.xlabel('$t$')
plt.ylabel('$d$', rotation=0); plt.show()



posted @ 2024-11-12 14:33  等我刷把宗师  阅读(0)  评论(0编辑  收藏  举报