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

matlab中dde23函数_时滞模型的matlab编程ddex1histz=@(t)2*ones(2,1);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))]; sol=dde23(ddex1dez

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

matlab中dde23函数_时滞模型的matlab编程延迟微分方程

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编程

代码如下:

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编程

第二个例子:

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

The differential equations are:

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

are solved on [0,5] with history:

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编程

代码如下:

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.net/187033.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 有序的hashmap_在待排序的元素基本有序的前提下

    有序的hashmap_在待排序的元素基本有序的前提下如何给HashMap中的值排序?这个问题很多人都遇到过,很常见的一个方案是使用LinkedHashMap,因为LinkedHashMap可以记住元素放入的顺序,可以认为是真正的“有序”(想让HashMap有序是不可能的),我比较喜欢。然而问题是往往数据已经封装在了HashMap中,我们必须手动的排序后再放入LinkedHashMap,这当然也就成了思路,代码实现起来也很简单,写出来看起来还挺舒服的…

    2025年8月5日
    3
  • win10 VMware 虚拟机 实现桥接模式 上网

    win10 VMware 虚拟机 实现桥接模式 上网前言:  可能很多朋友想用VMware在自己的windows系统上体验下其它操作系统或者运行某些只能在Linux上的软件。但是可能自己买阿里云或者腾讯云感觉划不来。下面我来简单的来告诉大家,运用VMware的桥接模式,可以让大家像拥有另外一台不同操作系统的电脑一样在局域网中。同样可以来上网,可以和局域网中的其他机器一样通信,甚至可以暴露ip与端口到公网中,这样其他机器或者网页等也能访问它。环境…

    2022年6月14日
    164
  • linux查看当前目录下的所有目录

    我们知道可以使用ll命令列出当前目录下的所有文件夹和文件,ls-a还可以把隐藏文件显示出来,如果我们只想列出当前目录,可以使用如下命令ls-d*/ll-d*/

    2022年4月6日
    73
  • 基尼系数简单算法举例说明_趣学python算法100例

    基尼系数简单算法举例说明_趣学python算法100例1912年意大利经济学家基尼,设计了一个测度社会贫富差距的方法沿用至今,成为国际通用的标准。文章中通过python,公式法以及面积法计算2008年美国收入情况的基尼系数。并补充列表推导式相关介绍使用。

    2022年10月13日
    4
  • vlc 字幕中文乱码解决方法_字幕乱码符号

    vlc 字幕中文乱码解决方法_字幕乱码符号vlc中文字幕乱码的解决方案

    2025年7月18日
    2
  • 哈佛校训20条人生箴言「建议收藏」

    哈佛校训20条人生箴言「建议收藏」第一章从今日启程校训1:此刻打盹,你将做梦;而此刻学习,你将圆梦校训2:我荒废的今日,正是昨日殒身之人祈求的明日校训3:勿将今日之事拖到明日第二章学习态度决定事业高度校训4:学习时的苦痛

    2022年8月5日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号