       Re: Complex Function Plot

• To: mathgroup at smc.vnet.net
• Subject: [mg25574] Re: [mg25541] Complex Function Plot
• From: Tomas Garza <tgarza01 at prodigy.net.mx>
• Date: Sun, 8 Oct 2000 00:42:00 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```You might use ComplexExpand with the TargetFunctions -> {Re, Im}. I'm
not sure this will take less time than twice evaluating f[t]; it surely
depends on the form of f. For example, in a simple case:

In:=
f[t_] := Exp[I  t^2]

Now you evaluate f[t] twice to produce the Real and Imaginary parts:

In:=
Simplify[f[t] // Re, t \[Element] Reals]
Out=
Cos[t^2]
In:=
Simplify[f[t] // Im, t \[Element] Reals]
Out=
Sin[t^2]

Here you evaluate f[t] only once:

In:=
ComplexExpand[f[t], TargetFunctions -> {Re, Im}]
Out=
Cos[t\^2] + ImaginaryI]\ Sin[t\^2]\)

However, it takes slightly more to evaluate the latter. In 10,000
evaluations of each case I obtain the following results:

In:=
Table[Simplify[f[t] // Re, t \[Element] Reals], {t, 0, 10, 0.001}]; //
Timing
Out=
{6.59 Second, Null}
In:=
Table[Simplify[f[t] // Im, t \[Element] Reals], {t, 0, 10, 0.001}]; //
Timing
Out=
{6.53 Second, Null}
In:=
Table[ComplexExpand[f[t], TargetFunctions -> {Re, Im}], {t, 0, 10,
0.001}]; // Timing
Out=
{15.27 Second, Null}

I guess you'd have to experiment a little. Hope this helps.

Tomas Garza
Mexico City

"Roberto Brambilla" <rlbrambilla at cesi.it> wrote:

> I have often to plot the real and the imaginary part
> of a complex valued function of a real variable : f(t).
> The obvious solution is
>
> Plot[{f[t]//Re,f[t]//Im},{t,t1,t2},
>       PlotStyle->{Hue[.7],Hue[.9]}]
>
> and the function is evaluated two times for each value of t.
> In the case of a long-time-eating function (as in the case
> of series expansions with hypergeometric f.,integrals with
> parameters,etc) it would be suitable a trick to evaluate
> f[t] only once.
> I'd like also to avoid to use interpolation like
>
> p=Table[f[t1+k(t2-t1)k/n],{k,0,n}];
> fr=Interpolation[p//Re,InterpolationOrder->mr];
> fi=Interpolation[p//Im,InterpolationOrder->mi];
> Plot[{fr[t],fi[t]},{t,t1,t2},
>       PlotStyle->{Hue[.7],Hue[.9]}]
>
> since it requires the optimum choice of n, mr and mi
> for each (t1,t2) interval, especially if the two parts
> oscillate with very different periods.
>
> I use Math. version 3.0 .
> Any suggestion will be greatly appreciated.

```

• Prev by Date: Re: RE:? D[f,{x,n}]
• Next by Date: Re: MultiLinear and Linear function
• Previous by thread: RE: Complex Function Plot
• Next by thread: Re: Complex Function Plot