MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: force variable to be real

  • To: mathgroup at smc.vnet.net
  • Subject: [mg91790] Re: [mg91736] force variable to be real
  • From: Benjamin Reedlunn <breedlun at umich.edu>
  • Date: Sun, 7 Sep 2008 22:55:24 -0400 (EDT)
  • References: <200809070933.FAA25407@smc.vnet.net>

Hi Paul,

I think the most simple way to fix your problem is to just take the  
derivative wrt to Re[x]:

In[20]:= w = x + I 2 x z
Out[20]= 2 i z x + x
In[21]:= y = Re[w]
Out[21]= Re(x) - 2 Im(x z)
In[26]:= D[y, Re[x]]
Out[26]= 1

One important distinction is Re[] does not actually permanently force  
a variable to be real.  I'm not sure that there is a way to do this.   
Re[] only gives the real part of that variable for the expression it  
is used in.

Also, I've often found assumptions useful.  For example:

In[29]:= Simplify[Sqrt[x^2]]
Out[29]= Sqrt[x^2]

clearly giving no simplification.  But if you assume that x is real  
then:

In[31]:= Simplify[Sqrt[x^2], Element[x, Reals]]
Out[31]= |x|

There may be a way to make assumptions global, but I'm not sure how.

-Ben Reedlunn

On Sep 7, 2008, at 5:33 AM, phillman5 wrote:

> How do you force variables to be real?
>
> I have
>                w:=x + I 2 x z,
> and
>                y:=Re[w]
>
> and want the derivative of y wrt x,    x and z are Real
>                D[y, x]
> gives
>                Re'[x] - 2 z Im'[x z]
>
> where I'd expect  just 1.  Or I need to evaluate Re[w] forcing x and z
> to be real, then take the derivative.
>
> Thank you for any help
> Paul
>
>
>
>



  • Prev by Date: Re: Use of delayed assignment, :=, with a list
  • Next by Date: Re: Use of delayed assignment, :=, with a list
  • Previous by thread: Re: force variable to be real
  • Next by thread: Re: force variable to be real