
  clear all
  close all
 
%
% Input number of random points
%

  N = input('N = ')

%
%  Compute uniformly distributed points and Sobol points.
%

  U = rand(N,2);
  p = sobolset(2,'Skip',1e3,'Leap',1e2);
  S = net(p,N);

%
% Now let's approximate pi by comparing the area of a circle inscribed in a square.  The square has area 1 and is centered at (0.5, 0.5).
%

% Compute distance from (0.5, 0.5)

  r_U = sqrt((U(:,1)-0.5).^2+(U(:,2)-0.5).^2); 
  r_S = sqrt((S(:,1)-0.5).^2+(S(:,2)-0.5).^2);

% Count fraction of points within 1/2 unit of (0.5, 0.5)

  frac_U = sum(r_U <= 0.5) / N; 
  frac_S = sum(r_S <= 0.5) / N;

% Since square has side 1, circle has radius (1/2) and should have area of pi*(1/2)^2
% frac is approximately pi/4 so pi is approximately 4*frac

  mypi_U = 4*frac_U
  mypi_S = 4*frac_S

  error_U = abs(mypi_U - pi)
  error_S = abs(mypi_S - pi)
 


