Rules for integrands of the form (((a+b Log[c (x^n)]))^p)

1:  ∫(((a+b Log[c (x^n)]))^p)dx  when  p>0

Reference: G&R 2.711.1, CRC 485, CRC 490

Derivation: Integration by parts

Rule: If  p>0, then

∫(((a+b Log[c (x^n)]))^p)dx  ⟶  x (((a+b Log[c (x^n)]))^p)-b n p∫(((a+b Log[c (x^n)]))^(p-1))dx

Program code:

Int[Log[c_.*x_^n_.],x_Symbol] :=
  x*Log[c*x^n] - n*x /;
FreeQ[{c,n},x]

Int[(a_.+b_.*Log[c_.*x_^n_.])^p_.,x_Symbol] :=
  x*(a+b*Log[c*x^n])^p - b*n*p*Int[(a+b*Log[c*x^n])^(p-1),x] /;
FreeQ[{a,b,c,n},x] && GtQ[p,0] && IntegerQ[2*p]

2:  ∫(((a+b Log[c (x^n)]))^p)dx  when  p<-1

Derivation: Inverted integration by parts

Rule: If  p<-1, then

∫(((a+b Log[c (x^n)]))^p)dx  ⟶  ((x (((a+b Log[c (x^n)]))^(p+1)))/(b n (p+1)))-(1/(b n (p+1)))∫(((a+b Log[c (x^n)]))^(p+1))dx

Program code:

Int[(a_.+b_.*Log[c_.*x_^n_.])^p_,x_Symbol] :=
  x*(a+b*Log[c*x^n])^(p+1)/(b*n*(p+1)) - 1/(b*n*(p+1))*Int[(a+b*Log[c*x^n])^(p+1),x] /;
FreeQ[{a,b,c,n},x] && LtQ[p,-1] && IntegerQ[2*p]

3.  ∫(((a+b Log[c (x^n)]))^p)dx  when  (1/n)∈ℤ

1:  ∫(1/(Log[c x]))dx

Reference: CRC 492

Derivation: Integration by substitution and algebraic simplification

Basis: F[Log[c x]]==(1/c) Subst[(e^x) F[x],x,Log[c x]] (∂_x)Log[c x]

Basis: ∫((e^x)/x)dx==ExpIntegralEi[x]

Basis: ExpIntegralEi[Log[z]]==LogIntegral[z]

Note: This rule is optional, but returns antiderivative expressed in terms of LogIntegral instead of ExpIntegralEi.

Rule:

∫(1/(Log[c x]))dx  ⟶  (1/c) Subst[∫((e^x)/x)dx,x,Log[c x]]  ⟶  (1/c) ExpIntegralEi[Log[c x]]  ⟶  (1/c) LogIntegral[c x]

Program code:

Int[1/Log[c_.*x_],x_Symbol] :=
  LogIntegral[c*x]/c /;
FreeQ[c,x]

2:  ∫(((a+b Log[c (x^n)]))^p)dx  when  (1/n)∈ℤ

Derivation: Integration by substitution

Basis: If (1/n)∈ℤ, then F[Log[c (x^n)]]==(1/(n (c^(1/n)))) Subst[(e^(x/n)) F[x],x,Log[c (x^n)]] (∂_x)Log[c (x^n)]

Rule: If (1/n)∈ℤ, then

∫(((a+b Log[c (x^n)]))^p)dx  ⟶  (1/(n (c^(1/n)))) Subst[∫(e^(x/n)) (((a+b x))^p)dx,x,Log[c (x^n)]]

∫(((a+b Log[c (x^n)]))^p)dx  ⟶  (1/(b n (c^(1/n)) (e^(a/(b n))))) Subst[∫(x^p) (e^(x/(b n)))dx,x,a+b Log[c (x^n)]]

Program code:

Int[(a_.+b_.*Log[c_.*x_^n_.])^p_,x_Symbol] :=
  1/(n*c^(1/n))*Subst[Int[E^(x/n)*(a+b*x)^p,x],x,Log[c*x^n]] /;
FreeQ[{a,b,c,p},x] && IntegerQ[1/n]

4:  ∫(((a+b Log[c (x^n)]))^p)dx

Derivation: Piecewise constant extraction and integration by substitution

Basis: (∂_x)(x/(((c (x^n)))^(1/n)))==0

Basis: (((((c (x^n)))^k) F[Log[c (x^n)]])/x)==(1/n) Subst[(e^(k x)) F[x],x,Log[c (x^n)]] (∂_x)Log[c (x^n)]

Rule:

∫(((a+b Log[c (x^n)]))^p)dx  ⟶  (x/(((c (x^n)))^(1/n))) ∫(((((c (x^n)))^(1/n)) (((a+b Log[c (x^n)]))^p))/x)dx ⟶  (x/(n (((c (x^n)))^(1/n)))) Subst[∫(e^(x/n)) (((a+b x))^p)dx,x,Log[c (x^n)]]

∫(((a+b Log[c (x^n)]))^p)dx  ⟶  (x/(((c (x^n)))^(1/n))) ∫(((((c (x^n)))^(1/n)) (((a+b Log[c (x^n)]))^p))/x)dx ⟶  (x/(b n (((c (x^n)))^(1/n)) (e^(a/(b n))))) Subst[∫(x^p) (e^(x/(b n)))dx,x,a+b Log[c (x^n)]]

Program code:

Int[(a_.+b_.*Log[c_.*x_^n_.])^p_,x_Symbol] :=
  x/(n*(c*x^n)^(1/n))*Subst[Int[E^(x/n)*(a+b*x)^p,x],x,Log[c*x^n]] /;
FreeQ[{a,b,c,n,p},x]