在 Python 中求解耦合微分方程组

计算科学 Python 微分方程 线性系统
2021-12-27 10:16:18

我有一个由两个耦合微分方程组成的系统,一个是三阶的,第二个是二阶的。我正在寻找一种在 Python 中解决它的方法。

对于如何做到这一点或简化定义边界值问题的这组方程的任何建议,我将不胜感激:

在此处输入图像描述

Pr 只是一个常数(普朗特数)

谢谢您的帮助,

注意:这个问题与之前的任何主题都不相关,这组方程可能需要我看不到的简化。谢谢你。

2个回答

不需要更高阶的魔法,只需转录成规范的一阶系统,对边界条件进行编码,对解的形状进行合理的初始猜测并调用 BVP 求解器

Pr = 5

def odesys(t,u):
    F,dF,ddF,θ,dθ = u
    return [dF, ddF, θ-0.25/Pr*(2*dF*dF-3*F*ddF), dθ, 0.75*F*dθ]

def bcs(u0,u1): return [u0[0], u0[1], u1[2]-1, u0[3]-1, u1[3]]

x = np.linspace(0,1,4)
u = [0.5*x*x, x, 0*x+1, 1-x, 0*x-1]

res = solve_bvp(odesys,bcs,x,u, tol=1e-5)
print(res.message)

然后绘制解决方案给出

在此处输入图像描述

将第一个方程微分一次得到,两次并代入第二个方程得到一个方程得到会给出什么?似乎为求解单个方程可能是您最好的方法(反之亦然)。θθFF