使用射击方法求解 ODE

计算科学
2021-11-28 14:30:48

我一直在尝试求解以下非线性常微分方程:

Φ3rΦ+Φ32Φ2+α2Φ3=0

有边界条件

Φ(0)=0,Φ()=0.

我的解决方案应该重现以下情节:

现在,为了生成上面给出的图,我编写了以下 Mathematica 代码:

α = 0.99;
Φlower = 0;
Φupper = 5;
For[counter = 0, counter <= 198, counter++,
    Φ0 = (Φlower + Φupper)/2;
    r0 = 0.00001;
    Φr0 = Φ0 + (1/16) (r0^2) (2 (Φ0) - 3 (Φ0^2) + α (Φ0^3));
    Φpr0 = (1/8) (r0) (2 (Φ0) - 3 (Φ0^2) + α (Φ0^3));
    diffeq = {-Φ''[r] - (3/r) Φ'[r] + Φ[r] - (3/2) (Φ[r]^2) + (α/2) (Φ[r]^3) == 0, Φ[r0] == Φr0, Φ'[r0] == Φpr0};
    sol = NDSolve[diffeq, Φ, {r, r0, 200}, Method -> "ExplicitRungeKutta"];
    Φtest = Φ[200] /. sol[[1]];
    Φupper = If[(Φtest < 0) ||   (Φtest > 1.2), Φ0, Φupper];
    Φlower = If[(Φtest < 1.2) && (Φtest > 0),   Φ0, Φlower];
]
Plot[Evaluate[{Φ[r]} /. sol[[1]]], {r, 0, 200}, 
     PlotRange -> All, PlotStyle -> Automatic] 

在代码中,由于此外,我使用了拍摄方法,并不断地将初始区间从平分到以获得越来越精确的值。r=03rΦΦupper=5Φlower=0Φ(0)

使用上面的代码,我能够生成的图。例如,我对的绘图如下:α=0.50,0.90,0.95,0.96,0.97α=0.50

但是,我的的图并没有收敛到所需的图:α=0.99

你能建议我如何解决这个问题吗?的长期渐近趋势之后,图向上射击和振荡是否有解释?α=0.99r

0个回答
没有发现任何回复~