【发布时间】:2020-02-26 09:18:35
【问题描述】:
我已经使用模块solve_bvp 求解了具有两个边界条件的单个二阶微分方程。但是,现在我正在尝试求解两个二阶微分方程组;
U'' + a*B' = 0
B'' + b*U' = 0
边界条件 U(+/-0.5) = +/-0.01 和 B(+/-0.5) = 0。我已将其拆分为一阶常微分方程系统,并尝试使用 @987654322 @ 以数字方式解决它们。但是,对于我的解决方案,我只是得到了充满零的数组。我相信我错误地执行了边界条件。我不清楚如何处理文档中的两个以上方程。我的尝试如下
import numpy as np
from scipy.integrate import solve_bvp
import matplotlib.pyplot as plt
%matplotlib inline
from scipy.integrate import solve_bvp
alpha = 1E-8
zeta = 8E-3
C_k = 0.05
sigma = 0.01
def fun(x, y):
return np.vstack((y[1],-((alpha)/(C_k*sigma))*y[2],y[2], -(1/(C_k*zeta))*y[1]))
def bc(ya, yb):
return np.array([ya[0]+0.001, yb[0]-0.001,ya[0]-0, yb[0]-0])
x = np.linspace(-0.5, 0.5, 5000)
y = np.zeros((4, x.size))
print(y)
sol = solve_bvp(fun, bc, x, y)
print(sol)
在我的问题中,我刚刚重新标记了 a 和 b,但它们只是我输入的参数。我有这组方程的解析解,所以我知道存在一个不平凡的方程。任何帮助将不胜感激。
【问题讨论】:
标签: python numpy ode differential-equations