一个带延迟的微分方程的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 编辑 ]
附件doc1 是我希望得到的相图
怎么没人帮我呀
你求出来的其实是x(t-1)和t的结果。你的方程属于时延微分方程(DDEs)
这类微分方程包含了独立变量的延迟。他们在生物与化学模型这类大量的应用中遇到,可以通过DDE23来解决这类问题。
请用help dde23
谢谢你octopussheng
谢谢你octopussheng,我正式看了 help dde23 后编的程序,我想问的是用什么命令可以 画出x(t)与x(t-1) 的相图,
很怪的图
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));
和步长没关系
上面的图的步长为1/10还有和一阶导数的关系
plot(sol.y,sol.yp)回复 #7 quiet1016 的帖子
第一个图和步长一点关系都没有?不是吧?也太奇怪了!对啊,可以试试这个
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));
回复 #10 quiet1016 的帖子
楼上的这个方法就可以?对啊
因为x(1:step:end-step)=0:49;而x(1+step:step:end)=1:50,刚好满足楼主的要求多谢
震动论坛真的是个不错的论坛,大家都很热心!新年到了祝各位朋友万事如意! 不知道楼主的问题解决没有我也遇到类似的问题了。。。
我的相图倒是可以做出来了
但是是所有的相图在一个平面上的。如附图所示。
是3对变量画在同一个平面上了。
怎么把他们分别显示呢??比如我需要画(y1,yp1)。。
谢谢!!! 画图的时候分开画就可以了啊
页:
[1]
2