Matlab - Resolver una integral triple

 
Vista:
sin imagen de perfil

Resolver una integral triple

Publicado por Irene (3 intervenciones) el 31/08/2017 19:58:28
Buenas tardes a todos. Me gustaría resolver una integral triple. Para ello, he definido la función:

1
2
3
4
5
6
7
8
9
10
11
function integrando= funcion(x,y,z)
syms x y z
global gv MB0 kappa Til hbarra Lc sigma mc mv cteB T Vds b SF SE fB fT e
 
b=gv*e*MB0*MB0*exp(-2*kappa*Til)/(4*pi^3*hbarra); %C·eV^2/eV·s
SF=pi*Lc*Lc./(1+(2*mv*x^2/hbarra^2+2*mc*y^2/hbarra^2-4*sqrt(mc*mv)*x*y*cos(z))*Lc*Lc).^(3/2); %m^2
SE=exp((x-y)^2/(sigma^2))/(sqrt(pi*sigma)); %1/eV
fB=1./(exp(x/(cteB*T))+1); %Sin unidades
fT=1./(exp((x-Vds)/(cteB*T))+1); %Sin unidades
 
integrando=b*SF*SE*(fB-fT);

y a continuación hago:

1
2
3
for i=1:17
   sol(i)=integral3(@funcion,Ect(i),inf,-inf,Evb(i),0,2*pi);
end

donde Ect y Evb es un vector que tengo definido anteriormente.

Me da el siguiente error y no sé qué estoy haciendo mal:

Error using funcion
Too many input arguments.

Error in integral3>@(y,z)FUN(x(1)*ones(size(z)),y,z) (line 138)
@(y,z)FUN(x(1)*ones(size(z)),y,z), ...


Muchas gracias por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Lindsey
Val: 419
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Resolver una integral triple

Publicado por Lindsey (119 intervenciones) el 02/09/2017 21:19:01
¡Hola!
Intenta quitar el syms x y z de la línea 2 de tu función, de tal modo que que cuando hagas la siguiente instrucción, el resultando "integrando" sea un número.
1
integrando=funcion(numero1,numero2,numero3)
Me parece que con eso ya debería servir tu for.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar