Calcola    ∫ 1 / ( 1+sin(x)+cos(x) ) dx    (procedi per sostituzione)

t = tan(x/2),  sin(x) = 2t/(1+t2),  cos(x) = (1−t2)/(1+t2) (vedi), dt/dx = (1+t²)/2, dx = 2dt/(1+t²)
∫ 1 / ( 1+2t/(1+t2)+(1−t2)/(1+t2) ) 2dt/(1+t2) = ∫ 1/(1+t) dt = log(1+t)
∫ 1 / ( 1+sin(x)+cos(x) ) dx = log( 1 + tan(x/2) )  (+ costanti diverse per ciascun intervallo in cui la funzione è definita).

Ma questa funzione non è definita quando 1+tan(x/2) ≤ 0, ossia negli intervalli in cui tan(x/2) ≤ −1, mentre l'integranda non è definita solo negli x in cui cui sin(x)+cos(x) = −1. Sotto il grafico dell'integranda e (in rosso) il dominio di log( 1 + tan(x/2) ).

Non abbiamo trovato soluzioni per tutti gli intervalli.  L'errore è stato commesso nel calcolo di ∫ 1/(1+t) dt, che non ha tenuto conto che ∫ 1/x dx, oltre che log(x) (+c), vale anche log(−x) (+c).
    Le altre soluzioni sono, dunque, log(−1 − tan(x/2) (+ costanti diverse per ciascun intervallo in cui la funzione è definita).

A lato il grafico (marrone) della funzione integranda e quelli (in rosso e in blu) dei risultati ottenuti.
Sull'asse delle x sono evidenziati gli intervalli in cui l'integranda ha segni diversi.

Per altri commenti: calcolo di integrali neGli Oggetti Matematici.

WolframAlpha vissualizza correttamente i grafici delle soluzioni, ma ne esprime simbolicamente solo alcune.

     

# Come sono stati ottenuti i grafici precedenti con R (vedi)
source("http://macosa.dima.unige.it/r.R")   # se non è già stato caricato
# primo
g = function(x) 1/(1+sin(x)+cos(x))
f = function(x) log(1+tan(x/2)) 
df = function(x) eval( deriv(f,"x") )
BF=4; HF=3; a=-6; b=6; Plane(a,b, -6,6)
graph(g, a,b, "brown")    # il grafico, marrone, dell'integranda
graph1(df, a,b, "green")  # quello, verde, della derivata della prima soluzione
# si sovrappone
FDOM=f; graph(DOM,-6,6, "red") # il dominio (in rosso) di f
# secondo
f2 = function(x) log(-1-tan(x/2)) 
df2 = function(x) eval( deriv(f2,"x") )
Plane(a,b, -6,6)
graph2(g, a,b, "brown")
graph1(df2, a,b, "brown")     # anche graf. di der. di 2^ soluz. si sovrappone
graph1(f, a,b, "red"); graph1(f2, a,b, "blue")
FDOM=f; graph(DOM, -6,6, "red"); FDOM=f2; graph(DOM, -6,6, "blue")