前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matlab中dde23函数_时滞模型的matlab编程

matlab中dde23函数_时滞模型的matlab编程

作者头像
全栈程序员站长
发布2022-11-10 11:26:55
2.3K0
发布2022-11-10 11:26:55
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

延迟微分方程

matlab提供了dde23求解非中性微分方程。dde23的调用格式如下: sol = dde23(ddefun,lags,history,tspan) lags是延迟量,比如方程中包含y1(t-0.2)和y2(t-0.3)则可以使用lags=[0.2,0.3]。 这里的ddefun必须采用如下的定义方式: dydt = ddefun(t,y,Z) 其中的Z(:,1)就是y(t-lags(1)),Z(:,2)就是y(t-lags(2))… 下面是使用dde23求解延迟微分方程的两个例子。

第一个例子:

matlab中dde23函数_时滞模型的matlab编程
matlab中dde23函数_时滞模型的matlab编程

代码如下:

ddex1dez = @(t,y,Z) [y(1)*(1 + 0.1*sin(t)-0.1*Z(1,1) – y(2)/(1+y(1)) ); y(2)*( (2+sin(t))*10^(-5) + 9*Z(1,2)/(1+Z(1,2)) – Z(2,1) )];

%y(1)表示x_1(t),因为dde求解的结果中sol会有个x,为了区别用y(1)表示x_1(t);Z(1,1)表示时滞项x_1(t-0.1);Z(1,2)表示时滞项x_1(t-0.3)

sol = dde23(ddex1dez,[0.1, 0.3],[2 2],[0, 50]);%dde23(@….,tau,history,tspan);

%[0.1, 0.3]是时滞,[2 2]是初值,[0, 50]是时间范围

figure; % plot(sol.x,sol.y) plot(sol.x,sol.y(1,:) ) hold on plot(sol.x,sol.y(2,:),’-.’ ) hold off

title(‘时滞微分方程组’); xlabel(‘time t’); ylabel(‘solution y’); legend(‘x1′,’x2’);

matlab中dde23函数_时滞模型的matlab编程
matlab中dde23函数_时滞模型的matlab编程

第二个例子:

This example shows how to use dde23 to solve a system of DDEs with constant delays.

The differential equations are:

matlab中dde23函数_时滞模型的matlab编程
matlab中dde23函数_时滞模型的matlab编程

are solved on [0,5] with history:

matlab中dde23函数_时滞模型的matlab编程
matlab中dde23函数_时滞模型的matlab编程

for t ≤ 0.

  1. Create a new program file in the editor. This file will contain a main function and two local functions.
  2. Define the first-order DDE as a local function. function dydt = ddex1de(t,y,Z) ylag1 = Z(:,1); ylag2 = Z(:,2); dydt = [ylag1(1); ylag1(1)+ylag2(2); y(2)]; end
  3. Define the solution history as a local function. function S = ddex1hist(t) S = ones(3,1); end
  4. Define the delays, τ1,…,τk in the main function. lags = [1,0.2];
  5. Solve the DDE by calling dde23 in the main function. Pass the DDE function, the delays, the solution history, and interval of integration, [0,5], as inputs. sol = dde23(@ddex1de,lags,@ddex1hist,[0,5]); The dde23 function produces a continuous solution over the whole interval of integration [t0,tf].
  6. Plot the solution returned by dde23. Add this code to your main function. plot(sol.x,sol.y); title('An example of Wille and Baker'); xlabel('time t'); ylabel('solution y'); legend('y_1','y_2','y_3','Location','NorthWest');
  7. Evaluate the solution at 10 equally spaced points over the interval of integration. Then plot the the results on the same axes as sol.y. Add this code to the main function. tint = linspace(0,5,10); Sint = deval_r(sol,tint) hold on plot(tint,Sint,'o');
  8. Run your program to generate and plot the results.
matlab中dde23函数_时滞模型的matlab编程
matlab中dde23函数_时滞模型的matlab编程

代码如下:

ddex1dez = @(t,y,Z) [Z(1,1);Z(1,1)+Z(2,2);y(2)];

lags = [1,0.2];

sol = dde23(ddex1dez,lags,[1 1 1],[0,5]);

plot(sol.x,sol.y); title(‘An example of Wille and Baker’); xlabel(‘time t’); ylabel(‘solution y’); legend(‘y_1′,’y_2′,’y_3′,’Location’,’NorthWest’);

tint = linspace(0,5,10); Sint = deval(sol,tint)

hold on plot(tint,Sint,’o’);

或者 按如下代码执行:

clear;clc lags=[1,0.2]; history=[1;1;1]; tspan=[0,5]; sol = dde23(@myddefun,lags,history,tspan)

plot(sol.x,sol.y)

function dy = myddefun(t,y,Z) dy=[ Z(1,1); Z(1,1)+Z(2,2); y(2) ];

引用:

http://blog.sina.com.cn/s/blog_3ecbcc0701013bcd.html

http://wenku.baidu.com/view/31c21f54cc1755270722088b.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/187033.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月1日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • matlab提供了dde23求解非中性微分方程。dde23的调用格式如下: sol = dde23(ddefun,lags,history,tspan) lags是延迟量,比如方程中包含y1(t-0.2)和y2(t-0.3)则可以使用lags=[0.2,0.3]。 这里的ddefun必须采用如下的定义方式: dydt = ddefun(t,y,Z) 其中的Z(:,1)就是y(t-lags(1)),Z(:,2)就是y(t-lags(2))… 下面是使用dde23求解延迟微分方程的两个例子。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档