a9303 发表于 2016-6-27 15:00

定义法做poincare图问题

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

我不是小偷 发表于 2016-6-29 17:07

当然啦。庞加莱截面的定义就是取一个极小的区域范围,保证这个区域能够包含所有周期运动穿过这个区域的点。你这个明显是取了两个了。

a9303 发表于 2016-6-29 17:34

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

恩 应该是在一侧取。用的论坛上的程序,修改了下直接坐的。

vibmaster 发表于 2016-6-30 09:13

Poincare映射(Poincare截面)定义
参考:王树禾:微分方程模型与混沌
      陈予恕:非线性动力学中的现代分析方法
      肖达川:线性与非线性电路
      高金锋:非线性电路与混沌
      温邦椿:非线性振动理论中的解析方法及工程应用
      吕金虎:混沌时间序列分析及其应用
      刘延柱:非线性振动
个人认为下面定义是比较准确的:
    庞加莱于1881年引入的首次返回映射,是研究闭轨迹即周期运动的稳定性及其分岔的几何方法。它可以将微分方程描述的非线性系统转化为用差分方程描述的映射。自治系统Poincare映射的计算方法
以Chen系统为例,根据前面给出的庞加莱映射定义,计算其映射。(非个人原创。)
function dx=Chen(t,x);
% Chen方程[不显含时间t的自治系统]
% dx=Chen(t,)
%   t-时间变了,x,y,z-为自变量,a,b,c-为如下方程所示的参数
%   eg: dx=Chen(0,)
%
% 方程如下:
%   dx/dt=a*(y-x)
%   dy/dt=(c-a)*x+c*y-x*z
%   dz/dt=x*y-b*z
%
% Example(函数图象):
%   =ode45('Chen',,);
%   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=[];
=ode45('Chen',,);
for k=1:length(Y)   
    if abs(Y(k,1))<1e-2
      Z=;
    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=;
tspan=;
=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);


a9303 发表于 2016-7-1 16:13

vibmaster 发表于 2016-6-30 09:13
Poincare映射(Poincare截面)定义
参考:王树禾:微分方程模型与混沌
      陈 ...

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

a9303 发表于 2016-7-1 16:15

其实我这个截面取的画的线是不对的。从

zhangzy 发表于 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);
类似于这样的。实在不行,就到其他的地方找找程序,看一看~加油!

sovereign 发表于 2016-7-4 08:56

我不是小偷 发表于 2016-7-2 20:04
庞加莱截面我个人理解的就是相图中相轨迹的一个小区域所通过的点数或形状。庞加莱截面是间隔取相轨迹,即间 ...

就是提取数据在画图呗楼主是不是要在这个基础上再加入拟合啊

我不是小偷 发表于 2016-7-4 09:38

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

我没有进行拟合。

sovereign 发表于 2016-7-4 09:53

我不是小偷 发表于 2016-7-4 09:38
我没有进行拟合。

楼主的意思是想拟合一下那就间隔去点   再拟合插值也行就是为了图形好看吗?

a9303 发表于 2016-7-4 09:55

zhangzy 发表于 2016-7-1 16:38
what???话没说完。。。

映射图的坐标对应的取的是平行X轴的截面也就是红线我画错了 映射图取一边就可以了

a9303 发表于 2016-7-4 09:56

我不是小偷 发表于 2016-7-2 20:04
庞加莱截面我个人理解的就是相图中相轨迹的一个小区域所通过的点数或形状。庞加莱截面是间隔取相轨迹,即间 ...

恩。谢谢。 我的是自治系统

vibmaster 发表于 2016-7-5 14:39

a9303 发表于 2016-7-1 16:13
谢谢。这个自治系统的自判断了距离小于1e-2的 没有拟合的。

那把拟合加入进去可以吗?

a9303 发表于 2016-7-5 15:42

vibmaster 发表于 2016-7-5 14:39
那把拟合加入进去可以吗?

可参考欧阳中华发过的那个程序 理解了修改下就行了
页: [1] 2
查看完整版本: 定义法做poincare图问题