声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4075|回复: 29

[论坛公告] 哪位同志有下图的MAPLE或MATLAB程序,先谢了!

[复制链接]
发表于 2007-8-26 23:54 | 显示全部楼层 |阅读模式

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

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

x
哪位同志有下图的MAPLE或MATLAB程序,先谢了!3维ODE方程
zhou1920@126.com


[ 本帖最后由 无水1324 于 2007-8-27 09:58 编辑 ]

1.doc

33 KB, 下载次数: 66

回复
分享到:

使用道具 举报

发表于 2007-8-27 08:24 | 显示全部楼层
你这个是什么图啊,光给一个图其他什么也没有,怎么编写程序给你
 楼主| 发表于 2007-8-27 08:55 | 显示全部楼层

回复 #2 咕噜噜 的帖子

是分支图呀
发表于 2007-8-27 09:01 | 显示全部楼层

回复 #1 xueyongzhou 的帖子

写出方程,自己在maple和matlab中编写一个,与你作同样模型的人才可能有程序的
 楼主| 发表于 2007-8-27 09:04 | 显示全部楼层
方程为dS/dt=r*S*(1-(S+I)/K)-b*S*I
         dI/dt=b*S*I-c*I-c1*I*y/(I+K1)
         dy/dt=(a2-c2*I*y/(I+K2))*y

请大家帮忙!谢谢先.

[ 本帖最后由 xueyongzhou 于 2007-8-27 09:11 编辑 ]
 楼主| 发表于 2007-8-27 09:15 | 显示全部楼层

回复 #4 无水1324 的帖子

程序没有通用性吗?
发表于 2007-8-27 09:39 | 显示全部楼层

回复 #6 xueyongzhou 的帖子

你这个可以参考一下论坛里面的一些分岔程序,
分岔针对自己的系统可以采用不同的方法如频闪、最大值法等等,所以通用性的还是比较少的
发表于 2007-8-27 10:12 | 显示全部楼层
你的系统虽说是3个自由度,可是方程并不算复杂,因此算好了方法编写程序并不困难
论坛有很多分叉程序,你可以参考,有什么具体问题可以上来提问
 楼主| 发表于 2007-8-28 11:52 | 显示全部楼层
自己模仿liliangbiao的程序画的图.不好看.请帮忙修改!
function dx=abc(t,X)
x=X(1);
y=X(2);
z=X(3);
r=5;a2=1.2;c=1.5;c1=2;c2=1;K=3;k1=0.6;k2=0.5;
global beta;
dx=zeros(3,1);
dx(1)=r*x*(1-x/K-y/K)-beta*x*y;
dx(2)=beta*x*y-c*y-c1*z*y/(y+k1);
dx(3)=(a2-c2*z/(y+k2))*z;



clear;
global beta;
range=[5:0.01:6];
k=0;
YY=[];
for beta=range
    beta
    y0=rand(1,3);
    k=k+1;
    tspan=[0:0.05:400];
    [t,Y]=ode45('abc',tspan,y0);
    count=find(t>100);
    Y=Y(count,:);
    % 画x的分岔图。
    j=1;
    n=length(Y(:,1));
    for i=2:n-1
        if Y(i-1,1)+eps<Y(i,1) && Y(i,1)>Y(i+1,1)+eps  % 简单的取出局部最大值。
            YY(k,j)=Y(i,1);
            j=j+1;
        end
    end
    if j>1
        plot(beta,YY(k,[1:j-1]),'k.','markersize',1);
    end
    hold on;
    index(k)=j-1;
end
xlabel('beta');
ylabel('x');
%title('bifurcation diagram');

bifur.doc

62.5 KB, 下载次数: 56

发表于 2007-8-28 17:10 | 显示全部楼层
你这好像没有发生分叉啊,可能是你的参数选取有问题,或者参数范围不合适
 楼主| 发表于 2007-8-28 17:59 | 显示全部楼层
请问程序有问题吗?
但从相图上看在这范围有分支的.

[ 本帖最后由 xueyongzhou 于 2007-8-28 18:01 编辑 ]
发表于 2007-8-28 18:16 | 显示全部楼层

回复 #11 xueyongzhou 的帖子

可是你的分叉图上可真是没有发生分叉啊,贴出你的相图
 楼主| 发表于 2007-8-28 18:33 | 显示全部楼层
clc;clear all
global r a2 beta c c1 c2 k k1 k2
r=5;a2=1.2;beta=6;c=1.5;c1=2;c2=1;k=3;k1=0.6;k2=0.5;
options=odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e-4]);
[t,y]=ode45('epidemic',[0 100],[0.5 1 0.8],options);
figure(1);
plot(t,y(:,1),'b',t,y(:,2),'r');
figure(2);
plot(t,y(:,3),'g');
figure(3);
plot3(y(:,1),y(:,2),y(:,3),'r');



function dy = rigid(t,y)
global r a2 beta c c1 c2 k k1 k2
dy=zeros(3,1);    % a column vector
dy(1)=r.*y(1).*(1-y(1)/k-y(2)/k)-beta.*y(1).*y(2);
dy(2)=beta.*y(1).*y(2)-c.*y(2)-c1.*y(3).*y(2)/(y(2)+k1);
dy(3)=(a2-c2.*y(3)/(y(2)+k2)).*y(3);

取beta=5时稳定;
取beta=8时产生HOPF分支周期解!
发表于 2007-8-28 19:09 | 显示全部楼层

回复 #13 xueyongzhou 的帖子

:@L 我说的是相图,不过贴出来程序也好,看了一下,发现你的相图和分叉图的系统微分方程不一样
 楼主| 发表于 2007-8-28 21:07 | 显示全部楼层

回复 #14 咕噜噜 的帖子

微分方程是一样的呀!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-26 22:54 , Processed in 0.089022 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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