📄 r4_normal_01.m
字号:
function [ x, seed ] = r4_normal_01 ( seed )%% R4_NORMAL_01 returns a unit pseudonormal R4.%% Discussion:%% The standard normal probability distribution function (PDF) has% mean 0 and standard deviation 1.%% Method:%% The Box-Muller method is used, which is efficient, but% generates two values at a time.%% Modified:%% 17 July 2006%% Author:%% John Burkardt%% Parameters:%% Input, integer SEED, a seed for the random number generator.%% Output, real X, a sample of the standard normal PDF.%% Output, integer SEED, an updated seed for the random number generator.% persistent seed2; persistent used; persistent y; if ( size ( used ) == 0 ) used = 0; seed2 = 0; y = 0; end%% If we've used an even number of values so far, generate two more,% return one and save one.% if ( mod ( used, 2 ) == 0 ) [ r1, seed ] = r4_uniform_01 ( seed ); if ( r1 == 0.0 ) fprintf ( 1, '\n' ); fprintf ( 1, 'R4_NORMAL_01 - Fatal error!\n' ); fprintf ( 1, ' R4_UNIFORM_01 returned a value of 0.\n' ); error ( 'R_NORMAL_01 - Fatal error!\n' ); end seed2 = seed; [ r2, seed2 ] = r4_uniform_01 ( seed2 ); x = sqrt ( -2.0 * log ( r1 ) ) * cos ( 2.0 * pi * r2 ); y = sqrt ( -2.0 * log ( r1 ) ) * sin ( 2.0 * pi * r2 );%% Otherwise, return the second, saved, value, % and the corresponding value of SEED.% else x = y; seed = seed2; end used = used + 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -