loneboard 发表于 2006-6-12 15:00

帮帮忙!poincare截面怎么画

本帖最后由 VibInfo 于 2016-4-26 15:47 编辑

  我有一个作业需要画
dx/dt=2sinx(t)+cosy(t)
dy/dt=sinx(t)+2cosz(t)
dz/dt=siny(t)+cosx(t)
的poincare截面
我不知道怎么画
请哪位高人指导一下小弟?
我如何不在相空间上怎么画这个图 呢?
谢谢了!

欧阳中华 发表于 2006-6-12 16:51

http://forum.vibunion.com/forum/thread-12312-1-1.html

loneboard 发表于 2006-6-14 16:33

回复:(loneboard)帮帮忙!poincare截面怎么画

本帖最后由 VibInfo 于 2016-4-26 15:47 编辑

能否说得仔细些呢?我看了一下,但是没有我想要的信息!谢谢了!

brook123456 发表于 2006-7-7 23:06

每积分一个周期取一个状态点,画出来就是

toes 发表于 2006-7-8 08:38

你先要用数值积分将x y z dx dy dz解出来啊。
选一个变化的参数,哦?你的这个方程没有其他可以变化的参数。
那你直接一个周期取一次x dx,就可以绘制出截面图。
对y dy z dz可以同样处理。

不在相空间怎么画?我不知道。

yxshen 发表于 2006-7-14 16:47

同意楼上,选择一合适的数值积分算法,求得稳定解的n个周期的解,每周期固定位置取一点的x,da/dt.画出这取得的n个点即可。其余类似处理

sczhang 发表于 2006-7-16 18:45

基本同意楼上所说的,你要选一个超平面作为旁卡莱截面,在每个周期中某一条件下取点,比如x+y =5等,或满足一定关系时,取此时的点即可画出。

gghhjj 发表于 2006-8-26 02:23

这个方程是不是给的有问题?

siyanger 发表于 2006-8-27 09:25

A1 =[-0.0203743249659;   0.26158763436375;-0.022284395856;-0.2014178741564;-0.00068457794783;
       -0.00050684379605;   0.28353447917191;-0.72737657128988;   0.00021731980456;   0.00006894057121;
         0.00032983223188;   0.00023902584210;-0.10191507307456;-0.71206352583494;-0.00001185524968;
      -0.00000248878839;-0.00001247184548;-0.00000725465232];
   
A1 =[-0.0203743249659;   0.26158763436375; -0.022284395856;-0.2014178741564;-0.20068457794783;
   -0.00050684379605;   0.28353447917191;-0.72737657128988;   0.00021731980456;   0.00006894057121;
   0.00032983223188;   0.00023902584210;-0.10191507307456;-0.71206352583494;-0.00001185524968;
   -0.00000248878839;-0.00001247184548;-0.00000725465232];
x1= A1(1)*cos(tt)+A1(2)*sin(tt)+A1(3)*cos(2*tt)+A1(4)*sin(2*tt)+A1(5)*cos(3*tt)+A1(6)*sin(3*tt);
dx1= -A1(1)*sin(tt)+A1(2)*cos(tt)-2*A1(3)*sin(2*tt)+2*A1(4)*cos(2*tt)-3*A1(5)*sin(3*tt)+3*A1(6)*cos(3*tt) ;

x2=A1(7)*cos(tt)+A1(8)*sin(tt)+A1(9)*cos(2*tt)+A1(10)*sin(2*tt)+A1(11)*cos(3*tt)+A1(12)*sin(3*tt);
dx2=-A1(7)*sin(tt)+A1(8)*cos(tt)-2*A1(9)*sin(2*tt)+2*A1(10)*cos(2*tt)-3*A1(11)*sin(3*tt)+3*A1(12)*cos(3*tt);

x3=A1(13)*cos(tt)+A1(14)*sin(tt)+A1(15)*cos(2*tt)+A1(16)*sin(2*tt)+A1(17)*cos(3*tt)+A1(18)*sin(3*tt);
dx3=-A1(13)*sin(tt)+A1(14)*cos(tt)-2*A1(15)*sin(2*tt)+2*A1(16)*cos(2*tt)-3*A1(17)*sin(3*tt)+3*A1(18)*cos(3*tt);

我已解出x1,x2,x3及其导数值,怎么用上面的方法画出来的poincare图都是一样的点数呢?即A1的值变了,相图明显是混沌的了,poincare图还是和线性时一样的点数。

meteor1124 发表于 2006-9-13 18:42

我也不是很理解!

gghhjj 发表于 2006-9-14 00:30

你给的这个方程不用计算很显然就是周期性函数,其庞加莱映射当然是1个点了

不知道你的相图怎么会是浑沌?

siyanger 发表于 2006-9-14 08:49

相图是不重合的缠绕曲线。

toes 发表于 2006-9-14 11:39

原帖由 siyanger 于 2006-9-14 08:49 发表
相图是不重合的缠绕曲线。

程序,程序;
代码,代码。

mxtfirst 发表于 2006-9-14 13:28

原帖由 gghhjj 于 2006-8-25 13:23 发表
这个方程是不是给的有问题?

是不是ABC流的方程?好像有问题,第一个方程应该是“sinz(t)”不是“sinx(t)”

ABC流的方程应该是

dx/dt=A*sinz(t)+C*cosy(t)
dy/dt=B*sinx(t)+A*cosz(t)
dz/dt=C*siny(t)+B*cosx(t)

gghhjj 发表于 2006-9-15 01:04

坐相图的时候把步长取小点,大的时候出现你说的现象是由于计算误差造成的

根据你的方程做出来的相图如下
页: [1] 2
查看完整版本: 帮帮忙!poincare截面怎么画