Modifikovaná metoda 2 minima function [X,E,ts,kv,ph,pocet,mi_n,sig_n]=test_normality(Y,k,alfa); % funkce pro testovani normality chi-kvadrat testem % mi a sigma nezname, % odhadujeme je modifikovanou metodou chi-kvadrat minima % vstupni parametry: Y ... simulovany testovany vektor z N(mi,sigma^2) % k ... pocet tridicich intervalu % alfa ... hladina vyznamnosti testu % vystupni parametry: X ... vektor empirickych cetnosti % E ... vektor teoretickych cetnosti % ts ... testova statistika % kv ... (1-alfa) kvantil Pearsonova rozlozeni % s poctem stupnu volnosti k-3 % ph ... p-hodnota pro tento test % pocet ... pocet iteraci % mi_n ... odhadnuta stredni hodnota % sig_n ... odhadnuta smerodatna odchylka % syntaxe: [X,E,ts,kv,ph,pocet,mi_n,sig_n]=test_normality(Y,k,alfa); epsilon=10^(-9); Y=sort(Y); n=length(Y); mi=mean(Y); sig=std(Y); b(1)=mi-6*sig; b(k+1)=mi+6*sig; b(2)=norminv(5/n+normcdf(b(1),mi,sig),mi,sig); b(k)=norminv(normcdf(b(k+1),mi,sig)-5/n,mi,sig); step=(b(k)-b(2))/(k-2); b=[b(1) b(2):step:b(k) b(k+1)]'; c=[b(2)-step/2:step:b(k)+step/2]'; X=hist(Y,c); X=X'; mi_s=X'*c/n; mi_vs=mi_s-2*epsilon; sig_s=sqrt(X'*(c.*c)/n-mi_s^2); sig_vs=sig_s-2*epsilon; pocet=1; while (abs(mi_s-mi_vs)>epsilon)&(abs(sig_s-sig_vs)>epsilon), for i=1:k p(i)=normcdf(b(i+1),mi_s,sig_s)-normcdf(b(i),mi_s,sig_s); int1(i)=mi_s*p(i)+sig_s^2*(normpdf(b(i),mi_s,sig_s)-... normpdf(b(i+1),mi_s,sig_s)); int2(i)=sig_s^2*(p(i)+(b(i)-mi_s)*normpdf(b(i),mi_s,sig_s)-... (b(i+1)-mi_s)*normpdf(b(i+1),mi_s,sig_s)); end; [a1,a2]=size(p); if (a1