Date: May 31, 2013 3:16 AM Author: Murray Eisenberg Subject: Re: Help needed on how plot a stereographic projection You may wish to take a look at David Park's "Presentations" add-on:

http://home.comcast.net/~djmpark/DrawGraphicsPage.html

This includes, among a host of useful things, a built-in stereographic

projection function as well as built-in functions for displaying

graphics objects defined directly in terms of complex numbers (i.e.

without your having to tear them apart in to real and imaginary part)

and complex functions, including the Riemann sphere.

Some examples of what's possible with complex numbers and complex

functions, among other things (and aside from those in the extensive

Presentations documentation), are available at

http://www.st-andrews.ac.uk/~pl10/c/djmpark/

(you can view the pdf versions there without needing the package) and in

the paper "Visualizing Complex Functions with the Presentations

Application"

http://www.mathematica-journal.com/issue/v11i2/EisenbergPark.html

written by David and me. That paper, which you may view in static form

in the pdf version, includes an example of using stereographic

projection to lift a complex function to the Riemann sphere.

On May 30, 2013, at 6:14 AM, Eduardo M. A. M. Mendes <emammendes@gmail.com> wrote:

>

> Although I have been using Mathematica for more than year, I feel that I haven't barely scratched the surface of what Mathematica can do.

>

> The following example gives the result that I need but the outcome is ugly and slow.

>

> ClearAll[stereographicProjection];

>

> stereographicProjection::usage="stereographicProjection[complexnumber] will return the stereoprojection of a complex point considering the Riemann sphere";

>

> SyntaxInformation[stereographicProjection]={"ArgumentsPattern"->{_}};

>

> stereographicProjection[complexnumber_]:=

> Module[{a1,a2,a3},

> If[ComplexExpand[Abs[complexnumber]]==Infinity,

> a1=0;a2=0;a3=1,

>

>

a1=ComplexExpand[Re[complexnumber]]/(1+ComplexExpand[Abs[complexnumber]]^2);

>

>

a2=ComplexExpand[Im[complexnumber]]/(1+ComplexExpand[Abs[complexnumber]]^2);

>

>

a3=ComplexExpand[Abs[complexnumber]]^2/(1+ComplexExpand[Abs[complexnumber]]^2)];

> {a1,a2,a3}

> ]

>

> tab3=Table[stereographicProjection[(s+1)/(s^2 (s-1))/.{s-> I \[Omega]}],{\[Omega],-1000,1000,0.1}];

>

>

>

Show[ContourPlot3D[x^2+y^2+(z-1/2)^2==(1/2)^2,{x,-1,1},{y,-1,1},{z,0,1},Mesh->Automatic,AxesLabel-> {"x","y","z"},BoxRatios->{1,1,1/2},ImageSize->

Large],ListPointPlot3D[tab3,PlotStyle->Directive[PointSize[Large],Magenta],ImageSize->

>

Large],ListPointPlot3D[{stereographicProjection[-1]},PlotStyle->Directive[PointSize[0.02],Red]],ImageSize-> Large]

>

> a) Is there another way of getting the same plot?

> b) How to get the points of tab3 connected?

> c) How to change the opacity of the sphere?

>

>

> Improvements, suggestion and critiscims are welcome.

>

> Many thanks

>

> Ed

>

---

Murray Eisenberg murray@math.umass.edu

Mathematics & Statistics Dept.

Lederle Graduate Research Tower phone 413 549-1020 (H)

University of Massachusetts 413 545-2838 (W)

710 North Pleasant Street fax 413 545-1801

Amherst, MA 01003-9305