如何将 1/x^2 奇异项重新表述为 1/x 以便 bvp4c 可以解决它?

计算科学 matlab 边界条件
2021-12-07 05:47:33

我的 Matlab 脚本中有一个单数术语的“化妆品”问题。我正在尝试解决以下微分方程组:

y1=y2,y2=2y1x2+k(y13y1)2y2x.

其中 x 是 y 的自变量,k 是常数。该系统用边界条件求解:

y1(0)=0,y1(10)=1.

我有一个使用 Matlab 的 bvp4c 函数的工作脚本。然而,解决方案y2似乎在零附近趋于无穷大。我从 Matlab 的文档中读到 bvp4c 可以解决奇异边界值的问题,如果它们具有以下形式:

y=Syx+F(x,y,p).
但是正如你所看到的,有一个1x2- 除了一个1x-学期。我一直在尝试修改微分方程的形式,以便我可以将它写成 Matlab 想要的形式。但是,无论我做什么,我似乎都无法将其修改为所需的形式。我希望也许有人可能对这个问题有所了解。提前致谢!

1个回答

你的方程,写成二阶 ODE,是

y=2xy+2x2y+ky(y21).
代入 则变为 与 bvp4c 接受的形式相匹配矩阵 形式的其他变换也得到这种形式。
y(x)=xw(x),
w=4xw+kw(1x2w2),
S=(0040).
y=(x+αx2)w

事实上,有一个众所周知的线性 ODE 变量变化理论(例如,参见 Liouville 的这个定理: https ://mathoverflow.net/a/187499 ),并找到像 实际上不需要任何猜测。中的 ODE 的一阶形式会使这变得不必要地笨拙。y=xw(y1,y2)