e181.m

来自「matlab算法集 matlab算法集」· M 代码 · 共 36 行

M
36
字号
%-----------------------------------------------------------------------
% Example 1.8.1: Estimating PI by Throwing Darts 
%-----------------------------------------------------------------------

% Initialize 

   clc                  % clear command window
   clear                % clear variables
   n    = 1000;         % number of darts
   p    = 0;            % number of darts inside unit circle
   seed = 1000;         % select random sequence
   e    = zeros(n,1);   % errors in estimate
   s    = 3;            % size of square mat

% Generate estimate with random numbers

   fprintf ('Example 1.8.1: Estimating PI by Throwing Darts\n');
   randinit(seed);
   for i = 1 : n
      z = randu (2,1,-s/2,s/2);
      r = norm(z,2);
      if r <= 1
         p = p + 1;
      end
      q = s^2*p/i;
      e(i) = q - pi;
   end

% Display results

   show ('Number of darts',n)
   show ('Final estimate of PI',q)
   graphmat (e,'Error in Estimate of PI','number of darts',...
             'error')
%-----------------------------------------------------------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?