Message Boards Message Boards

0
|
5293 Views
|
8 Replies
|
4 Total Likes
View groups...
Share
Share this post:

How to plot a polar function in 3D?

Posted 3 years ago

Hello, I struggle in finding a way to plot the following polar functions in 3D. Can anyone help?

Here are the two functions, u and u_1:

n=5    
u1[r_, phi_] = 
      Sum[I^(-n) BesselJ[n, r] Exp[I n phi], {n, -5, 5}] + 
       0.018778093057411193`*
        Sum[BesselJ[n, 1.5*r] Exp[I n phi], {n, -5, 5}] + 
       Sum[(0.00042221117650360055`*BesselJ[n, 3*r] + 
           3.026131439416714`*^-10*BesselY[n, 3*r])*Exp[I n phi], {n, -5, 
         5}] + Sum[
        5.062485836886407`*^-9*HankelH1[n, r] Exp[I n phi], {n, -5, 5}];
    u[r_, phi_] := 
      0.018778093057411193`*
        Sum[BesselJ[n, 1.5*r] Exp[I n phi], {n, -5, 5}] + 
       Sum[(0.00042221117650360055`*BesselJ[n, 3*r] + 
           3.026131439416714`*^-10*BesselY[n, 3*r])*Exp[I n phi], {n, -5, 
         5}] + Sum[
        5.062485836886407`*^-9*HankelH1[n, r] Exp[I n phi], {n, -5, 5}];
POSTED BY: Ser Man
8 Replies

Hi, Ser Man,

normally I would use ComplexPlot3D here and do it like so:

ComplexPlot3D[u[Abs[z], Arg[z]], {z, -2 - 2 I, 2 + 2 I}, PlotLegends -> Automatic]

But on my machine this runs forever - I have no idea, why. Maybe someone can help us with a comment.

POSTED BY: Henrik Schachner

What do you think about this?

   p1 = ParametricPlot3D[{r Cos[phi], r Sin[phi], 
   Re[u1[r, phi]]}, {r, .1, 3}, {phi, 0, 2 Pi}, 
  PlotStyle -> {Opacity[.5], Red}]
p2 = ParametricPlot3D[{r Cos[phi], r Sin[phi], 
   Im[u1[r, phi]]}, {r, .1, 3}, {phi, 0, 2 Pi}, 
  PlotStyle -> {Opacity[.5], Blue}]
Show[p1, p2]
POSTED BY: Hans Dolhaine

Another way:

Plot3D[ReIm[u[Norm[{x, y}], ArcTan[x, y]]],
 {x, -1, 1}, {y, -1, 1}, AxesLabel -> Automatic]
POSTED BY: Gianluca Gorni
Posted 3 years ago

Looks great! Thanks!

POSTED BY: Ser Man
Posted 3 years ago

I have plotted also the Absolute value and Argument with the extension of your code:

p1 = ParametricPlot3D[{r Cos[phi], r Sin[phi], 
   Re[u1[r, phi]]}, {r, .1, 3}, {phi, 0, 2 Pi}, 
  PlotStyle -> {Opacity[.5], Red}]
p2 = ParametricPlot3D[{r Cos[phi], r Sin[phi], 
   Im[u1[r, phi]]}, {r, .1, 3}, {phi, 0, 2 Pi}, 
  PlotStyle -> {Opacity[.5], Blue}]
p3 = ParametricPlot3D[{r Cos[phi], r Sin[phi], 
   Abs[u1[r, phi]]}, {r, .1, 3}, {phi, 0, 2 Pi}, 
  PlotStyle -> {Opacity[.5], Red}]
p4 = ParametricPlot3D[{r Cos[phi], r Sin[phi], 
   Arg[u1[r, phi]]}, {r, .1, 3}, {phi, 0, 2 Pi}, 
  PlotStyle -> {Opacity[.5], Red}]

Thanks

POSTED BY: Ser Man
Posted 3 years ago

PS: The interval of the plot is a little bit large. It is the absolute center which is important. How do I"zoom" in on the center?

POSTED BY: Ser Man

If I understand you correctly you want a lower boundary for r.

Is it this what you want?

rlow=.1;
rhigh= .8,

.....

ParametricPlot3D[...., {r,rlow,rhigh},....]
POSTED BY: Hans Dolhaine
Posted 3 years ago

At thecenter there is a white circle, and around it some red spikes. This area is of interest. How can i zoom in on that?

enter image description here

POSTED BY: Ser Man
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract