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
Shampine 和S
Thompson 根据他们早期使用Fortran 编写的Fortran 90 DDE Solver 移植到MATLAB 上的,从MATLAB6
5开始加入MATLAB 的官方发行版 ,根据薛 定 宇 教 授 在其几 本关于 MATLAB 的著 作 中提 到的,该函数返 回 的sol 中结构 体 sol
x 和sol
y 均 为 按 行排 列,与 ode45 等 不同,不太规 范 (没 办法,因 为 这个函数本来就不是Mathworks 的官方作 品 ),不过 这一点已 经不大可能得 到改 进了,因 为 L
Shampine 和S
Thompson 已 经决 定 停 止 维 护 这个文件
如 果您 想 进 一步