y'=y^2+1 的数值解问题

Problem on numerical solution of y'=y^2+1

我想用数值方法计算有奇点的微分。

例如,y'=y^2+1 且 y(0)=0。解析解不难求,y=tan(x).

我用数值方法的时候出现问题,看Matlab中的代码

tspan = [0 6];
y0 = [0; 0];
ode = @(t, y) y.^2+1;
[t, y] = ode45(ode, tspan, y0);
plot(t, y(:,1))
axis([0 6 -20 20])

它给出了下面的图,即它错过了第一个奇点之后的部分解。

我的问题:如何求具有奇点的微分方程的全数值解?

提前致谢!

这在一般情况下是不可能的。 ODE 解在发散到无穷大处结束(或以任何其他方式离开 ODE 函数的域)。

你能做的就是应用领域知识。这个等式是一个 Riccati DE。如果知道一种解决方案,则可以将其转换为具有解决方案公式的伯努利 DE。在不知道特定解决方案的情况下进行第二次转换,它总是有效但并不总是有帮助。设置 y=p/q 和 select 它们的关系,以便得到线性方程组。这里 p'q-q'p=p^2+q^2 很好地解析为 p'=q, q'=-p,或者作为二阶 DE u''+u=0,谐波振荡器,用于 u=qu=p。该系统现在没有奇点,原始解 y 的极点是分母 q.

的根