声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2566|回复: 10

[混合编程] 求时滞系统的分岔图程序

[复制链接]
发表于 2016-5-31 09:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
求时滞系统的分岔图程序

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2016-5-31 10:46 | 显示全部楼层
发表于 2016-5-31 11:00 | 显示全部楼层
1)最大值法

     即对系统微分方程(组)进行求解,对求解的结果用getmax函数进行取点,并绘图。

2)Poincare截面法

    对系统参数的每一次取值,绘制其Poincare截面,进而得到其分岔图。

    这种方法需要注意的是,自治系统的Poincare截面是选取一超平面,平面上点的分布即构成一Poincare截面,非自治系统的Poincare截面则是根据系统激励的频率进行取点并绘图。
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2016-6-1 15:52 | 显示全部楼层
christy 发表于 2016-5-31 10:46
参考:http://forum.vibunion.com/thread-67484-1-1.html

谢谢,这是一个滞回系统的分岔图,不是时滞系统的
发表于 2016-6-1 15:57 | 显示全部楼层
  1. d=0:0.0001:0.11;
  2. for j=1:length(n)
  3. [t,y]=ode45('shiyan',[0:0.001:100],[-0.001,-0.001,0,0],[],d(j));
  4.     data=y(:,1);
  5.     m=length(data);
  6.     for k=1:m-1
  7.         if 1.588146262064604*y(k,3)+6.968647880967183*10^(-11)*y(k,4)>=0 && 1.588146262064604*y(k+1,3)+6.968647880967183*10^(-11)*y(k+1,4)<0;
  8.         plot(d(j),1.588146262064604*y(k,1)+6.968647880967183*10^(-11)*y(k,2));
  9.         hold on
  10.         else
  11.         end
  12.     end
  13. end
复制代码
 楼主| 发表于 2016-6-20 19:53 | 显示全部楼层

能把把前面的方程发出来,谢谢!
发表于 2016-6-21 08:45 | 显示全部楼层
  1. 再试试这个呢
复制代码


 楼主| 发表于 2016-6-23 16:12 | 显示全部楼层

点评

二楼那个不行吗  详情 回复 发表于 2016-6-23 16:18
发表于 2016-6-23 16:18 | 显示全部楼层

二楼那个不行吗
 楼主| 发表于 2016-6-23 16:28 | 显示全部楼层
Triste 发表于 2016-6-23 16:18
二楼那个不行吗

他那个不是时滞系统,都没有时滞量
发表于 2016-6-23 16:32 | 显示全部楼层
找的一个  试试吧
function bBifurcation(T0,T1,Tmid,T,x0,y0,z0,a,c,b0,b1,n)
% for the Rossler attractor with varying b
%requirement: bBifurcation(0,600,200,30,1,1,1,0.2,5.7,0.2,2,0.05)
% initial conditions% [T0,T1] time interva
l% (a,b,c) parameters of Rossler system
% [x0;y0;z0] initial starting point
% Tmid∈[T0,T1]
% ===================================================================
% Bifurcation
%===================================================================

function Runingode45(T0,T1,Tmid,T,x0,y0,z0,a,b,c)
% ===================================================================
% Rossler system
% ===================================================================
function dy = Rossler(t,y)

dy(1,1) = - y(2) - y(3); %dx/dt
dy(2,1) = y(1) + a * y(2); %dy/dt
dy(3,1) = b + y(3) * (y(1) - c); %dz/dt
end
% ===================================================================
% Calculate maximum of x(t) over T
% ===================================================================
% ===================================================================
% Step 1
% ===================================================================
if Tmid > 0[t y] = ode45(@Rossler,[T0 T1],[x0;y0;z0]);
end
% ===================================================================
% Step 2
% ===================================================================
maxnew=[];
while Tmid + T < T1
[t y] = ode45(@Rossler,[Tmid Tmid+T],y(end,:));
for i = 2:length(y)-1 if y(i,1) > y(i-1,1) & y(i,1) > y(i+1,1)
max = y(i,1); end end Tmid = Tmid + T;
max;
maxnew = [maxnew;max];
end
% ===================================================================
% Plot
% ================================
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-1 10:51 , Processed in 0.096789 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表