I need help to execute a triple integral
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Jose Miguel Araya Martinez
le 28 Sep 2022
Commenté : Jose Miguel Araya Martinez
le 29 Sep 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 commentaires
Réponse acceptée
Torsten
le 28 Sep 2022
Modifié(e) : Torsten
le 28 Sep 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)
Plus de réponses (1)
Kevin Holly
le 28 Sep 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)
Voir également
Catégories
En savoir plus sur Calculus dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!