3.2.45 \(\int \frac {1}{b^2 \cos ^2(x)+a^2 \sin ^2(x)} \, dx\) [145]

Optimal. Leaf size=15 \[ \frac {\tan ^{-1}\left (\frac {a \tan (x)}{b}\right )}{a b} \]

[Out]

arctan(a*tan(x)/b)/a/b

________________________________________________________________________________________

Rubi [A]
time = 0.02, antiderivative size = 15, normalized size of antiderivative = 1.00, number of steps used = 2, number of rules used = 1, integrand size = 19, \(\frac {\text {number of rules}}{\text {integrand size}}\) = 0.053, Rules used = {211} \begin {gather*} \frac {\text {ArcTan}\left (\frac {a \tan (x)}{b}\right )}{a b} \end {gather*}

Antiderivative was successfully verified.

[In]

Int[(b^2*Cos[x]^2 + a^2*Sin[x]^2)^(-1),x]

[Out]

ArcTan[(a*Tan[x])/b]/(a*b)

Rule 211

Int[((a_) + (b_.)*(x_)^2)^(-1), x_Symbol] :> Simp[(Rt[a/b, 2]/a)*ArcTan[x/Rt[a/b, 2]], x] /; FreeQ[{a, b}, x]
&& PosQ[a/b]

Rubi steps

\begin {align*} \int \frac {1}{b^2 \cos ^2(x)+a^2 \sin ^2(x)} \, dx &=\text {Subst}\left (\int \frac {1}{b^2+a^2 x^2} \, dx,x,\tan (x)\right )\\ &=\frac {\tan ^{-1}\left (\frac {a \tan (x)}{b}\right )}{a b}\\ \end {align*}

________________________________________________________________________________________

Mathematica [A]
time = 0.03, size = 15, normalized size = 1.00 \begin {gather*} \frac {\tan ^{-1}\left (\frac {a \tan (x)}{b}\right )}{a b} \end {gather*}

Antiderivative was successfully verified.

[In]

Integrate[(b^2*Cos[x]^2 + a^2*Sin[x]^2)^(-1),x]

[Out]

ArcTan[(a*Tan[x])/b]/(a*b)

________________________________________________________________________________________

Maple [A]
time = 0.09, size = 16, normalized size = 1.07

method result size
default \(\frac {\arctan \left (\frac {a \tan \left (x \right )}{b}\right )}{a b}\) \(16\)
risch \(\frac {i \ln \left ({\mathrm e}^{2 i x}-\frac {a +b}{a -b}\right )}{2 a b}-\frac {i \ln \left ({\mathrm e}^{2 i x}-\frac {a -b}{a +b}\right )}{2 a b}\) \(58\)

Verification of antiderivative is not currently implemented for this CAS.

[In]

int(1/(b^2*cos(x)^2+a^2*sin(x)^2),x,method=_RETURNVERBOSE)

[Out]

arctan(a*tan(x)/b)/a/b

________________________________________________________________________________________

Maxima [A]
time = 1.66, size = 15, normalized size = 1.00 \begin {gather*} \frac {\arctan \left (\frac {a \tan \left (x\right )}{b}\right )}{a b} \end {gather*}

Verification of antiderivative is not currently implemented for this CAS.

[In]

integrate(1/(b^2*cos(x)^2+a^2*sin(x)^2),x, algorithm="maxima")

[Out]

arctan(a*tan(x)/b)/(a*b)

________________________________________________________________________________________

Fricas [B] Leaf count of result is larger than twice the leaf count of optimal. 43 vs. \(2 (15) = 30\).
time = 1.01, size = 43, normalized size = 2.87 \begin {gather*} -\frac {\arctan \left (\frac {{\left (a^{2} + b^{2}\right )} \cos \left (x\right )^{2} - a^{2}}{2 \, a b \cos \left (x\right ) \sin \left (x\right )}\right )}{2 \, a b} \end {gather*}

Verification of antiderivative is not currently implemented for this CAS.

[In]

integrate(1/(b^2*cos(x)^2+a^2*sin(x)^2),x, algorithm="fricas")

[Out]

-1/2*arctan(1/2*((a^2 + b^2)*cos(x)^2 - a^2)/(a*b*cos(x)*sin(x)))/(a*b)

________________________________________________________________________________________

Sympy [B] Leaf count of result is larger than twice the leaf count of optimal. 71839 vs. \(2 (10) = 20\).
time = 17.72, size = 71839, normalized size = 4789.27 \begin {gather*} \text {Too large to display} \end {gather*}

Verification of antiderivative is not currently implemented for this CAS.

[In]

integrate(1/(b**2*cos(x)**2+a**2*sin(x)**2),x)

[Out]

Piecewise((zoo*tan(x/2)/(tan(x/2)**2 - 1), Eq(a, 0) & Eq(b, 0)), (-2*tan(x/2)/(b**2*(tan(x/2)**2 - 1)), Eq(a,
0)), (x/(b**2*sin(x)**2 + b**2*cos(x)**2), Eq(a, b) | Eq(a, -b)), ((tan(x/2)/2 - 1/(2*tan(x/2)))/a**2, Eq(b, 0
)), (8192*a**15*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*log(-sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b
**2)/b**2 + 1) + tan(x/2))/(8192*a**15*b**2*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b
**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) - 8192*a**14*b**2*sqrt(a**2 - b**2)*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 -
b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) - 30720*a**13*b**4*sqrt(-2*a**2/b**2 - 2*a
*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) + 26624*a**12*b**4*sqrt(a**2
- b**2)*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1
) + 45568*a**11*b**6*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b
**2)/b**2 + 1) - 33280*a**10*b**6*sqrt(a**2 - b**2)*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-
2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) - 33792*a**9*b**8*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2
 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) + 19968*a**8*b**8*sqrt(a**2 - b**2)*sqrt(-2*a**2/b**
2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) + 12992*a**7*b**10*sqr
t(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) - 5824*a*
*6*b**10*sqrt(a**2 - b**2)*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a*
*2 - b**2)/b**2 + 1) - 2408*a**5*b**12*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 +
 2*a*sqrt(a**2 - b**2)/b**2 + 1) + 728*a**4*b**12*sqrt(a**2 - b**2)*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/
b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) + 170*a**3*b**14*sqrt(-2*a**2/b**2 - 2*a*sqrt(a*
*2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) - 26*a**2*b**14*sqrt(a**2 - b**2)*sqr
t(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) - 2*a*b**
16*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1)) -
8192*a**15*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*log(sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b
**2 + 1) + tan(x/2))/(8192*a**15*b**2*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 +
2*a*sqrt(a**2 - b**2)/b**2 + 1) - 8192*a**14*b**2*sqrt(a**2 - b**2)*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/
b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) - 30720*a**13*b**4*sqrt(-2*a**2/b**2 - 2*a*sqrt(
a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) + 26624*a**12*b**4*sqrt(a**2 - b**2
)*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) + 45
568*a**11*b**6*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b
**2 + 1) - 33280*a**10*b**6*sqrt(a**2 - b**2)*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2
/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) - 33792*a**9*b**8*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*
sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) + 19968*a**8*b**8*sqrt(a**2 - b**2)*sqrt(-2*a**2/b**2 - 2*
a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) + 12992*a**7*b**10*sqrt(-2*a
**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) - 5824*a**6*b**
10*sqrt(a**2 - b**2)*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b
**2)/b**2 + 1) - 2408*a**5*b**12*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*s
qrt(a**2 - b**2)/b**2 + 1) + 728*a**4*b**12*sqrt(a**2 - b**2)*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 +
 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) + 170*a**3*b**14*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b
**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) - 26*a**2*b**14*sqrt(a**2 - b**2)*sqrt(-2*a
**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) - 2*a*b**16*sqr
t(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1)) - 8192*a
**14*sqrt(a**2 - b**2)*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*log(-sqrt(-2*a**2/b**2 + 2*a*sqrt(a
**2 - b**2)/b**2 + 1) + tan(x/2))/(8192*a**15*b**2*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2
*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) - 8192*a**14*b**2*sqrt(a**2 - b**2)*sqrt(-2*a**2/b**2 - 2*a*sqrt(
a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) - 30720*a**13*b**4*sqrt(-2*a**2/b**
2 - 2*a*sqrt(a**2 - b**2)/b**2 + 1)*sqrt(-2*a**2/b**2 + 2*a*sqrt(a**2 - b**2)/b**2 + 1) + 26624*a**12*b**4*sqr
t(a**2 - b**2)*sqrt(-2*a**2/b**2 - 2*a*sqrt(a**...

________________________________________________________________________________________

Giac [A]
time = 0.46, size = 26, normalized size = 1.73 \begin {gather*} \frac {\pi \left \lfloor \frac {x}{\pi } + \frac {1}{2} \right \rfloor + \arctan \left (\frac {a \tan \left (x\right )}{b}\right )}{a b} \end {gather*}

Verification of antiderivative is not currently implemented for this CAS.

[In]

integrate(1/(b^2*cos(x)^2+a^2*sin(x)^2),x, algorithm="giac")

[Out]

(pi*floor(x/pi + 1/2) + arctan(a*tan(x)/b))/(a*b)

________________________________________________________________________________________

Mupad [B]
time = 0.46, size = 15, normalized size = 1.00 \begin {gather*} \frac {\mathrm {atan}\left (\frac {a\,\mathrm {tan}\left (x\right )}{b}\right )}{a\,b} \end {gather*}

Verification of antiderivative is not currently implemented for this CAS.

[In]

int(1/(b^2*cos(x)^2 + a^2*sin(x)^2),x)

[Out]

atan((a*tan(x))/b)/(a*b)

________________________________________________________________________________________