zoukankan      html  css  js  c++  java
  • 蒙特卡洛法MATLAB

    %%unifrnd函数的使用
    %unifrnd函数可以创建随机的连续均匀分布的数组,一般式为R=unifrnd(A,B);
    %A和B是标量或者相同维数的行向量或者列向量。R=unifrnd(A,B,[m,n])表示生成m*n的
    %矩阵,他们的数值在A,B之间,看下面例子
    %例1 若A,B都是标量
    R=unifrnd(3,4);%运行结果为3到4之间的一个随机数
    %例2 若A是标量,B是一维行向量
    R=unifrnd(3,[1,2,3,4,5,6,7]);%运行结果为:
    % R=  NaN       NaN    3.0000    3.4868    3.1809    5.1349    5.0288
    %其中NaN表示not a number ,这时候在区间[3,1],[3,2],[3,3],[3,4],[3,5],[3,6]
    %[3,7]分别单独生成一个随机数
    %例3 若A,B,都是同维行向量
    R=unifrnd([1,3,6],[2,5,7]);%运行结果为ans= 1.6327    3.3636    6.0785
    %结果是在区间[1,2],[3,5],[6,7]各生成一个随机数,这也是A,B要同维数原因
    %再来说说R=unifrnd(A,B,n)和R=ubifrnd(A,B,[n,m]),在此讨论A,和B是常量的情况
    R=unifrnd(1,3,4);%运行结果如下
    % R=
    %    1.0925    1.8573    1.4108    2.6969
    %    2.9364    1.7689    2.5001    1.6632
    %    2.5966    2.0255    2.3338    2.0363
    %    2.4108    1.3090    2.2723    1.6110
    %上面生成的是数值在区间[1,3]的4*4方阵,即R=unifrnd(A,B,n)生成的是一个数值在
    %区间[A,B]之间的n*n的随机矩阵
    R=unifrnd(1,3,[2,3]);%运行结果是
    % R=
    %   1.5391    1.7028    1.3373
    %   1.7263    2.5547    2.1727
    %上面生成的是数值在区间[1,3]之间的2*3的数字随机矩阵。即R=unifrnd(A,B,[m,n])
    %生成的是数值在区间[A,B]的随机矩阵
    %%
    %看以下实际题目:用MATLAB计算y=x^3,y=12-x与x轴围成的面积
    %用随机试验的方法来做,在矩形区域[0,12]*[0,9]上产生10^7个随机点,统计这些点落在
    %曲边三角形中的频数,则可以计算出曲边三角形面积
    x=unifrnd(0,12,[1,10000000]);
    y=unifrnd(0,9,[1,10000000]);
    pinshu_=sum((y<x.^2&x<3)|(y<12-x&x>3));
    area=12*9*pinshu_/10000000;
    %得到的结果 area=49.5036
    

      

  • 相关阅读:
    深度学习训练模型时保存Log输出信息为文件
    Docker 测试场景领域应用剖析
    kafka性能测试
    [标点符] 初学机器学习算法之LightGBM (直方图+单边梯度采样优化+互斥特征绑定优化)
    【12月DW打卡】joyful-pandas
    【12月DW打卡】joyful-pandas
    【12月DW打卡】joyful-pandas
    【12月DW打卡】joyful-pandas
    【12月DW打卡】joyful-pandas
    Linux安装Redis
  • 原文地址:https://www.cnblogs.com/td15980891505/p/5433237.html
Copyright © 2011-2022 走看看