MATLAB: How to make double integration

double integration

syms x;
syms r;
for n=1:10
for i=2:t
f1(i,n) = h * (Sast(i-1,n) + r* Y(i,n) - x) * 1 / (v(i,n)^(1/2) * sig(n) * (2 * pi)^(1/2)) * exp((-(x-m(i,n))^2) / (2 * v(i,n) * sig(n)^2)) * unifpdf(r,A(fv),B(fv));
f2(i,n) = -p * (Sast(i-1,n) + r * Y(i,n) - x) * 1 / (v(i,n)^(1/2) * sig(n) * (2 * pi)^(1/2)) * exp((-(x-m(i,n))^2) / (2 * v(i,n) * sig(n)^2)) * unifpdf(r,A(fv),B(fv));
z(i,n)=f1(i,n)+f2(i,n)
C2_1(i,n)=dblquad(z(i,n),inf,Sast(i-1,n),-inf,Sast(i-1,n))
%C2_1(i,n) = int(int(f1(i,n), x, inf, Sast(i-1,n) + r(i,n,fv)*Y(i,n)), y, inf, Sast(i-1,n) + r(i,n,fv)*Y(i,n)) + int(int(f2(i,n), x, Sast(i-1,n) + r(i,n,fv)*Y(i,n), -inf), y, inf, -inf);
%C2_1(i,n) = dblquad(f1(i,n), inf, Sast(i-1,n) + r(i,n,fv)*Y(i,n), inf, Sast(i-1,n) + r(i,n,fv)*Y(i,n)) + dblquad(f2(i,n), Sast(i-1,n) + r(i,n,fv)*Y(i,n), -inf, Sast(i-1,n) + r(i,n,fv)*Y(i,n), -inf);
end
end
I made lots of code..but can't sure why it's not work

Best Answer

You are creating f1 and f2 as symbolic expressions, but you are attempting ot use dblquad() to do the integration. dblquad() takes a function handle, not a symbolic expression. Try
C2_1(i,n)=dblquad(matlabFunction(z(i,n)),inf,Sast(i-1,n),-inf,Sast(i-1,n))
Are you sure you want to go from +infinity downward to Sast(i-1,n) for the first variable? You go from -infinity upward to Sast(i-1,n) for the second variable.