How can I make 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

3 comentarios

José-Luis
José-Luis el 21 de Mayo de 2013
And what does the debugger say? What does "does not work" mean?
Sunghye
Sunghye el 22 de Mayo de 2013
Error using fcnchk (line 103) If FUN is a MATLAB object, it must have an feval method.
Error in dblquad (line 54) intfcn = fcnchk(intfcn);
Error in work03 (line 159) C2_1(i,n)=dblquad(z(i,n),inf,Sast(i-1,n),-inf,Sast(i-1,n))
Walter Roberson
Walter Roberson el 22 de Mayo de 2013
Yes, because sym objects do not have an feval() method.

Iniciar sesión para comentar.

 Respuesta aceptada

Walter Roberson
Walter Roberson el 21 de Mayo de 2013
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.

1 comentario

Sunghye
Sunghye el 22 de Mayo de 2013
Editada: Sunghye el 22 de Mayo de 2013
Thank you, Walter It works!!! However, the answer is NaN(maybe not a NUMBER) What's the NaN mean?
error message is following
Warning: Infinite or Not-a-Number function value encountered. > In quad at 105 In dblquad>innerintegral at 82 In quad at 72 In dblquad at 58 In work03 at 159

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by