Hopf fibration Poincaré surface of section - Mathematica Stack Exchange most recent 30 from mathematica.stackexchange.com 2019-09-23T06:24:58Z https://mathematica.stackexchange.com/feeds/question/133487 https://creativecommons.org/licenses/by-sa/4.0/rdf https://mathematica.stackexchange.com/q/133487 3 Hopf fibration Poincaré surface of section DK13 https://mathematica.stackexchange.com/users/8411 2016-12-14T10:34:15Z 2016-12-14T17:34:42Z <p>How would it be possible to plot in <em>Mathematica</em> the Poincaré surface of section, say on the plane y=0 of the streamlines of the so-called Hopf fibration which has a tangent vector field with components</p> <pre><code>u_x = (2A/d^2)*(x*z - r*y); u_y = (2A/d^2)*(r*x + y*z); u_z = (A/d^2)*(r^2 - x^2 - y^2 + z^2); </code></pre> <p>where</p> <pre><code>d=r^2+x^2+y^2+z^2; </code></pre> <p>and \$A=const.\$ and \$r=const.\$ </p> <p>The differential equations whose solutions are the trajectories of the Hopf-fibration are </p> <pre><code>x'[t] = u_x/Abs[u]; y'[t] = u_y/Abs[u]; z'[t] = u_z/Abs[u]; </code></pre> https://mathematica.stackexchange.com/questions/133487/hopf-fibration-poincar%c3%a9-surface-of-section/133498#133498 6 Answer by zhk for Hopf fibration Poincaré surface of section zhk https://mathematica.stackexchange.com/users/8538 2016-12-14T14:43:04Z 2016-12-14T17:34:42Z <p>We can plot the components of <code>u</code> by using <code>ContourPlot3D</code> like this</p> <pre><code>A = 1; r = 1; d = r^2 + x^2 + y^2 + z^2; ContourPlot3D[{(2 A/d^2)*(x*z - r*y), (2 A/d^2) (r*x + y*z), (A/ d^2)*(r^2 - x^2 - y^2 + z^2)}, {x, -3, 3}, {y, -3, 3}, {z, -3, 3}] </code></pre> <p><a href="https://i.stack.imgur.com/avAuw.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/avAuw.jpg" alt="enter image description here"></a></p> <p>For the above plot, I took random values for \$A\$ and \$r\$.</p> <p>Since your system of differential equation is coupled and nonlinear, so, I will straight away go for <code>NDSolve</code>.</p> <pre><code>d = r^2 + x[t]^2 + y[t]^2 + z[t]^2; ux = (2*A/d^2)*(x[t]*z[t] - r*y[t]); uy = (2*A/d^2)*(r*x[t] + y[t]*z[t]); uz = 1/2*(A/d^2)*(r^2 - x[t]^2 - y[t]^2 + z[t]^2); u = Sqrt[ux^2 + uy^2 + uz^2]; soln = NDSolve[{x'[t] == ux/Abs[u], y'[t] == uy/Abs[u], z'[t] == uz/Abs[u], x == 0, y == 1, z == 0}, {x, y, z}, {t, 0, 50}]; </code></pre> <p>Finally ploting the results as a 3D, </p> <pre><code>ParametricPlot3D[{x[t], y[t], z[t]} /. soln, {t, 0, 50}, PlotRange -&gt; All, MaxRecursion -&gt; 8, AxesLabel -&gt; {"x", "y", "z"}, ViewPoint -&gt; Front] </code></pre> <p><a href="https://i.stack.imgur.com/1VA7n.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/1VA7n.jpg" alt="enter image description here"></a></p> <p><strong>Edit</strong></p> <p>In responce to your xz-plane view comment, @J.M. suggested <code>ParametericPlot</code>,</p> <pre><code>ParametricPlot[{x[t], z[t]} /. soln, {t, 0, 250}, PlotRange -&gt; All, MaxRecursion -&gt; 8, AxesLabel -&gt; {"x", "z"}] </code></pre> <p><a href="https://i.stack.imgur.com/mPbzc.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/mPbzc.jpg" alt="enter image description here"></a></p> <p>For set of different initial conditions, you can do something like this,</p> <pre><code>sol[x0_?NumericQ, y0_?NumericQ, z0_?NumericQ] :=NDSolve[{x'[t] == ux/Abs[u], y'[t] == uy/Abs[u], z'[t] == uz/Abs[u], x == x0, y == y0, z == z0}, {x, y, z}, {t, 0, 250}]; ParametricPlot3D[ Evaluate[{x[t], y[t], z[t]} /. sol[#, #, #] &amp; /@ Range[2, 5, .1]], {t, 0, 250}, PlotRange -&gt; All, MaxRecursion -&gt; 8, AxesLabel -&gt; {"x", "y", "z"}] </code></pre> <p><a href="https://i.stack.imgur.com/QsYLE.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/QsYLE.jpg" alt="enter image description here"></a></p>