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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 面试官:说下什么是TCP 的粘包和拆包?

    面试官:说下什么是TCP 的粘包和拆包?

    2022年2月20日
    56
  • Java main方法

    Java main方法publicstaticvoidmain(String[]args){}或者 publicstaticvoidmain(Stringargs[]){}main方法是我们学习Java语言学习的第一个方法,也是每个java使用者最熟悉的方法,每个Java应用程序都必须有且仅有一个main方法。在eclipse里可以使用输入main,在按住Alt+/的方式快速创建main方法

    2022年6月1日
    32
  • android之interpolator的用法详解

    android:interpolator    Interpolator 被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。  android中的文档内容如下:   AccelerateDecelerateInterpolator 在动画开始与介绍的地

    2022年3月10日
    190
  • MyBatis-延迟加载与MyBatis缓存(面试题)

    MyBatis-延迟加载与MyBatis缓存(面试题)MyBatis-延迟加载与MyBatis缓存-概念性MyBatis-延迟加载与MyBatis缓存MyBatis-延迟加载与MyBatis缓存-概念性延迟加载(面试题)1、什么是延迟加载(按需加载)2、延迟加载MyBatis缓存(面试题)1、Cache缓存2、MyBatis缓存分析3、一级缓存4、二级缓存原理开启二级缓存5、禁用二级缓存6、刷新二级缓存延迟加载(面试题)1、什么是延迟加载(按需…

    2022年5月21日
    38
  • vs python生成exe文件_使用VScode编写python程序并打包成.exe文件

    vs python生成exe文件_使用VScode编写python程序并打包成.exe文件据说VisualStudioCode(VSCode)的诸多好处,了解了一下果然很喜欢,我喜欢它的原因主要有3个,一是VSCode开源且跨平台,二是因为其界面非常酷,三是可以满足我的大所属代码需求,除此之外当然还有强大的好奇心。使用VScode编写第一个Python程序“one.py”,并将其打包成.exe文件。演示使用的程序版本:python36,VScode1.27.1,pyinstal…

    2022年5月15日
    59
  • 【转载】WebService相关概念

    【转载】WebService相关概念

    2021年11月18日
    65

发表回复

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

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