I need help to execute a triple integral
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Jose Miguel Araya Martinez
el 28 de Sept. de 2022
Comentada: Jose Miguel Araya Martinez
el 29 de Sept. de 2022
im trying to do the following:
clear all
clear close
syms s r m;
fun = @(s,m,r)(r.*exp(-(s.^2/2+1.727*(m-5))))./(sqrt(r.^2-10^2));
result= integral3(fun,-inf,-(-1.85-1.013*(m-6)+1.496*log(sqrt(r.^2+31.025))),5,7.5,10,18);
final_result=result*(2*1.727)/(sqrt(2*pi)*30);
BUT matlab say me that in the intregral3 i have a invalid argument at position 3.
What am i doing wrong?
0 comentarios
Respuesta aceptada
Torsten
el 28 de Sept. de 2022
Editada: Torsten
el 28 de Sept. de 2022
You still didn't get the point.
Look at the documentation of integral3:
q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax) approximates the integral of the function z = fun(x,y,z) over the region xmin ≤ x ≤ xmax, ymin(x) ≤ y ≤ ymax(x) and zmin(x,y) ≤ z ≤ zmax(x,y)
Thus if your integration limit is a function of both other variables, it must appear as the last variable in the list ( in this case s ).
And this limit has to be a function handle, not a simple algebraic (or even symbolic) expression.
s = @(m,r) -(-1.85-1.013*(m-6)+1.496*log(sqrt(r.^2+31.025)));
fun = @(m,r,s)(r.*exp(-(s.^2/2+1.727*(m-5))))./(sqrt(r.^2-10^2));
result= integral3(fun,5,7.5,10,18,-Inf,s);
final_result=result*(2*1.727)/(sqrt(2*pi)*30)
Más respuestas (1)
Kevin Holly
el 28 de Sept. de 2022
Your value for xmax needs to be a floating-point array.
syms s r m;
fun = @(s,m,r)(r.*exp(-(s.^2/2+1.727*(m-5))))./(sqrt(r.^2-10^2))
result= integral3(fun,-inf,inf,5,7.5,10,18) % I placed inf for the xmax
final_result=result*(2*1.727)/(sqrt(2*pi)*30)
Here I changed the value of xmax
result= integral3(fun,-inf,30,5,7.5,10,18)
result= integral3(fun,-inf,10,5,7.5,10,18)
if you place a symbolic, you will get an error as shown below.
result= integral3(fun,-inf,r,5,7.5,10,18)
Ver también
Categorías
Más información sobre Calculus en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!