[問題] 圖案沒有辦法畫

作者: schmitt (小密特)   2018-05-15 14:12:05
請問各位大大,為什麼有時候我改tspan = np.linspace(0,6, 100)的參數
變成tspan = np.linspace(0,3, 100),有時候就可以畫圖有時候就不行。
我希望可以畫出圈圈阿。
import numpy as np
import matplotlib.pyplot as plt
def f(Y, t):
y1, y2 = Y
return [-y2*(1-y1*y2)+0.1*y1, y1*(1-y1)+0.1*y2]
y1 = np.linspace(-4.0, 4.0, 20)
y2 = np.linspace(-4.0, 4.0, 20)
Y1, Y2 = np.meshgrid(y1, y2)
t = 0
u, v = np.zeros(Y1.shape), np.zeros(Y2.shape)
NI, NJ = Y1.shape
for i in range(NI):
for j in range(NJ):
x = Y1[i, j]
y = Y2[i, j]
yprime = f([x, y], t)
u[i,j] = yprime[0]
v[i,j] = yprime[1]
Q = plt.quiver(Y1, Y2, u, v, color='r')
plt.xlabel('$y_1$')
plt.ylabel('$y_2$')
plt.xlim([-4, 4])
plt.ylim([-4, 4])
plt.savefig('e:/phase-portrait.png')
from scipy.integrate import odeint
for y20 in [0, 0.5,0.6, 0.7, 0.8, 0.9, 1, 2,3,-0.5,-0.6, -0.7, -0.8, -0.9 -1,
-2, -3]:
tspan = np.linspace(0,6, 100)
y0 = [0.0, y20]
ys = odeint(f, y0, tspan)
plt.plot(ys[:,0], ys[:,1], 'b-') # path
plt.plot([ys[0,0]], [ys[0,1]], 'o') # #start
plt.plot([ys[-1,0]], [ys[-1,1]], 's') # #end
plt.xlim([-4, 4])
plt.savefig('e:/phase-portrait-2.png')
plt.show()

Links booklink

Contact Us: admin [ a t ] ucptt.com