다음 방정식의 비선형 시스템을 풀려고합니다. 하지만 내가 작성한 코드에서 문제가 어디 있는지 이해할 수 없습니다. 시스템은 복소 계수 및 복소 도메인을 갖는 비선형입니다.비선형 시스템의 미분 방정식
from pylab import *
from scipy.integrate import ode
#------initial parameters------
c = 3 * 10 ** 8
h = 6.626/(2 * pi) * 10 ** -34
kb = 1.3806 * 10 ** -23
TT = 0.1
mm = 1.50 * 10 ** -10
wM = 2 * pi * 10 ** 6
gM = 2 * pi * 10 ** 2
ll = 1064 * 10 ** -9
PL = 100 * 10 ** -4
L = 0.025
k = 1.340 * 10 ** 7
D0 = wM
Ns = 2083
wL = 2 * pi * c/ll
wC = D0 + wL
aL = sqrt((2 * k * PL)/(h * wL))
G0 = wC/L * sqrt(h/(mm * wM))
tau = 1/k
tciclo = 3 * pi/wM
tauP = 0.5 * pi/wM
tauNP = tciclo - tauP
dtau = 1/(10 * k)
def fun(t, y, wM,gM,G0,k,D0,aL):
return [wM * y[1],
-wM * y[0] - gM * y[1] + G0 * y[2]*y[2].conjugate(),
-(k + 1j * D0) * y[2] + 1j * G0 * y[0] * y[2]+aL]
y0 = [0.0, 0.0, 0.0]
r = ode(f).set_integrator('zvode', method='bdf')
r.set_initial_value(y0, 0).set_f_params(2.0)
tt = []
yy = []
while r.successful() and r.t < tauP:
r.integrate(r.t + dtau)
tt.append(r.t)
yy.append(r.y)
plot(tt, yy)
show()
추적 또는 오류 메시지? – najjarammar
'ode (fun)'가 있어야 할 때'ode (f)'라고 타이프했습니다. 'f'는'from pylab import *'에서 유래 한 것으로, f- 분포에서 무작위 변수를 계산하는 함수입니다 ... 두 번째 문제는'def fun (t, y, ...)'는 큰 목록을 포함한다는 것입니다 추가 인수가 있지만'set_f_params'에는 하나의 값만 부여합니다. –