2

This is what I want, for an arbitrary function x

enter image description here

This is what I have done:

Wigner[f_[t_]] := 
  Integrate[f[t - τ/2] 
              Simplify[Conjugate[f[t + τ/2]], 
                Assumptions -> {t ∈ Reals && τ ∈ Reals }] 
              Exp[-I 2 Pi τ f],
    {τ, -∞, ∞}];

But this is what I end up getting:

enter image description here

Right now, I just want to get the substitution right.

m_goldberg
  • 107,779
  • 16
  • 103
  • 257
Gappy Hilmore
  • 1,253
  • 1
  • 9
  • 17
  • I think you're using f twice in your expression, once for the argument of the Wigner function and once for x. Is f in the argument of Wigner supposed to be x? The problem is that yy[t] evaluates before getting plugged into Wigner. Are you okay with pure functions? And do you really need a value of t in there? Or is it okay if it spits back an expression with t in it symbolically? – march Aug 12 '15 at 21:54
  • You are correct, I made a type rewriting it, but it makes no difference at all. – Gappy Hilmore Aug 12 '15 at 22:00
  • @march https://i.imgur.com/4YRHeJr.png – Gappy Hilmore Aug 12 '15 at 22:01
  • It doesn't make a difference as far as the pattern-matching on the left-hand-side, sure, but it's worth making sure that we have the bigger picture in mind; it makes answering the question easier. – march Aug 12 '15 at 22:01
  • Exp[t] automatically evaluates to Power[E, t], so that wouldn't match the pattern. – march Aug 12 '15 at 22:02

1 Answers1

3

The solution may be to declare:

Attributes[Wigner] = {HoldFirst}

The point is to prevent Mathematica from computing the argument before applying the rules for Wigner

user8074
  • 1,592
  • 8
  • 7