MatLab 求解延迟微分方程的注意事项 2010-08-14 17:04 MatLab 求解延迟微分方程的注意事项 使用MATLAB 求解延时微分方程的两种方法:DDE23 和SimuLink 有些不同点需要注意,否则结果会出现错误 使用MATLAB 来求解延迟微分方程是在生物数学和化学计算求解中经常遇到的事,在其它领域也比较常见。我所知道的,在MATLAB 中求解微分方程有三种方法:1.使用ode45(龙格-库塔法的一个变种)求解,这时用一个数组,记录y 的延迟项,但是c 的值要考虑步长,再代入方程就能实现延时效应;2.使用dde23 求解常数延时方程、使用ddesd 可以用来求解延迟与时间 t 有关的延迟微分方程;3.使用SimuLink 建模求解,SimuLink 是求解广义微分代数系统的通用工具,功能很强大,但是看惯了编程指令的人可能不大习惯,调试似乎也不太方便。 既然本文专门讨论求解延迟微分方程,就先介绍一下专用工具 dde23,dde系列求解函数是由Southern Methodist University 的L.F. Shampine 和S. Thompson 根据他们早期使用Fortran 编写的Fortran 90 DDE Solver 移植到MATLAB 上的,从MATLAB6.5开始加入MATLAB 的官方发行版 ,根据薛 定 宇 教 授 在其几 本关于 MATLAB 的著 作 中提 到的,该函数返 回 的sol 中结构 体 sol.x 和sol.y 均 为 按 行排 列,与 ode45 等 不同,不太规 范 (没 办法,因 为 这个函数本来就不是Mathworks 的官方作 品 ),不过 这一点已 经不大可能得 到改 进了,因 为 L.F. Shampine 和S. Thompson 已 经决 定 停 止 维 护 这个文件 。如 果您 想 进 一步了解该 函数,可以访 问 它的主 页 。 MATLAB 帮 助 中关于 该 函数的介绍不很清 楚 ,如 果需要进 一步了解这个函数,需要下载 作 者 为 其写的手 册 。下面 以 MATLAB 中所附 的一个例 程来说 明 这个函数与 Simulink 建模求解的不同。 在MATLAB prompt 中键 入edit ddex1 就会找 看到函数作 者 所写的一个入门例 子 : function ddex1 %DDEX1 Example 1 for DDE23. % This is a simple example of Wille' and Baker that illustrates the % straightforward formulation, computation, and plotting of the solution % of a system of delay differential equations (DDEs). % % The differential equations %...