아래 코드에서 미분 방정식 시스템에 대한 해답을 찾았습니다. 이 코드 내에서 위상 공간 궤적을 플로팅하고 잘 작동합니다. 그러나 나는 줄거리를 반복하기를 원했지만 줄을 사용하여 줄거리가 무엇을 의미하는지 명확히 보여 주었다. 나는 유사한 질문이 묻는 것을 보았습니다 : Drawing phase space trajectories with arrows in matplotlib 그리고 따라서 아래의 코드에서 저는 제 상황을 위해 그것을 복제하려했습니다.파이썬 - 위상 공간 궤적 그리기 (떨림 함수)
분명히내가 잘못 이해 한 다음과 같이 내가 코드를 실행하면
, 내가 할 이미지가 있습니다 (그 스레드에서이 질문을 게시 것이지만, 나에게 허용하지 않습니다) 플롯이 동일하게 보일 것입니다 (두 번째 것은 화살표가 있어야합니다.) 이것은 분명히 사실이 아니며, 또한 내 linspace의 포인트 수를 변경하면 두 번째 플롯이 크게 바뀌는 것을 보았습니다. 내가 잘못 갈 곳 누구나 볼 수 있다면 난 그냥 궁금 해서요
# Import the required modules
import numpy as np
from run_kut4 import *
from printSoln import *
import pylab
def G2(x,y):
G2=np.zeros(2)
G2[0]=y[1]
G2[1]=-np.sin(y[0])+0.02*np.cos(y[0])*np.sin(x)
return G2
x2=0.0
xstop2=40.0
y2=np.array([0.0,0.0])
h2=0.005#step size
#freq=1
X2,Y2=integrate(G2,x2,y2,xstop2,h2)
pylab.plot(Y2[:,0],Y2[:,1])
pylab.xlabel('θ')
pylab.ylabel('dθ/dx')
pylab.title('Phase space trajectory (resonant case)')
pylab.show()
y1=np.linspace(-0.4,0.4,100)
y2=np.linspace(-0.4,0.4,100)
U,V=np.meshgrid(y1,y2)
pylab.quiver(U,V,Y2[:,0],Y2[:,1])
pylab.xlabel('θ')
pylab.ylabel('dθ/dx')
pylab.title('Phase space trajectory (resonant case)')
pylab.show()
, 어떤 도움에 감사드립니다 다음과 같이
내 코드입니다. 감사합니다 :)
나는 구문이 제안 U와 V 전환을 시도하고 입수했습니다이 :
같은 플롯을주는 떨림 기능으로 사용됩니다 pylab.quiver (X, Y, U, V) 그래서 어쩌면 당신의 라인을 교체 : ( pylab.quiver Y2의 [: 0] Y2 [:, 1], U, V) – Robbie
나는 그걸 시도해 봤어. 음모의 이상한 버전을 만든다. (아직 화살표는 없다.) 원래의 포스트에 이미지를 편집했다. – George
내게 대답은 당신을 위해 일합니다. –