Surface plotting problem in Mathematica

Click For Summary

Discussion Overview

The discussion revolves around issues encountered while plotting a breather surface in Mathematica, specifically using the ParametricPlot3D function. Participants explore graphical rendering problems, including the appearance of holes in the surface plot and the differences between graphics versions in Mathematica.

Discussion Character

  • Technical explanation
  • Debate/contested

Main Points Raised

  • One participant reports that using PlotPoints->{50,50} and PlotPoints->{400,400} results in a surface plot with holes, despite extensive computation time.
  • Another participant suggests that the issue may be related to spurious imaginary parts in the final result, recommending the use of Chop[] or Re[] to improve the plot.
  • A different participant proposes that branch-cut problems with the complex arctan function could be causing the holes, suggesting a method to split the plot on either side of zero and combine the results.
  • One participant expresses frustration that the older Version5`Graphics` handles the plot correctly while Version7 does not.
  • A later reply acknowledges the branch cut problem and confirms that the proposed solution works effectively.

Areas of Agreement / Disagreement

Participants generally agree that the issues with the plot are related to complex function behavior and rendering in Mathematica, but multiple competing views on the exact cause and solutions remain. The discussion does not reach a consensus on a single definitive solution.

Contextual Notes

Participants mention unresolved issues related to the Method option in ParametricPlot3D and the handling of imaginary parts in the plotting process, indicating potential limitations in the current approaches discussed.

AzO
Messages
3
Reaction score
0
Hi!

I would like to plot a so called breathersurface in Mathematica, but it gives a really bad picture, which I do not really want to use in my thesis:
http://www.cs.elte.hu/~azo/Breathersurface.JPG"
As you can see, it has holes in it, while it should not have. I used here PlotPoints->{50,50}, but after this I tried PlotPoints->{400,400}... My computer almost died during the calculations, but after 4 hours of processing :) it gave me a similar picture, with holes..
Than I have got the idea to tell Mathematica to use << Version5`Graphics`. I have got a perfect picture:
http://www.cs.elte.hu/~azo/BreathersurfaceOld.JPG"
So I do not understand why is this so. I really would like to use Version7 Graphics, because until now every figure was made with that, and it is nicer :).

AzO
 
Last edited by a moderator:
Physics news on Phys.org
Hello,
Can you provide us with your notebook ? So that we can try and play with it ? Is it a ContourPlot3d[] ? :smile:
 
Of course!

http://www.cs.elte.hu/~azo/BreathersurfacePhysicsforum.nb"

No, it is a ParamterciPlot3D[].
 
Last edited by a moderator:
Sorry, I had to go somewhere :smile:
I think there's a problem with spurious imaginary part in the final result. Taking a Chop[] or a Re[] of r12 improve the situation a bit but there's still holes. Using MaxRecursion improve a little bit more the situation…
Basically, if your final result has a remaining imaginary part it will not be plotted. Although this is not the only reason since taking the Re[] of r12 do not solve completely the issue.
I tried to find info on the possible value of the Method option passed to ParametricPlot3D to no avail…
It's frustrating that the Version5`Graphics` handles it like a charm…
 
Hi. I think you're running into branch-cut problems with the complex arctan function. Below I define teta1 in it's logarithmic form:

teta1[x_, t_, b_] := I*Log[(I + Exp[khi[x, t, b]])/(I - Exp[khi[x, t, b]])];

split up the plot on either side of zero then combine:

pp1 = ParametricPlot3D[
Evaluate[Re[r12[x, t, (3 - 4*I)/5, (3 + 4*I)/5]]],
{t, 0.001, 5*Pi}, {x, -10, 10}, ImageSize -> {600, 600},
PlotRange -> {{-4, 4}, {-4, 4}, {-5, 5}}]
pp2 = ParametricPlot3D[
Evaluate[Re[r12[x, t, (3 - 4*I)/5, (3 + 4*I)/5]]],
{t, -0.001, -5*Pi}, {x, -10, 10}, ImageSize -> {600, 600},
PlotRange -> {{-4, 4}, {-4, 4}, {-5, 5}}]
Show[{pp1, pp2}]

probably needs some more work to get it just right. Interesting phenomenon. Thanks.:)
 
Jackmell! You are really good!
I should have thought to the branch cut problem myself. Now that you've said it, it looked obvious. Your solution works perfectly!
Thank you very much! :)))
 

Similar threads

  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 4 ·
Replies
4
Views
4K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 3 ·
Replies
3
Views
5K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 1 ·
Replies
1
Views
7K
  • · Replies 6 ·
Replies
6
Views
5K