function ranlib_test_gennch ( phrase ) %*****************************************************************************80 % %% RANLIB_TEST_GENNCH tests GENNCH, which generates noncentral Chi-Square deviates. % % Licensing: % % This code is distributed under the GNU LGPL license. % % Modified: % % 01 April 2013 % % Author: % % John Burkardt % n = 1000; fprintf ( 1, '\n' ); fprintf ( 1, 'RANLIB_TEST_GENNCH\n' ); fprintf ( 1, ' Test GENNCH,\n' ); fprintf ( 1, ' which generates noncentral Chi-square deviates.\n' ); % % Initialize the generators. % initialize ( ); % % Set the seeds based on the phrase. % [ seed1, seed2 ] = phrtsd ( phrase ); % % Initialize all generators. % set_initial_seed ( seed1, seed2 ); % % Select the parameters at random within a given range. % low = 2.0; high = 10.0; df = genunf ( low, high ); low = 0.0; high = 2.0; xnonc = genunf ( low, high ); fprintf ( 1, '\n' ); fprintf ( 1, ' N = %d\n', n ); fprintf ( 1, '\n' ); fprintf ( 1, ' Parameters:\n' ); fprintf ( 1, '\n' ); fprintf ( 1, ' DF = %g\n', df ); fprintf ( 1, ' XNONC = %g\n', xnonc ); % % Generate N samples. % for i = 1 : n array(i) = gennch ( df, xnonc ); end % % Compute statistics on the samples. % [ av, var, xmin, xmax ] = stats ( array, n ); % % Request expected value of statistics for this distribution. % pdf = 'nch'; param(1) = df; param(2) = xnonc; [ avtr, vartr ] = trstat ( pdf, param ); fprintf ( 1, '\n' ); fprintf ( 1, ' Sample data range: %14.6g %14.6g\n', xmin, xmax ); fprintf ( 1, ' Sample mean, variance: %14.6g %14.6g\n', av, var ); fprintf ( 1, ' Distribution mean, variance %14.6g %14.6g\n', avtr, vartr ); return end