8
$\begingroup$

For example, this Wolfram Alpha query shows this graph:

enter image description here

But it does not show the code for plotting it in Mathematica. Plot[x^x, {x, -1, 1}] only plots the real values. How can I do this in Mathematica?

$\endgroup$
14
$\begingroup$
Plot[{Re[x^x], Im[x^x]}, {x, -1, 2}]
$\endgroup$
32
$\begingroup$

Here's a view that shows how the graph starts to spiral for negative $x$ values, if we take the complex values into account.

ParametricPlot3D[{x, Re[Exp[x*Log[x]]], Im[Exp[x*Log[x]]]}, 
  {x, -4, 2}, PlotRange -> All, ViewVertical -> {0, 1, 0},
  BoxRatios -> {2, 1, 1}, ViewPoint -> {2, 2, 12}]

enter image description here

In fact, if we write $x^x = e^{x\log(x)}$, this naturally generallizes to $x^x = e^{x\log(x) + 2i\pi k}$; each $2i\pi k$ represents another branch of the complex logarithm. In this context, we see that this graph just forms one spiral of a family of spirals.

x2x[0.0, _] = x2x[0, _] = 1;
x2x[x_, k_] := Exp[x (Log[x] + 2 I Pi k)];
Table[points3D[k] = Table[
  z =  x2x[x, k];
  {x, Re[z], Im[z]},
  {x, -4, 2, 0.005}],
{k, -7, 7}];
Graphics3D[Table[{If[k == 0, Thick, Opacity[0.5]], 
  Line[points3D[k]]}, {k, -4, 4}],    
  Axes -> True, PlotRange -> {{-4, 2}, {-4, 4}, {-4, 4}}, 
  BoxRatios -> {2, 1, 1}, ViewPoint -> {2, 2, 12}, 
  ViewVertical -> {0, 1, 0}]

enter image description here

In elementary classes, you might see the claim that $(p/q)^{p/q}$ is defined for $p$ negative and $q$ odd and positive. Thus, including these points, the graph might look something like so:

points = Union[Cases[Table[Chop[points3D[k], 1/10], {k, -7, 7}], 
  {_?Negative, _, 0}, {2}]];
Plot[x^x, {x, 0, 2}, PlotStyle -> Directive[Thick, Black],
  Epilog -> Point[Most /@ points], PlotRange -> {{-2, 2}, {-2, 4}}]

enter image description here

From the complex perspective, the dots arise as spots where one of the spiral threads punctures the $x$-$z$ plane.

$\endgroup$
  • $\begingroup$ I chose yulinlinyu's as the answer because it answered my question directly and succinctly - but Mark Mcclure's answer goes above and beyond - and is the real jewel in this thread! $\endgroup$ – Faisal Vali Sep 17 '12 at 18:17
17
$\begingroup$

As yulinyu has pointed out, something like the following will give you the desired plot.

Plot[Through[{Re, Im}[x^x]], {x, -2, 2}, Evaluated -> True]

You might also be interested in this excellent answer by Simon Woods to create a graph of the plot over the complex domain. Using his function and evaluating the following gives you a pretty picture

domainPlot[#^# &]

enter image description here

$\endgroup$
  • 5
    $\begingroup$ For a second I thought I smoked .... but no $\endgroup$ – Dr. belisarius Sep 14 '12 at 5:20
  • 3
    $\begingroup$ Are you training your hypno-powers? $\endgroup$ – Dr. belisarius Sep 14 '12 at 5:40
1
$\begingroup$

You can use the new in M12 functions ReImPlot and ComplexPlot for complex visualizations of a function. Using ReImPlot:

ReImPlot[z^z, {z, -2, 2}]

enter image description here

and ComplexPlot:

ComplexPlot[z^z, {z, - 3 - 3 I, 3 + 3 I}]

enter image description here

$\endgroup$
0
$\begingroup$

Also

ComplexPlot3D[z^z, {z, -3 - 3 I, 3 + 3 I}]

enter image description here

does the job in version 12.0.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.