Why does MATLAB (Symbolic Math Toolbox) not integrate this simple function.
Ältere Kommentare anzeigen
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?
Antworten (3)
John D'Errico
am 3 Jun. 2022
Bearbeitet: John D'Errico
am 4 Jun. 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
am 3 Jun. 2022
0 Stimmen
integrate 0 to a and multiply the result by 2
1 Kommentar
Sebastian Götz
am 3 Jun. 2022
syms x a real
I = int(simplify((1-x^2/a^2)^(3/2)),x,-a,a)
2 Kommentare
Paul
am 3 Jun. 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.
Kategorien
Mehr zu Calculus finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



