2010-05-27 24 views
6

que estoy haciendo actualmente algún tipo de normalización a lo largo de las líneas de:Take raíz cuadrada positiva en Mathematica

J = Integrate[Psi[x, 0]^2, {x, 0, a}] 
sol = Solve[J == 1, A] 
A /. sol 

Para este tipo de normalización, la raíz cuadrada negativa es extraña. El resultado de este cálculo es:

In[49]:= J = Integrate[Psi[x, 0]^2, {x, 0, a}] 
Out[49]= 2 A^2 

In[68]:= sol = Solve[J == 1, A] 
Out[68]= {{A -> -(1/Sqrt[2])}, {A -> 1/Sqrt[2]}} 

Incluso si trato que le da un Asumiendo [...] o simplificar [...], que todavía me da los mismos resultados:

In[69]:= sol = Assuming[A > 0, Solve[J == 1, A]] 
Out[69]= {{A -> -(1/Sqrt[2])}, {A -> 1/Sqrt[2]}} 

In[70]:= sol = FullSimplify[Solve[J == 1, A], A > 0] 
Out[70]= {{A -> -(1/Sqrt[2])}, {A -> 1/Sqrt[2]}} 

¿Alguien puede decirme qué estoy haciendo mal aquí?

Estoy ejecutando Mathematica 7 en Windows 7 de 64 bits.

Respuesta

4

Solve funciona de esta manera. Puede intentar Reduce, en cambio, p.

In[1]:= Reduce[{x^2 == 1, x > 0}, x] 
Out[1]= x == 1 

Es entonces un poco difícil de transformar esta salida a reglas de sustitución, al menos en el caso general, porque Reduce podría utilizar arbitraria muchos conectores lógicos. En este caso, podríamos cortar:

In[2]:= Solve[Reduce[{x^2 == 1, x > 0}, x], x] 
Out[2]= {{x->1}} 
5

ToRules hace lo que dice la caja: convierte las ecuaciones (como en Reduce salida) la normativa. En su caso:

In[1]:= ToRules[Reduce[{x^2==1,x>0},x]] 
Out[1]= {x->1} 

In[2]:= {ToRules[Reduce[{x^2==1},x]]} 
Out[2]= {{x->-1},{x->1}} 

Para los casos más complejos, a menudo he encontrado que es útil sólo comprobar el valor de las soluciones simbólicas después de pluging en valores de los parámetros típicos. Esto no es infalible, por supuesto, pero si sabes que hay una única solución, entonces es un método simple y eficiente:

Solve[x^2==someparameter,x] 
Select[%,((x/.#)/.{someparameter-> 0.1})>0&] 

Out[3]= {{x->-Sqrt[someparameter]},{x->Sqrt[someparameter]}} 
Out[4]= {{x->Sqrt[someparameter]}} 
+0

¡Genial, gracias! Me había olvidado de ToRules. –

Cuestiones relacionadas