liwang718 发表于 2007-12-15 12:52

一个带延迟的微分方程的hopf 分岔源程序

我编了一个下面方程的程序
dx=3+x(t-1)-0.15x(t-1)*x(t-1)
程序如下:
function dx=equation(t,x,z)
xlag1=z(:,1); xlag2=z(:,2); xlag3=z(:,3);
dx=;


lags=;
tx=dde23('equation',lags,zeros(1,1),);
plot(tx.x,tx.y(1,:),'r-')

但是上面的程序只能画出x(t)与t的时间序列图,我想画出x(t)与x(t-1) 的相图,应该怎么写。请高手指点。

[ 本帖最后由 liwang718 于 2007-12-15 13:03 编辑 ]

liwang718 发表于 2007-12-15 13:08

附件doc1 是我希望得到的相图

liwang718 发表于 2007-12-16 15:31

怎么没人帮我呀

octopussheng 发表于 2007-12-16 18:59

你求出来的其实是x(t-1)和t的结果。

你的方程属于时延微分方程(DDEs)
这类微分方程包含了独立变量的延迟。他们在生物与化学模型这类大量的应用中遇到,可以通过DDE23来解决这类问题。

请用help dde23

liwang718 发表于 2007-12-17 17:26

谢谢你octopussheng

谢谢你octopussheng,我正式看了 help dde23 后编的程序,
我想问的是用什么命令可以 画出x(t)与x(t-1) 的相图,

quiet1016 发表于 2007-12-18 13:08

很怪的图

function dx=equation(t,x,z)
dx=;

lags=;
sol=dde23(@equation,lags,zeros(1,1),);
x = 0:0.1:50;
y = deval(sol,x,1);
plot(y(1:10:end-10),y(11:10:end));

quiet1016 发表于 2007-12-18 13:14

和步长没关系

上面的图的步长为1/10

quiet1016 发表于 2007-12-18 13:17

还有和一阶导数的关系

plot(sol.y,sol.yp)

octopussheng 发表于 2007-12-18 15:01

回复 #7 quiet1016 的帖子

第一个图和步长一点关系都没有?不是吧?也太奇怪了!

quiet1016 发表于 2007-12-18 15:57

对啊,可以试试这个

lags=;
sol=dde23(@equation,lags,zeros(1,1),);
step=20;
x = 0:1/step:50;
y = deval(sol,x,1);
plot(y(1:step:end-step),y(1+step:step:end));

无水1324 发表于 2007-12-19 10:22

回复 #10 quiet1016 的帖子

楼上的这个方法就可以?

quiet1016 发表于 2007-12-19 12:37

对啊

因为x(1:step:end-step)=0:49;而x(1+step:step:end)=1:50,刚好满足楼主的要求

liwang718 发表于 2007-12-21 21:05

多谢

震动论坛真的是个不错的论坛,大家都很热心!新年到了祝各位朋友万事如意!

wxl789 发表于 2008-6-30 21:51

不知道楼主的问题解决没有
我也遇到类似的问题了。。。


我的相图倒是可以做出来了

但是是所有的相图在一个平面上的。如附图所示。
是3对变量画在同一个平面上了。

怎么把他们分别显示呢??比如我需要画(y1,yp1)。。

谢谢!!!

咕噜噜 发表于 2008-7-1 08:10

画图的时候分开画就可以了啊
页: [1] 2
查看完整版本: 一个带延迟的微分方程的hopf 分岔源程序