MatLab求解延迟微分方程的注意事项.doc

上传人:hw****26 文档编号:2989154 上传时间:2019-05-16 格式:DOC 页数:15 大小:128KB
下载 相关 举报
MatLab求解延迟微分方程的注意事项.doc_第1页
第1页 / 共15页
MatLab求解延迟微分方程的注意事项.doc_第2页
第2页 / 共15页
MatLab求解延迟微分方程的注意事项.doc_第3页
第3页 / 共15页
MatLab求解延迟微分方程的注意事项.doc_第4页
第4页 / 共15页
MatLab求解延迟微分方程的注意事项.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、MatLab 求解延迟微分方程的注意事项 2010-08-14 17:04MatLab求解延迟微分方程的注意事项使用 MATLAB求解延时微分方程的两种方法: DDE23和 SimuLink有些不同点需要注意,否则结果会出现错误使用 MATLAB来求解延迟微分方程是在生物数学和化学计算求解中经常遇到的事,在其它领域也比较常见。我所知道的,在 MATLAB中求解微分方程有三种方法:1.使用 ode45(龙格-库塔法的一个变种)求解,这时用一个数组,记录 y的延迟项,但是 c的值要考虑步长,再代入方程就能实现延时效应;2.使用 dde23求解常数延时方程、使用 ddesd可以用来求解延迟与时间 t

2、有关的延迟微分方程;3.使用 SimuLink建模求解,SimuLink 是求解广义微分代数系统的通用工具,功能很强大,但是看惯了编程指令的人可能不大习惯,调试似乎也不太方便。既然本文专门讨论求解延迟微分方程,就先介绍一下专用工具 dde23,dde 系列求解函数是由 Southern Methodist University 的 L.F. Shampine 和 S. Thompson根据他们早期使用 Fortran编写的 Fortran 90 DDE Solver 移植到 MATLAB上的,从 MATLAB6.5开始加入 MATLAB的官方发行版,根据薛定宇教授在其几本关于 MATLAB的著

3、作中提到的,该函数返回的 sol中结构体 sol.x和 sol.y均为按行排列,与 ode45等不同,不太规范(没办法,因为这个函数本来就不是 Mathworks的官方作品),不过这一点已经不大可能得到改进了,因为 L.F. Shampine 和 S. Thompson已经决定停止维护这个文件。如果您想进一步了解该函数,可以访问它的主页。MATLAB帮助中关于该函数的介绍不很清楚,如果需要进一步了解这个函数,需要下载作者为其写的手册。下面以 MATLAB中所附的一个例程来说明这个函数与 Simulink建模求解的不同。在 MATLAB prompt中键入 edit ddex1就会找看到函数作者

4、所写的一个入门例子: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% y_1(t) = y_1(t-1) % y_2(t)

5、 = y_1(t-1)+y_2(t-0.2)% y_3(t) = y_2(t)% are solved on 0, 5 with history y_1(t) = 1, y_2(t) = 1, y_3(t) = 1 for% t tau=1;%给定延迟时间 history=0;%初始值 tapan0,10;%求解时间范围 sol=dde23(yanchi,tau,history,tapan);%延迟问题求解 plot(sol.x,sol.y);%作图下面附上了图片 x(0)=0 和 x(0)=2 的情况显然初始值不同结果不同,这就是为什么需要初始值的情况延迟微分方程是:dx(t)/dt=0.2

6、*x(t-17)/(1+x(t-17)10)-0.1x(t)初始条件是 x(0)=1.2当 t0 then each ioutp-th point will be print. % % Output parameters: % Texp - time values % Lexp - Lyapunov exponents to each time value. % % Users have to write their own ODE functions for their specified % systems and use handle of this function as rhs_ex

7、t_fcn - parameter. % % Example. Lorenz system: % dx/dt = sigma*(y - x) = f1 % dy/dt = r*x - y - x*z = f2 % dz/dt = x*y - b*z = f3 % % The Jacobian of system: % | -sigma sigma 0 | % J = | r-z -1 -x | % | y x -b | % % Then, the variational equation has a form: % % F = J*Y % where Y is a square matrix

8、with the same dimension as J. % Corresponding m-file: % function f=lorenz_ext(t,X) % SIGMA = 10; R = 28; BETA = 8/3; % x=X(1); y=X(2); z=X(3); % % Y= X(4), X(7), X(10); % X(5), X(8), X(11); % X(6), X(9), X(12); % f=zeros(9,1); % f(1)=SIGMA*(y-x); f(2)=-x*z+R*x-y; f(3)=x*y-BETA*z; % % Jac=-SIGMA,SIGMA,0; R-z,-1,-x; y, x,-BETA; % % f(4:12)=Jac*Y; % % Run Lyapunov exponent calculation: % % T,Res=lyapunov(3,lorenz_ext,ode45,0,0.5,200,0 1 0,10); % % See files: lorenz_ext, run_lyap.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。