Hello, I am fairly new in using Matlab and was wondering if a nested numerical integral was possible. I have seen a number of other questions here where the outer variable of integration appears in the limits of the inner integral but the function being integrated over just depends on one variable. So I was wondering how or if it's possible to do, say:
z = integral( e^(-integral(f(x,y),x,0,1)),y,0,1)
No products are associated with this question.
Rather than trying to do it all in one expression, it's much simpler if you break it up into two parts.
Step 1. Make the inner part a separate function and save it to a file.
function F = innerF(y)
F11 = integral(@(x) exp(x+y) ,0,1); F21 = integral(@(x) exp(x-y) ,0,1); F12 = integral(@(x) sin(x+y) ,0,1); F22 = integral(@(x) cos(x-y) ,0,1);
F = det([F11 F12; F21 F22]);
Step 2. From the command line, call INTEGRAL to do the outer integral
integral(@innerF, 0, 1, 'ArrayValued', true)
The functions 'dbsquad' and 'quad2d' are designed to numerically solve just your kind of problem. The former uses the the kind of fixed integration limits that you have described and the latter allows variable limits. Be sure to read their descriptions carefully so you can define the integrand function properly.