簡體   English   中英

非線性微分方程組

[英]non linear system of differential equations

我正在嘗試解決以下微分方程的非線性系統,但我不明白我編寫的代碼中的問題在哪里。 該系統是非線性的,具有復數系數和復數域。

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()

始終在您的問題中包含錯誤消息。 如果沒有任何錯誤,請包括獲得的輸出,並解釋為什么它不是您期望的。

話雖如此……我發現您的代碼至少存在一個問題。 fun具有標准的ty參數,后跟參數wM,gM,G0,k,D0,aL 您必須在對set_f_params()的調用中為每個參數指定一個值。 您當前擁有set_f_params(2.0) ,但是該調用需要六個參數來匹配fun的額外參數。

在評論中,@ pv。 指出了第二個問題: ode(f)應該是ode(fun)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM