Problem 179. Monte-Carlo integration

Write a function that estimates a d-dimensional integral to at least 1% relative precision.

Inputs:

  • d: positive integer. The dimension of the integral.
  • fun: function handle. The function accepts a row-vector of length d as an argument and returns a real scalar as a result.

Output:

  • I: is the integral over fun from 0 to 1 in each direction.
     1     1        1            
     /     /        /           
 I = |dx_1 |dx_2 ...| dx_d  fun([x_1,x_2,...,x_d])
     /     /        /            
     0     0        0            

Example:

fun = @(x) x(1)*x(2)
d = 2

The result should be 0.25. An output I=0.2501 would be acceptable, because the relative deviation would be abs(0.25-0.2501)/0.25 which is smaller than 1%.

The functions in the test-suite are all positive and generally 'well behaved', i.e. not fluctuating too much. Some of the tests hav a relatively large d.

Solution Stats

19.72% Correct | 80.28% Incorrect
Last Solution submitted on Mar 13, 2024

Problem Comments

Solution Comments

Show comments

Problem Recent Solvers86

Suggested Problems

More from this Author7

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!