Why does MATLAB (Symbolic Math Toolbox) not integrate this simple function.
Afficher commentaires plus anciens
I am trying to integrate the following function symbolically, but MATLAB won't resolve this.
syms x a
int((1-x^2/a^2)^(3/2),x,-a,a)
It should be
and Wolfram Alpha calculates it without problem. Is there a way to get this result in MATLAB too?
Réponses (3)
John D'Errico
le 3 Juin 2022
Modifié(e) : John D'Errico
le 4 Juin 2022
Your problem is, you need to define a properly. So, if you do only this:
syms x a
I = int((1-x^2/a^2)^(3/2),x)
Now you see that MATLAB finds a solution, but it does not know anything about a. We can try this, but MATLAB is still confused.
simplify(subs(I,a) - subs(I,-a))
The problem there is, if a takes on some general complex value, that result may not be a simple thing. The point being:
syms a
simplify(a*sqrt(-1/a^2))
syms a real
simplify(a*sqrt(-1/a^2))
For real a, that last one reduces to +/-i, depending on the sign of a.
syms a real positive
simplify(a*sqrt(-1/a^2))
Only in the third case does a drop out completely.
So if we specify a more clearly.
syms x
syms a real positive
I = int((1-x^2/a^2)^(3/2),x)
simplify(subs(I,a) - subs(I,-a))
Walter Roberson
le 3 Juin 2022
0 votes
integrate 0 to a and multiply the result by 2
1 commentaire
Sebastian Götz
le 3 Juin 2022
syms x a real
I = int(simplify((1-x^2/a^2)^(3/2)),x,-a,a)
2 commentaires
Paul
le 3 Juin 2022
Sometimes int() works in mysterious ways, I suppose. I believe I've seen other case where int() does not return a solution w/o manipulating the integrand into a different form.
Catégories
En savoir plus sur Calculus dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



