Mathematica for computing number and diameter of closed curves in the Riemann Sphere

89 Views Asked by At

I am currently learning Python but I don't know (YET!) any language like Mathematica, Matlab, Maple, Octave and so on.

I have a Math problem I would like to attack numerically and I need to know which one of the above languages fits best for my needings: I would learn it from scratch, so I would dedicate it some time, hence it is very important to me to make the right choice.

The problem is easy to state and to understand.

We start with three sequences: $R=\{R_n\}_n\subset\Bbb R_{>0}$ strictly increasing and diverging sequence, $\epsilon=\{\epsilon_n\}_n\subset\Bbb R_{>0}$ strictly decreasing and convergent to $0$, and a sequence $a=\{a_n\}_n\subset\Bbb C$ such that $R_{n-1}<|a_n|<R_n$.

Next we define a sequence of Mobius transformations as follows: $$ g_n(z)=\frac{\epsilon_n}{z-a_n} $$ from which we define a sequence of rational functions: \begin{align*} p_0(z)&=z\\ p_1&=g_1\\ p_{n+2}&=p_n+g_{n+2}\circ p_{n+1}\;. \end{align*} Now the important thing to notice is that $p_n$ is a quotient of polynomials whose coefficients depend on $a_1,\dots,a_n,\epsilon_1,\dots,\epsilon_n$ (which is what makes the problem hard to handle from the analytical point of view).

I need to study the diameter of the connected components of the set $$ \Delta_n:=\{z\in\overline{\Bbb C}\;:\;|p_n|>R_n\} \cup \{z\in\overline{\Bbb C}\;:\;|p_{n-1}|>R_n\} $$ which can be reduced to $$ \{z\in\overline{\Bbb C}\;:\;|p_n|=R_n\}\;. $$ It turns out that these objects are the union of a certain number $b_n$ of closed curves in the Riemann Sphere.


FIRST PROBLEM: At step $n$ I want to make a plot of these curves with a slider for each of the $2n$ parameters above and see how do these curves change shape (it's clear that the picture will be messy already at step $4$ or $5$, but it will good for a presentation).


I will need to take $\epsilon$ to converge not so fast (when it does fast enough I can solve my problem by hand): the problem is that, at step $n$, if $\epsilon_1,\dots,\epsilon_n$ are not small enough, the number of connected components could be less than $b_n$, but I need for it to keep being $b_n$, hence I will need to set some constraint.

For example, step $1$: $$ \partial\Delta_1=\{z\in\overline{\Bbb C}\;:\;|z-a_1|=\frac{\epsilon_1}{R_1}\} \cup \{z\in\overline{\Bbb C}\;:\;|z|=R_1\} $$ it's easily seen that for fixed $R_1$ and $a_1$, in order to maintain the components disjoint, one needs to have $|a_1|+\frac{\epsilon_1}{R_1}\le R_1$, that is we cannot take $\epsilon_1$ bigger than $R_1(R_1-|a_1|)$.

So we arrive at the

SECOND PROBLEM: We will need to impose this kind of constrain at each step.


THIRD AND MOST IMPORTANT PROBLEM: at each step, I want to compute the diameter of every component of $\Delta_n$, that is the maximum distance between two points belonging to the same boundary component. Call these diameters $c_j^{(n)},\;j=1,\dots,b_n$. They depend on the $2n$ parameters $a_1,\dots,a_n,\epsilon_1,\dots,\epsilon_n$.

The problem is that these curves are only implicitly defined, there is no explicit formula.


FINAL GOAL: Fix a number $d\ge0$ and define $$ C_n(d,a,\epsilon):=\sum_{j=1}^{b_n}(c_j^{(n)})^d\;; $$ for each fixed $d$ I would like to understand the asymptotical behavior of $C_n$ depending on $a$ and $\epsilon$.

Theory says that $C_n$ either diverge or goes to $0$.

I would fix some decreasing $d_1,\dots,d_N$ and for each of them I would ask the program to maximize $\lim_n C_n(d_j,a,\epsilon)$ in function of $\epsilon$ and $a$.

My final goal is to spot if there exists some threshold value $d^*>0$ and two sequences $a^*$, $\epsilon^*$ such that $\lim_n C_n(d,a^*,\epsilon^*)$ is zero for $d\ge d^*$ and is $\infty$ for $d<d^*$.

Then if such $d^*$ exists, maximize it.


My questions for you my audience are:

  1. Which is the best Language to learn to tackle these problems? Several trustworthy people suggested me Mathematica over the other programs.

  2. Can you suggest me some online good lecture to learn it?