QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 866|回复: 2
打印 上一主题 下一主题

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

[复制链接]
字体大小: 正常 放大
回帖奖励 1 点体力 回复本帖可获得 1 点体力奖励! 每人限 1 次

413

主题

36

听众

1854

积分

升级  85.4%

  • TA的每日心情
    开心
    2019-9-18 21:55
  • 签到天数: 258 天

    [LV.8]以坛为家I

    社区QQ达人

    群组2015国赛冲刺

    群组2016美赛公益课程

    群组国赛讨论

    群组第三届数模基础实训

    群组Matlab讨论组

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

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    数学中国版主团队!

    413

    主题

    36

    听众

    1854

    积分

    升级  85.4%

  • TA的每日心情
    开心
    2019-9-18 21:55
  • 签到天数: 258 天

    [LV.8]以坛为家I

    社区QQ达人

    群组2015国赛冲刺

    群组2016美赛公益课程

    群组国赛讨论

    群组第三届数模基础实训

    群组Matlab讨论组

    1. function ran = random0(n,m)
    2. %RANDOM0 Generate uniform random numbers in [0,1)
    3. % Function RANDOM0 generates an array of uniform
    4. % random numbers in the range [0,1). The usage
    5. % is:
    6. %
    7. % random0(n)        --Generate an n x n array
    8. % random0(n,m)      --Generate an n x m array
    9. % Define variables:
    10. % ii                --Index variable
    11. % ISEED             --Random number seed (global)
    12. % jj                --Index variable
    13. % m                 --Number of columns
    14. % msg               --Error message
    15. % n                 --Number of rows
    16. % ran               --Output array
    17. % Record of revisions:
    18. % Date Programmer Description of change
    19. % ==== ========== =====================
    20. % 12/16/98 S. J. Chapman Original code
    21. % Declare globl values
    22. global ISEED        % Seed for random number generator
    23. % Check for a legal number of input arguments.
    24. msg = nargchk(1,2,nargin);
    25. error(msg);
    26. % If the m argument is missing, set it to n.
    27. if nargin < 2
    28.     m = n;
    29. end
    30. % Initialize the output array
    31. ran = zeros(n,m);
    32. % Now calculate random values
    33. for ii = 1:n
    34.     for jj = 1:m
    35.         ISEED = mod(8121*ISEED + 28411, 134456 );
    36.         ran(ii,jj) = ISEED / 134456;
    37.     end
    38. end

    数学中国版主团队!
    回复

    使用道具 举报

    413

    主题

    36

    听众

    1854

    积分

    升级  85.4%

  • TA的每日心情
    开心
    2019-9-18 21:55
  • 签到天数: 258 天

    [LV.8]以坛为家I

    社区QQ达人

    群组2015国赛冲刺

    群组2016美赛公益课程

    群组国赛讨论

    群组第三届数模基础实训

    群组Matlab讨论组

    提供附件:

    答案.doc

    77 KB, 下载次数: 0, 下载积分: 体力 -2 点

    答案----详细内容

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-5-21 07:11 , Processed in 0.467638 second(s), 63 queries .

    回顶部