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
Problem Comments
-
7 Comments
I found it helpful to think about the problem as involving d+1 dimensions: the d dimensions of the input variables, and one more dimension for the (scalar) output variable. —DIV
This problem makes no sense. fun = @(x) x(1)*x(2) needs two inputs. You do not provide enough information for a solution.
The best problem.
Solution Comments
Show commentsGroup

Randomness
- 11 Problems
- 19 Finishers
- Given n, create n random numbers such that their standard deviation is also n.
- Generating random matrix with given probability mass function
- Roll the Dice!
- Make a random, non-repeating vector.
- Generate a random matrix A of (1,-1)
- Create a random vector of integers with given sum
- Guess the number I'm thinking of (Part 1)
- Fibonacci Decomposition
- Cryptomath: Addition
- Break it up! Break it up!
- Balanced Ternary Numbers: Easy as |, |-, |o
Problem Recent Solvers112
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!