非线性微分方程边值问题打靶算法 Matlab 程序
【非线性微分方程边值问题打靶算法】参见 http://www.matlabsky.com/thread-828-
1-1.html
【线性微分方程边值问题打靶算法】参见 http://www.matlabsky.com/thread-827-1-
1.html
【线性微分方程边值问题有限差分算法】参见 http://www.matlabsky.com/thread-
829-1-1.html
下面我们讲解下【非线性微分方程边值问题打靶算法】
对于边值问题
线性边值问题时,p、q 和 r 只是 x 的函数,但是非线性时它们是 x,y 和 y'的函数
我们将问题转换为如下初值问题
现在我们需要做的就是找到那个 m,使得 y(b)=beta,换句话说 y 现在由两个变量最终控
制,即 m 和 x。对于这个求 m 的问题,我们可以使用牛顿迭代法得到
(1)先给出一个初值 m=1
(2)计算出对应的 y(b)为 yb,这个直接使用 ode45 计算,得到 y(end,1)就是 yb
(3)根据 beta 和 yb 的差异更新 m
(4)将新的 m 带入(2)重新计算 yb 并更新 m
(5)如此迭代直到 m 稳定或者在允许误差范围内