论坛风格切换切换到宽版
  • 3568阅读
  • 0回复

[混沌研究]监测人关于混沌时间序列讲座(1):互信息法求延迟时间 [复制链接]

上一主题 下一主题
在线wbsky6
 

发帖
1975
监测币
50810
威望
17420
贡献值
42
金币
1934
只看楼主 倒序阅读 使用道具 0楼 发表于: 2011-04-28
— 本帖被 wbsky6 执行取消置顶操作(2011-04-28) —
监测人关于混沌时间序列讲座(1):互信息法求延迟时间
现目前大坝安全监测数据主要是通过建立传统监测数学模型进行分析的,即:统计模型、确定性模型和混合模型。传统监测模型的共同特点是将影响变形的因素归纳为水压、温度和时效三类因子,通过预置适当的因子集,结合实测变形数据,采用统计回归方法,获得监测数学模型。
传统的大坝安全监测模型的实质上是将复杂的非线性问题,通过适当的简化进行线性化处理,因而其本质上仍然是广义的线性回归模型,难以真实反映混凝土坝系统中的非线性特性,在用于混凝土坝的实际安全监控时,其预报效果、特别是外延预报效果常常不理想。即使对模型中的预置因子、求解方法等方面进行改进,仍然无法从根本上改善模型的监控效果。
因此,迫切需要寻找一种可靠并且行之有效的方法,建立新的大坝监测模型来处理数据并揭示其测值的变化规律。监测人网站团队成员一直致力于大坝安全监测非线性模型研究,深入分析大坝安全监测模型的非线性因素,试图引入一种新的且非常实用非线性监测模型进行大坝安全监测资料分析。
现代非线性科学的发展,为研究混凝土坝系统中的非线性动力问题提供了理论基础和技术支持;特别是非线性科学中的混沌理论(Chaos Theory)、突变理论等现代数学,为建立大坝安全监控模型提供了新的研究思路。监测人网站团队通过近一年多的对大坝安全监测混沌时间序列模型的研究,获得一定成果。由于混沌时间序列已经在早几年就被成功引入到了大坝安全监测领域,其中武汉大学和河海大学对此混沌的研究成果较多。现监测人网站利用我站团队自己研究的成果,同时结合各高校的研究成果,举行关于混沌时间序列大坝安全监测模型的普及讲座,使得大家都知道和了解混沌在大坝安全监测领域的应用情况。下面首先进行混沌理论的基础知识的相关介绍。
1、混沌理论
混沌理论是一门新兴的非线性学科,是对确定性非线性动力系统中的不稳定非周期性行为的定性研究。即为在没有变量的情况下,系统运动是一项有规律的重复行为,通过研究认识这一系统状态,非周期性行为就变成了可以观察的对象。
简而言之,混沌是一种非周期性的动力学过程,它无处不在且蕴含着有序,有序的过程也可能出现混沌,它是服从确定性规律但具有随机性的运动。
2、互信息法求延迟时间
上面简要介绍混沌理论的基础知识,下面来具体介绍一下关于互信息求混沌时间序列延迟时间的知识。
在进行重构相空间时,延迟时间和嵌入维数的选取具有十分重要的意义,同时这两个参数确定也是难点。相关基础理论知识,监测人网站此次讲座就不在此一一细细讲解,具体可以查看吕金虎编写的《混沌时间序列分析及其应用》,里面有较为详细的介绍。
计算延迟时间的方法主要有自相关函数法、复自相关法、互信息法,其中互信息法是估计重构相空间时间延迟的一种有效方法,得到了广泛的应用。因此,本次讲座主要讲述关于互信息法求延迟时间的相关知识。
同样本文对于具体理论基础知识也不再细细讲述,本次讲座主要是讲述利用互信息进行延迟时间的计算。由于我国虽然对混沌时间序列模型有一定研究成果,但很多具体计算方法和计算程序仅在各个高校课题研究组内部存在,具体计算方法在中文相关文献中较为模型,且无具体实际的算列,因此,国内大部分研究学者存在了解混沌理论概况,但在具体实现方法又存在有难题。现监测人网站根据近一年来的研究成果,对此种状态进行简要的解述,同时监测人网站团队在此感谢某论坛上发布此开源混沌程序的作者(此作者将毕业设计的程序奉献出来了),我团队在此提供的成果上进行的研究。
具体计算方法为:(matlab源码)
function[tau,I_sq]=mutual_information(data,tau_max,n)
I_sq=zeros(tau_max,1);
N=length(data);  
fortau=1:tau_max
    s=data(1:N-tau);q=data(tau+1:N);  
    as=min(s);bq=min(q);    delts=(max(s)-as)/n;deltq=(max(q)-bq)/n;
    N_sq=zeros(n);
    forii=1:n        
        forjj=1:n
            fork=1:N-tau
                as_k=(s(k)-as)/delts; bq_k=(q(k)-bq)/deltq;
                ifas_k>=ii-1&as_k<ii&bq_k>=jj-1&bq_k<jj                  
                       N_sq(ii,jj)=N_sq(ii,jj)+1;  
                end
            end
        end
    end
    Ntotal=sum(sum(N_sq));
    Ps=sum(N_sq)/Ntotal;   %&frac14;ÆËãλÓÚһάs¸ñ×ÓÄڵĸÅÂÊ
    Pq=sum(N_sq')/Ntotal;  %&frac14;ÆËãλÓÚһάq¸ñ×ÓÄڵĸÅÂÊ
    Psq=N_sq/Ntotal;       %&frac14;ÆËãλÓÚ¶þά¸ñ×Ó(ii,jj)ÄÚ¸ÅÂÊ
    H_s=0; %&frac14;ÆËãsµÄìØ
    H_q=0; %&frac14;ÆËãqµÄìØ
    fori=1:n
        ifPs(i)~=0
            H_s=H_s-Ps(i)*log(Ps(i));
        elseifPq(i)~=0
            H_q=H_q-Pq(i)*log(Pq(i));
        end
    end
    
    H_sq=0;  %&frac14;ÆËã(s,q)µÄÁªºÏìØ
    fori=1:n
        forj=1:n
            ifPsq(i,j)~=0
                H_sq=H_sq-Psq(i,j)*log(Psq(i,j));
            end
        end
    end
                
    I_sq(tau)=H_s+H_q-H_sq;         %&frac14;ÆËãtauϵĻ¥ÐÅÏ¢º¯Êý
    clear sq;     %Çå¿Õ±äÁ¿sºÍq
end
fori=2:length(I_sq)-1
    ifI_sq(i)<I_sq(i-1)&I_sq(i)<I_sq(i+1)
        tau=i;
        break;
    end
end
plot(1:40,I_sq(1:40),'.-')
xlabel('Lag');
title('»¥ÐÅÏ¢·¨ÇóʱÑÓ');
此互信息法计算程序经过监测人网站团队进行多次验证和改进,其计算成果基本正确,但是还有存在有部分问题,欢迎相关学者批评和指正。
本次讲座的主要成果为此互信息法计算程序,大家可以仔细研究一下,如果能成果理解本程序,那就说明你对互信息法求延迟时间的相关理论知识的认识较为透彻了,本次讲座完成。
以上仅为监测人网站关于混沌时间序列中计算延迟时间的一点简单,本讲座为监测人网站原创,转载请注明出处。
监测人http://jianceren.cn 专业监测资源共享网站
原文出处:http://jianceren.cn/dam/tech/2011/0428/6752.html

[ 此帖被wbsky6在2011-04-28 13:49重新编辑 ]
快速回复
限100 字节
 
上一个 下一个