分形参数计算程序分享.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分形参数计算程序分享计算hurst指数 CODE: function [logRS,logERS,V]=RSana(x,n,method,q) % 用 R/S 方法分析间序列 % logRS 是 log(R/S). % logERS 是 log(R/S)期望. % V 是统计量. % x 是时间序列. % n 是这个数列的子集. % method 可以取下列值 %??Hurst 为了Hurst-Mandelbrot变量 %??Lo 是Lo变量. %??MW 是Moody-Wu变量. %??Parzen 是Parzen变量. % q 可以是任意值 %??a 是非0整数. %??auto 是 Lo的默认值. if nargin1 | isempty(x)==1 ? ?error(你应该给出一个时间序列.); else ? ?% x 必须是变量 ? ?if min(size(x))1 ? ?? ?error(时间序列无效.); ? ?end ? ?x=x(:); ? ?% N 是时间序列的长度 ? ?N=length(x); end if nargin2 | isempty(n)==1 ? ?n=1; else ? ?% n 必须是一个变化的标量或矢量 ? ?if min(size(n))1 ? ?? ?error(n 必须是一个变化的标量或矢量.); ? ?end ? ?% n 必须是个整数 ? ?if n-round(n)~=0 ? ?? ? error(n 必须是个整数.); ? ?end ? ?% n 必须是确定 ? ?if n=0 ? ?? ?error(n 必须是确定.); ? ?end end if nargin4 | isempty(q)==1 ? ?q=0; else ? ? if q==auto ? ?? ???t=autocorr(x,1); ? ?? ???t=t(2); ? ?? ???q=((3*N/2)^(1/3))*(2*t/(1-t^2))^(2/3); ? ? else ? ?? ???% q 必须是标量 ? ?? ???if sum(size(q))2 ? ?? ?? ?? ?error(q 必须是标量.); ? ?? ???end ? ?? ???% q 必须是整数 ? ?? ???if q-round(q)~=0 ? ?? ?? ?? ?error(q 必须是整数.); ? ?? ???end ? ?? ???% q 必须是确定 ? ?? ???if q0 ? ?? ?? ?? ?error(q 必须是确定.); ? ?? ???end ? ? end end for i=1:length(n) ? ? ? ? % 计算这个子序列 ? ? a=floor(N/n(i)); ? ? ? ? % 仓健这个子序列的矩阵 ? ? X=reshape(x(1:a*n(i)),n(i),a); ? ? ? ? % 估算这个子序列的平均值 ? ? ave=mean(X); ? ? ? ? % 给这个序列的每一个值除以平均值 ? ? cumdev=X-ones(n(i),1)*ave; ? ? ? ? % 估算累计离差 ? ? cumdev=cumsum(cumdev); ? ? ? ? % 估算这个标准偏差 ? ? switch method ? ? case Hurst ? ?? ???% Hurst-Mandelbrot 参数 ? ?? ???stdev=std(X); ? ? case Lo ? ?? ???% Lo 参数 ? ?? ???for j=1:a ? ?? ?? ?? ?sq=0; ? ?? ?? ?? ?for k=0:q ? ?? ?? ?? ?? ? v(k+1)=sum(X(k+1:n(i),j)*X(1:n(i)-k,j))/(n(i)-1); ? ?? ?? ?? ?? ? if k0 ? ?? ?? ?? ?? ?? ???sq=sq+(1-k/(q+1))*v(k+1); ? ?? ?? ?? ?? ? end ? ?? ?? ?? ?end ? ?? ?? ?? ?stdev(j)=sqrt(v(1)+2*sq); ? ?? ???end ? ? case MW ? ?? ???% Moody-Wu 参数 ? ?? ???for j=1:a ? ?? ?? ?? ?sq1=0; ? ?? ?? ?? ?sq2=0; ? ?? ?? ?? ?for k=0:q ? ?? ?? ?? ?? ? v(k+1)=sum(X(k+1:n(i),j)*X(1:n(i)-k,j))/(n(i)-1); ? ?? ?? ?? ?? ? if k0 ? ?? ??

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档