Write a function that estimates a d-dimensional integral to at least 1% relative precision.
Inputs:
Output:
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.
I'm confused by the 3rd test case. Can the integral inside an n-dimensional hypercube really be greater than 1?
In my comment, I mean an n-dimensional UNIT hypercube, which is what you integration limits impose.
Of course. It depends on the integrand. Even in 1d, if the integrand is e.g. 10x, the result will be 5.
I was confused. Thanks for clarifying.
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
Innovative, but a bit risky/lucky: roughly a 20–30% risk of failing the Test Suite, by my estimation [see Solutions 1572717–1572721, and Solution 1572713; cf. Solution 1572418].
Since the Monte-Carlo errors decrease proportionally to 1/sqrt(N), where N is the number of random numbers, you should always be able to choose a large enough N to nearly always pass the tests. This is only limited by the execution-time limit that cody enforces.
just found this "cheat". don't hate! I've reported it to TMW
I adjusted the test suite, thanks for the hint...
1856 Solvers
137 Solvers
463 Solvers
Back to basics 24 - Symbolic variables
112 Solvers
Find third Side of a right triangle given hypotenuse and a side. No * - or other functions allowed
90 Solvers