2012-01-01 11 views
8

Quando provo a calcolare il seguente integrale in Mathematica 8, ottengo questo strano risultato:Perché Mathematica non può risolvere questo integrale definito?

In[1]:= Integrate[y/((1 + x^2 + y^2)^(3/2)), {y, 0, 1}] 

Mathematica graphics

Maple 14 può risolvere questo uno facilmente:


Perché Mathematica mi sta dando un risultato diverso?

+1

non si sta integrando nel corso della stessa variabile in entrambi gli esempi. Per favore assicurati di fare domande dirette e chiaramente rispondibili su StackOverflow per ottenere buone risposte. In questo caso, intendi "Come posso calcolare questo integrale usando Mathematica" ?? – Szabolcs

+0

hai ragione, ho copiato l'espressione sbagliata. L'ho corretto –

+7

Ai closers: questa è una domanda perfettamente in linea sul ** linguaggio di programmazione ** * Mathematica *. Questa non è una domanda matematica/matematica. –

risposta

12

Prova questa

r = Integrate[y/((1 + x^2 + y^2)^(3/2)), {y, 0, 1}] 
r = Assuming[Element[x, Reals], Simplify[r]]; 
Together[r] 

che dà

(-Sqrt[1+x^2]+Sqrt[2+x^2])/(Sqrt[1+x^2] Sqrt[2+x^2]) 

Che è lo stesso di Maple di:

enter image description here

+0

grazie mille. Posso prendere come regola generale che quando ottengo un'espressione condizionale confusa con parti reali e immaginarie uso l'espressione x = Espressione reale? A proposito, la valutazione in matematica richiede diversi secondi sulla mia macchina mentre in acero è lì all'istante. Inoltre, il risultato può essere ulteriormente semplificato usando FullSimplify, ma quando passo Semplifica nell'espressione Assuming con FullSimplify ottengo lo stesso risultato di Simplify. –

+10

@MartinKoller Puoi cercare ['ConditionalExpression'] (http://goo.gl/orIqS) nei documenti per trovare di cosa si tratta. Viene utilizzato quando il risultato è valido solo quando alcune ipotesi sono vere. Se 'x == I', il risultato ottenuto da Maple non è semplicemente corretto. In questo caso, Mathematica può rilevarlo e generare le condizioni in base alle quali il risultato è valido. Se sei interessato solo a valori reali 'x', dillo * all'interno * della funzione' Integrate', 'Integrate [y/((1 + x^2 + y^2)^(3/2)), { y, 0, 1}, Ipotesi -> x \ [Elemento] Reali] 'e sarà molto più veloce. – Szabolcs

Problemi correlati