⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prob_kuiper.pro

📁 basic median filter simulation
💻 PRO
字号:
pro prob_kuiper, D, N_eff, probks;+; NAME:;       PROB_KUIPER; PURPOSE:;       Return the significance of the Kuiper statistic; EXPLANATION:;       Returns the significance level of an observed value of the;       Kuiper statistic D for an effective number of data points;       N_eff.   Called by KUIPERONE;; CALLING SEQUENCE:;       prob_kuiper, D, N_eff, probks;; INPUT PARAMATERS:;       D -  Kuiper statistic, floating scalar, always non-negative;       N_eff - Effective number of data points, scalar.   For a 2 sided test;               this is given by (N1*N2)/(N1+N2) where N1 and N2 are the number;               of points in each data set.;; OUTPUT PARAMETERS:;       probks - floating scalar between 0 and 1 giving the significance level of;               the Kuiper statistic.   Small values of PROB suggest that the;               distribution being tested are not the same;; REVISION HISTORY:;       Written     W. Landsman                August, 1992;       Corrected typo (termbv for termbf)    H. Ebeling/W.Landsman  March 1996;       Probably did not affect numeric result, but iteration went longer;       than necessary;       Converted to IDL V5.0   W. Landsman   September 1997;       Adapted from PROB_KS    J. Ballet     July 2003;- On_error,2 if N_params() LT 3 then begin     print,'Syntax - prob_kuiper, D, N_eff, prob'     print,'  D - Kuiper statistic, input'     print,'  N_eff - effective number of data points, input'     print,'  prob - Significance level of D, output'     return endif eps1 = 0.001    ;Stop if current term less than EPS1 times previous term eps2 = 1.e-8    ;Stop if current term changes output by factor less than EPS2 en = sqrt( N_eff ) lambda = (en + 0.155 + 0.24/en)*D; No iteration if lambda is smaller than 0.4 if lambda le 0.4 then begin 	probks = 1.0 	return endif a2 = -2.*lambda^2 probks = 0. termbf = 0. for j = 1,100 do begin     a2j2 = a2 * j^2     term = 2 * (-2*a2j2-1) * exp(a2j2)     probks = probks + term     if ( abs(term) LE eps1*termbf ) or $        ( abs(term) LE eps2*probks ) then return     termbf = abs(term) endfor probks = 1.          ;Sum did not converge after 100 iterations return end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -