matlab triple integral conical gravity
Mostrar comentarios más antiguos
Hi everyone,
I'm trying to solve a triple integral in matlab, demonstrating the gravity on a point mass inside a cone. I have solved this byy hand and it works fine with a simple u sub. Does anyone have any ideas why my code isn't working. Thanks!
I've tried:
function F = conical_gravity(r,z,th) % parameters
syms G p r th z h
T = (p*G*r*z)/((r^2+z^2)^(3/2));
F1 = int(T,r,0,z)
F2 = int(F1,z,0,h)
F3 = int(F2,th,0,2*pi)
end
this:
syms G p r z th h a
T = (p*G*r*z)*((r^2+z^2)^(-3/2));
q1 = int(T,r,0,z)
q2 = int(q1,th,0,2*pi)
q3 = int(q2,z,0,h)
and this:
syms th r z h G p
T = (p*G*r*z)*((r^2+z^2)^(-3/2));
int(int(int(T,r,0,z),th,0,2*pi),z,0,h)
along with the previous was using integral3.
Any ideas??
2 comentarios
Youssef Khmou
el 29 de Nov. de 2014
is the objective to return symbolic result or numeric one?
Mia Bodin
el 29 de Nov. de 2014
Respuesta aceptada
Más respuestas (2)
Youssef Khmou
el 29 de Nov. de 2014
Editada: Youssef Khmou
el 29 de Nov. de 2014
I think that working with symbolic variables will not permit the transformation of integral expressions to numeric type, however if you only want general primitive do not use the bounds :
q1 = int(T,r)
You can proceed as the following, the second integral is based on first, so as the third, in each integral the bold case represents the variable on which we integrate :
G=6.67e-11;
z=2;
p=2;% p=mv
r=4;
T=@(R) (p*G*R*z)/((r^2+z^2)^(3/2));
F1=quad(T,0,z);
the expression of q2 is independent of azimuth theta, you will then multiply q1 by 2pi, try to figure out the solution q3.
1 comentario
Mia Bodin
el 29 de Nov. de 2014
Roger Stafford
el 30 de Nov. de 2014
Editada: Roger Stafford
el 30 de Nov. de 2014
0 votos
I have a very ancient version of the Symbolic Toolbox, but it has trouble with substituting z for (z^2)^(1/2) if you integrate with respect to r first because it doesn't know that z is never negative until too late. Unfortunately you would run into the same kind of trouble if you integrated with respect to z first, because it doesn't know yet that r is never negative. However, I believe later versions will permit you to place constraints on your symbolic variables to avoid this trouble. You might try that.
Categorías
Más información sobre Mathematics en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!