我正在尝试解决边界值问题的特殊情况,即边界层自然对流方程:
感谢这个论坛的贡献者@LutzLehmann,这组方程是通过使用solve_bvp
scipy 库中的函数来求解的。
在这种情况下,求解器的初始猜测似乎不起作用,我想知道什么更适合。
这是代码:
import numpy as np
from scipy.integrate import solve_bvp
import matplotlib.pyplot as plt
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[1], u0[3]-1, u1[3]]
x = np.linspace(0,8,25)
u = [x*x, np.exp(-x), 0*x+1, 1-x, 0*x-1]
res = solve_bvp(odesys,bcs,x,u, tol=1e-5)
print(res.message)
plt.subplot(2,1,1)
plt.plot(res.x,res.y[3], color='#801010', label='$\Delta T$')
plt.legend()
plt.grid()
plt.subplot(2,1,2)
plt.plot(res.x,res.y[1], '-', color='C0', label="$F'$")
plt.legend()
plt.grid()
这是获得的错误图:
有人可以通过建议一个更好的初始案例来帮助我解决这个问题吗?
谢谢您的帮助,
PS:对于命题:
u = [0.5*x*x*np.exp(-x), x*np.exp(-x), np.exp(-x), np.exp(-x), -np.exp(-x)]
我懂了 :
与文献相比,我期待这个结果(其中 g 是方程组中的 theta):