如何在Python函数中对耦合的ODE系统进行矢量化?
基本上,我一直在尝试将这个耦合的ODE系统实现成一个函数,这样就可以用Runge-Kutta的方法,用参数q电荷和t时间来求解,其中q是一个列表,其中有q1,q2和q3: 我知道这会出错,但我一直在努力解决这个问题,但找不到解决方案 谁能帮帮我吗?我做到了如何在Python函数中对耦合的ODE系统进行矢量化?,python,ode,runge-kutta,Python,Ode,Runge Kutta,基本上,我一直在尝试将这个耦合的ODE系统实现成一个函数,这样就可以用Runge-Kutta的方法,用参数q电荷和t时间来求解,其中q是一个列表,其中有q1,q2和q3: 我知道这会出错,但我一直在努力解决这个问题,但找不到解决方案 谁能帮帮我吗?我做到了 def Problem(z,t): """ Z = [z1,z2,z3,z4,z5] z1: q1 (z[0]) z2: q2 (z[1]) z3: q2' (z[2])
def Problem(z,t):
"""
Z = [z1,z2,z3,z4,z5]
z1: q1 (z[0])
z2: q2 (z[1])
z3: q2' (z[2])
z4: q3 (z[3])
z5: q3' (z[4])
dZ = [q1',q2',q2'',q3',q3'']
"""
t0 = 1 # step function's shift.
V = 110*U(t-t0)
R1 = 350; R2 = 220
L1 = 1.2; L2 = 2
C1 = 3.5e-3; C2 = 2.8e-3
d2q2 = (z[0]/C2 - z[1]/C2 - z[3]/C2)/L2
dq1 = (V - z[0]/C1 + R2*z[4] - L2*d2q2)/R2
d2q3 = (-(R1+R2)*z[4] + R2*dq1 + z[0]/C2 - z[1]/C2 - z[3]/C2)/L1
dz = np.array([dq1,z[2],d2q2,z[4],d2q3])
return dz
def Problem(z,t):
"""
Z = [z1,z2,z3,z4,z5]
z1: q1 (z[0])
z2: q2 (z[1])
z3: q2' (z[2])
z4: q3 (z[3])
z5: q3' (z[4])
dZ = [q1',q2',q2'',q3',q3'']
"""
t0 = 1 # step function's shift.
V = 110*U(t-t0)
R1 = 350; R2 = 220
L1 = 1.2; L2 = 2
C1 = 3.5e-3; C2 = 2.8e-3
d2q2 = (z[0]/C2 - z[1]/C2 - z[3]/C2)/L2
dq1 = (V - z[0]/C1 + R2*z[4] - L2*d2q2)/R2
d2q3 = (-(R1+R2)*z[4] + R2*dq1 + z[0]/C2 - z[1]/C2 - z[3]/C2)/L1
dz = np.array([dq1,z[2],d2q2,z[4],d2q3])
return dz