森之张卫东 发表于 2015-9-17 22:52

用全局内存分享数据---例题

用全局内存分享数据---例题随机数发生器对真实世界进行精确度量是十分重要的。对于每一个测量值来说,都有一定的测量噪声(误差)。对于系统的设计来说,这个情况必须要重要考虑,例如,真实世界中机械装置(飞机等)的运转。好的工程设计必须把他的测量误差控制在一定的范围之内,不能因误差导致系统的不稳定。在系统建立之前,许多的工程设计的检测是通过系统操作的模拟(simulation)来完成的。模拟包括系统动作的数学模型和符合这个模型的输入数据。如果这个模型对模拟输入数据反应正确,那么我们就能合理的证明,真实世界中的系统对真实世界中输入值有正确的反应。提供给数学模型的模拟输入数据必须带有模拟测量噪声。模拟测量噪声是指加入理想输入值中的一系列随机数。模拟噪声一般由随机数发生器产生。随机数发生器是一个函数,当它每一次被调用时,将会返回一个不同的随机出现的数。事实上,这些数是由一个确定性算法产生的,它们只是表现为随机。但是,如果产生它们的算法足够复杂,那么应用于模拟中的这些数就足够地随机。下面是一个简单随机数发生器的算法。它是利用大数求余的不可预知性。考虑下面的等式。ni+1 = mod(8121ni +28411, 134456)                  (5.6)假设ni为非负整数,那么由于求余函数的关系,ni+1只能在0到13445之间的整数中进行取值。重复以上过程,得到的结果永远是在区间中。如果我们事先不知道8121,28411和134456这三个数你很可能猜测这个顺序是由n值产生的。进一步说,它说明,所有在0到13445之间的整数出现的次序是等可能性。由于这些属性,等式(5.6)可以当一个简单的随机数发生器的基础。现在我们用公式(5.6)设计一个随机数发生器,它的输出是一个实数,其取值范围这。
答案见附件:
先附上程序:(见回复)

森之张卫东 发表于 2015-9-17 22:53

function ran = random0(n,m)
%RANDOM0 Generate uniform random numbers in [0,1)
% Function RANDOM0 generates an array of uniform
% random numbers in the range [0,1). The usage
% is:
%
% random0(n)        --Generate an n x n array
% random0(n,m)      --Generate an n x m array
% Define variables:
% ii                --Index variable
% ISEED             --Random number seed (global)
% jj                --Index variable
% m                 --Number of columns
% msg               --Error message
% n                 --Number of rows
% ran               --Output array
% Record of revisions:
% Date Programmer Description of change
% ==== ========== =====================
% 12/16/98 S. J. Chapman Original code
% Declare globl values
global ISEED        % Seed for random number generator
% Check for a legal number of input arguments.
msg = nargchk(1,2,nargin);
error(msg);
% If the m argument is missing, set it to n.
if nargin < 2
    m = n;
end
% Initialize the output array
ran = zeros(n,m);
% Now calculate random values
for ii = 1:n
    for jj = 1:m
        ISEED = mod(8121*ISEED + 28411, 134456 );
        ran(ii,jj) = ISEED / 134456;
    end
end

森之张卫东 发表于 2015-9-17 22:53

提供附件:
页: [1]
查看完整版本: 用全局内存分享数据---例题