Why does MATLAB (Symbolic Math Toolbox) not integrate this simple function.

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)
ans = 
It should be and Wolfram Alpha calculates it without problem. Is there a way to get this result in MATLAB too?

Réponses (3)

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)
I = 
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))
ans = 
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))
ans = 
syms a real
simplify(a*sqrt(-1/a^2))
ans = 
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))
ans = 
i
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)
I = 
simplify(subs(I,a) - subs(I,-a))
ans = 
integrate 0 to a and multiply the result by 2

1 commentaire

Thanks, for the workaround. However, shouldn't it work as well if I integrate directly from -a to a? Why can't MATLAB do it?

Connectez-vous pour commenter.

syms x a real
I = int(simplify((1-x^2/a^2)^(3/2)),x,-a,a)
I = 

2 commentaires

This works as I hoped. Thanks. It is still strange that it works with the exponent 1/2
syms x a
int((1-x^2/a^2)^(1/2),x,-a,a)
ans = 
and with the exponent 2
int((1-x^2/a^2)^(2),x,-a,a)
ans = 
without the simplify but not with 3/2.
int((1-x^2/a^2)^(3/2),x,-a,a)
ans = 
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.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Symbolic Math Toolbox dans Centre d'aide et File Exchange

Produits

Version

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by