junwen529 发表于 2008-11-27 22:00

求助:关于最小数据量法算出的图形的拟合问题

想问一下,这个图如何拟合?这是用最小数据量法做出的图。可以就选择第一段线性区进行拟合嘛?我算了一下如果选择第一段线性区进行拟合的话,lamda_1 =37.5411,感觉很大呀,这样拟合对吗?谢谢高手指点!!!

[ 本帖最后由 无水1324 于 2008-11-28 14:13 编辑 ]

junwen529 发表于 2008-11-27 22:14

怎么没人说话呢?

[ 本帖最后由 无水1324 于 2008-11-28 16:56 编辑 ]

junwen529 发表于 2008-11-27 22:18

各位大虾们,请说说你们的 看法吧?!

无水1324 发表于 2008-11-28 14:12

回复 楼主 junwen529 的帖子

只能是线性的拟合求斜率吗?

junwen529 发表于 2008-11-28 16:14

上面那图就是我用小数据量法作出的图,对它进行最小二乘拟合所得斜率不就是所求的最大le嘛?(我的数据时一些离散的 时间序列),可我不知道如何对上面的图像进行拟合那?也就是说选取那部分来拟合呢?
请无水大侠指导

[ 本帖最后由 junwen529 于 2008-11-28 16:20 编辑 ]

junwen529 发表于 2008-11-28 16:38

下面是我求最大le所用的 程序:
function lambda_1=largest_lyapunov_p3(data,N,m,tau,P,delt_t)
%function lambda_1=largest_lyapunov_exponent(data,N,m,tau,P,delt_t)
d_length=[];
d_content=[];
Y=rreconstitution(data,N,m,tau);
M=N-(m-1)*tau;
idx_j=0;
for j=1:M
    d_min=10000;
    for jj=1:M                                             
      d_s=0;      %寻找相空间中每个点的最近距离点,并记下该点下标
      if abs(j-jj)>P                                    %限制短暂分离
            d_s=sum(abs(Y(j)-Y(jj)));
            if d_s<d_min
                d_min=d_s;
               idx_j=jj;
            end
      end
    end
    if ((M-j)>(M-idx_j));%计算点j的最大演化时间步长i
      max_i=M-idx_j;
    else
      max_i=M-j;
    end
    d_length=;
    for k=1:max_i            %计算点j与其最近邻点在i个离散步后的距离
      d_j_i=0;      
      d_j_i=norm(Y(j+k)-Y(idx_j+k));
      d_content=;
    end
end

%对每个演化时间步长i,求所有的j的lnd(i,j)平均
y=[];
for i=1:max(d_length)
   S_j_i=0;
   sum_former=0;
   Count=0;
   for j=1:M
       if j==1
          former=0;
       else
          former=d_length(j-1);
       end   
       sum_former=sum_former+former;
       if i<=(d_length(j))
         if d_content(sum_former+i)~=0
            S_j_i=S_j_i+log(d_content(sum_former+i));
            Count=Count+1;
         end
       end
   end
   y=; %对每个演化时间步长i,求所有的j平均
end
XX=1:length(y);
figure;
plot(XX,y(XX),'-','markersize',1);hold on;——————————【上面的图是从这儿画出来的】
linear=input('请输入线形部分的长度');
XX1=1:linear;
pp=polyfit(XX1,y(XX1),1);
lambda_1=pp(1)
yp=polyval(pp,XX1);
figure;
plot(XX1,yp,'r--');
—————————————————————————————————————————
data=;
m=12;tau=3;delt_t=0.008;N=length(data);P=63;
lambda_1=largest_lyapunov_p3(data,N,m,tau,P,delt_t)

无水1324 发表于 2008-11-28 16:59

回复 6楼 junwen529 的帖子

最后面的data就是你用的数据吗?
你图上的折线(一般还是比较光滑的曲线) 可能是由于数据量太小导致的,那么此时用这些数据作LE是不准确的,不知道能否再增加一下数据呢?

junwen529 发表于 2008-11-28 17:25

是了,data是我用的数据。
你说是由于数据量小造成那样的图形那?
一般数据量要求至少的多少了哦?
要是在数据量足够的情况下,拟合区又如何来选呢?

wxl789 发表于 2008-11-28 21:45

回复 8楼 junwen529 的帖子

我经常用3000了。
这个好像也没有什么根据,只要能够准确反映你的系统就可以了。

看了你 的程序:delt_t=0.008
这个你应该是从cc方法中得出的 吧,怎么会这么小呢??

junwen529 发表于 2008-11-28 22:04

回复 9楼 wxL789的帖子

delt_t 表示采样的时间间隔,我用的这种采用设备的采样频率很高的,所以delt_t=0.008就很小了。

那你是如何实现拟合求最大le的呢 ?

wxl789 发表于 2008-11-28 22:27

回复 10楼 junwen529 的帖子

你看看《混沌时间序列及其应用》这本书,好像不是从这里来求的,还要再做一步,具体怎么做,我现在没书,忘记了。:loveliness:

junwen529 发表于 2008-11-29 19:51

回复 11楼 wxL789的帖子

我这没你说的那本书了,麻烦你能帮我看看吗?谢了

wxl789 发表于 2008-11-29 22:19

回复 12楼 junwen529 的帖子

呵呵
请无水大哥帮个忙吧。:@)

wxl789 发表于 2008-12-4 15:18

http://forum.vibunion.com/forum/viewthread.php?tid=73692&pid=388259&page=1&extra=page%3D1#pid388259
这里有oct 给出的详细解答。。。

[ 本帖最后由 wxl789 于 2008-12-4 15:24 编辑 ]

junwen529 发表于 2008-12-5 16:45

回复 14楼wxl789 的帖子

谢谢你了,十分感谢!!
页: [1] 2
查看完整版本: 求助:关于最小数据量法算出的图形的拟合问题