www.gusucode.com > EasyKrig_V3.0工具箱matlab源码程序 > EasyKrig_V3.0/visualization/pdf_func.m
function [x,pdf,Qj,fQ]=pdf_func(opt,n) %% function [x,pdf,Qj,fQ]=pdf_func(opt,n) computes the PDF based on the parameter opt %% INPUT: %% opt = task option %% 1 -- Q-1 cross-validation %% 2 -- Q-2 cross validation %% n = number of opints in PDF output %% OUPUT: %% x, pdf - variable and its PDF %% Qj, fQ - x values corresponding to 0.0275 and 0.0975 of the %% probability function int_(-inf)^(x) PDF(t) dt %% %% Kriging Software Package version 3.0, May 1, 2004 %% Copyright (c) 1999, 2001, 2004, property of Dezhang Chu and Woods Hole Oceanographic %% Institution. All Rights Reserved. switch opt case 1 % Q-1 model (Gaussian) m=50; xb=5/sqrt(n); % 5 times standard deviation x=linspace(-xb,xb,m); pdf=exp(-0.5*n*x.^2)*sqrt(0.5*n/pi); Qj=2/sqrt(n); fQ=exp(-2)*sqrt(0.5*n/pi); case 2 % Q-2 model (kappa 2) m=800; xb=max(2,10/sqrt(n)); % > 10 times standard deviation x=linspace(0,xb,m); dx=x(2)-x(1); if n < 100 % chi-square with n degree of freedom pdf=(0.5*n)^(n/2)*exp(-n*x/2).*x.^(n/2-1)/(gamma(n/2)); else % Gaussian with mean = 1, and std = 2/sqrt(n) pdf=exp(-0.25*n*(x-1).^2)*sqrt(0.25*n/pi); end S=cumsum(pdf)*dx; ft=[0.025 0.975]; [var indx1]=min(abs(S-ft(1))); [var indx2]=min(abs(S-ft(2))); Qj(1)=x(indx1); Qj(2)=x(indx2); fQ=pdf([indx1 indx2]); end