2012-01-04 12 views
6

Estoy tratando de obtener la parte real del resultado de una operación que implica una variable indefinida (digamos x).Obtenga x como resultado para Re [x] en mathematica

¿Cómo puedo hacer que Mathematica devuelva x cuando ejecuto Re[x] si sé que x nunca será un número complejo? Creo que esto implica decirle a Mathematica que x es real, pero no sé cómo.

En mi caso, la expresión para la que quiero la parte real es más complicada que una simple, pero el concepto seguirá siendo el mismo.

Algunos ejemplos:

INPUT    OUTPUT   DESIRED RESULT 
-----    ------   -------------- 
Re[x]    Re[x]   x 
Re[1]    1    1 
Re[Sin[x]]   Re[Sin[x]]  Sin[x] 
Re[1+x+I]   1 + Re[x]  1+x 
Re[1 + x*I]  1-Im[x]  1 

Respuesta

13

Usted puede usar, por ejemplo, la entrada Simplify[Re[x], x \[Element] Reals] que dará x como salida.

13

Uso ComplexExpand. Asume que las variables son reales a menos que indique lo contrario. Por ejemplo:

In[76]:= ComplexExpand[Re[x]] 
Out[76]= x 

In[77]:= ComplexExpand[Re[Sin[x]]] 
Out[77]= Sin[x] 

In[78]:= ComplexExpand[Re[1+x+I]] 
Out[78]= 1+x 
+0

Y si desea guardar escribir ComplexExpand todo el tiempo que podría hacer $ post = ComplexExpand; primero y luego {Re [x], Re [Sin [x]], Re [1 + x + I], Re [1 + x * I]} evalúa a {x, Sin [x], 1 + x, 1 } –

+3

@Rolf Verdadero y útil aquí, estoy de acuerdo. Aunque, en general, trato de evitar el uso de '$ Pre' o' $ Post', ya que es fácil olvidarse de ellos, y comienzas a obtener resultados inesperados. –

5

Dos posibilidades más:

Assuming[x \[Element] Reals, Refine[Re[x]]] 

Refine[Re[x], x \[Element] Reals] 

Ambos regresan x.

1

A veces puede ser útil definir UpValues como símbolo. Esto está lejos de ser robusto, pero de todos modos puede manejar una cantidad de casos.

Re[x] ^= x; 
Im[x] ^= 0; 

Re[x] 
Re[1] 
Re[1 + x + I] 
Re[1 + x*I] 

x

1 + x

Re[Sin[x]] no evalúa como se desee, pero una de las transformaciones utilizadas por FullSimplify hace colocarlo en una forma que desencadena Re[x]:

Re[Sin[x]] // FullSimplify 
Sin[x] 
Cuestiones relacionadas