声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4158|回复: 19

[稳定性与分岔] 定义法做poincare图问题

[复制链接]
发表于 2016-6-27 15:00 | 显示全部楼层 |阅读模式

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

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

x
请教一个问题。用定义法做poincare映射图,得到的周期数是从相图上判断的2倍,觉着是由于取的截面穿过轨迹2次,如下图。庞加莱映射图是不是要去一半处理?谢谢。

相图

相图

poincare

poincare
回复
分享到:

使用道具 举报

发表于 2016-6-29 17:07 | 显示全部楼层
当然啦。庞加莱截面的定义就是取一个极小的区域范围,保证这个区域能够包含所有周期运动穿过这个区域的点。你这个明显是取了两个了。
 楼主| 发表于 2016-6-29 17:34 | 显示全部楼层
我不是小偷 发表于 2016-6-29 17:07
当然啦。庞加莱截面的定义就是取一个极小的区域范围,保证这个区域能够包含所有周期运动穿过这个区域的点。 ...

恩 应该是在一侧取。用的论坛上的程序,修改了下直接坐的。
发表于 2016-6-30 09:13 | 显示全部楼层
Poincare映射(Poincare截面)定义
参考:王树禾:微分方程模型与混沌
      陈予恕:非线性动力学中的现代分析方法
      肖达川:线性与非线性电路
      高金锋:非线性电路与混沌
      温邦椿:非线性振动理论中的解析方法及工程应用
      吕金虎:混沌时间序列分析及其应用
      刘延柱:非线性振动
个人认为下面定义是比较准确的:

    庞加莱于1881年引入的首次返回映射,是研究闭轨迹即周期运动的稳定性及其分岔的几何方法。它可以将微分方程描述的非线性系统转化为用差分方程描述的映射。

自治系统Poincare映射的计算方法
以Chen系统为例,根据前面给出的庞加莱映射定义,计算其映射。(非个人原创。)
function dx=Chen(t,x);
% Chen方程[不显含时间t的自治系统]
% dx=Chen(t,[x;y;z;a;b;c])
%   t-时间变了,x,y,z-为自变量,a,b,c-为如下方程所示的参数
%   eg: dx=Chen(0,[1;1;1;35;3;28])
%
% 方程如下:
%   dx/dt=a*(y-x)
%   dy/dt=(c-a)*x+c*y-x*z
%   dz/dt=x*y-b*z
%
% Example(函数图象):
%     [T,Y]=ode45('Chen',[0,50],[1;1;1;35;3;28]);
%     plot3(Y(:,1),Y(:,2),Y(:,3));
%
dx(1,1)=x(4)*(x(2)-x(1));
dx(2,1)=(x(6)-x(4))*x(1)+x(6)*x(2)-x(1)*x(3);
dx(3,1)=x(1)*x(2)-x(5)*x(3);
dx(4,1)=0;
dx(5,1)=0;
dx(6,1)=0;


function CHEN_Poincare_section_X
Z=[];
[T,Y]=ode45('Chen',[0,5000],[1;1;1;35;3;28]);
for k=1:length(Y)   
    if abs(Y(k,1))<1e-2  
        Z=[Z Y(k,2)+i*Y(k,3)];
    end
end
plot(Z,'.','markersize',2)
title('Chen 系统的 Poincare 映像 x=0')
xlabel('y'),ylabel('z')

非自治系统Poincare映射的计算方法
以Duffing系统为例,根据前面给出的庞加莱映射定义,计算其映射(非原创)
function dx=duffing(t,X)
global F wd;
r=0.25;
x=X(1);
y=X(2);
psi=X(3);
dx=zeros(3,1);
dx(1)=y;
dx(2)=-r*y+1/2*x*(1-x^2)+F*sin(psi);
dx(3)=wd;

function duffing_poincare
global F wd;
wd=1;
F=0.28;
x0=[0;0.0001;0];
tspan=[0:0.1*2*pi:100000*pi];
[t,y]=ode45('duffing',tspan,x0);
m=[];
n=[];
for i=1000:50000
    m(i,1)=y(10*i,1);
    n(i,1)=y(10*i,2);
end
plot(m,n,'k.','markersize',2);


 楼主| 发表于 2016-7-1 16:13 | 显示全部楼层
vibmaster 发表于 2016-6-30 09:13
Poincare映射(Poincare截面)定义
参考:王树禾:微分方程模型与混沌
      陈 ...

谢谢。这个自治系统的自判断了距离小于1e-2的 没有拟合的。

点评

那把拟合加入进去 可以吗?  详情 回复 发表于 2016-7-5 14:39
 楼主| 发表于 2016-7-1 16:15 | 显示全部楼层
其实我这个截面取的画的线是不对的。从

点评

what???话没说完。。。  详情 回复 发表于 2016-7-1 16:38
发表于 2016-7-1 16:38 | 显示全部楼层
a9303 发表于 2016-7-1 16:15
其实我这个截面取的画的线是不对的。从

what???话没说完。。。
发表于 2016-7-2 20:04 | 显示全部楼层
庞加莱截面我个人理解的就是相图中相轨迹的一个小区域所通过的点数或形状。庞加莱截面是间隔取相轨迹,即间隔(按周期)取计算结果的位移和速度,将其安置在一个矩阵中,然后出位移、速度表示的图即可。
m=[];
n=[];
for i=1:周期划分为几份:n
    m(i,1)=y(10*i,1);
    n(i,1)=y(10*i,2);
end
plot(m,n,'k.','markersize',2);
类似于这样的。实在不行,就到其他的地方找找程序,看一看~加油!

点评

就是提取数据在画图呗 楼主是不是要在这个基础上再加入拟合啊  详情 回复 发表于 2016-7-4 08:56
发表于 2016-7-4 08:56 | 显示全部楼层
我不是小偷 发表于 2016-7-2 20:04
庞加莱截面我个人理解的就是相图中相轨迹的一个小区域所通过的点数或形状。庞加莱截面是间隔取相轨迹,即间 ...

就是提取数据在画图呗  楼主是不是要在这个基础上再加入拟合啊
发表于 2016-7-4 09:38 | 显示全部楼层
sovereign 发表于 2016-7-4 08:56
就是提取数据在画图呗  楼主是不是要在这个基础上再加入拟合啊

我没有进行拟合。

点评

楼主的意思是想拟合一下 那就间隔去点 再拟合 插值也行 就是为了图形好看吗?  详情 回复 发表于 2016-7-4 09:53
发表于 2016-7-4 09:53 | 显示全部楼层

楼主的意思是想拟合一下  那就间隔去点   再拟合  插值也行  就是为了图形好看吗?
 楼主| 发表于 2016-7-4 09:55 | 显示全部楼层
zhangzy 发表于 2016-7-1 16:38
what???话没说完。。。

映射图的坐标对应的取的是平行X轴的截面  也就是红线我画错了 映射图取一边就可以了
 楼主| 发表于 2016-7-4 09:56 | 显示全部楼层
我不是小偷 发表于 2016-7-2 20:04
庞加莱截面我个人理解的就是相图中相轨迹的一个小区域所通过的点数或形状。庞加莱截面是间隔取相轨迹,即间 ...

恩。谢谢。 我的是自治系统
发表于 2016-7-5 14:39 | 显示全部楼层
a9303 发表于 2016-7-1 16:13
谢谢。这个自治系统的自判断了距离小于1e-2的 没有拟合的。

那把拟合加入进去  可以吗?
 楼主| 发表于 2016-7-5 15:42 | 显示全部楼层
vibmaster 发表于 2016-7-5 14:39
那把拟合加入进去  可以吗?

可参考欧阳中华发过的那个程序 理解了修改下就行了

点评

哪个啊???网址贴一下呗 谢谢  详情 回复 发表于 2016-7-5 16:07
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-5 11:33 , Processed in 0.097694 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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