### Notes on scipy.optimize.minimize

Problem: evenly distributed points on ellipsoid surfaces.

Solution: numerically minimizing energy of charges constrained on the ellipsoid surface.

Assuming the ellipsoid satisfies equation:

$$\left(\frac{x}{a}\right)^2+\left(\frac{y}{b}\right)^2+\left(\frac{z}{c}\right)^2=1$$

the ratios of 3 axes of the ellipsoid surface are $(a,b,c)^T$. The minimization process is:

Solution: numerically minimizing energy of charges constrained on the ellipsoid surface.

Assuming the ellipsoid satisfies equation:

$$\left(\frac{x}{a}\right)^2+\left(\frac{y}{b}\right)^2+\left(\frac{z}{c}\right)^2=1$$

the ratios of 3 axes of the ellipsoid surface are $(a,b,c)^T$. The minimization process is:

- let

$$\mathbf{x}^\prime:=\frac{1}{\sqrt{\left(\frac{x}{a}\right)^2+\left(\frac{y}{b}\right)^2+\left(\frac{z}{c}\right)^2}}(x, y, z)^T$$

then $\mathbf{x}^\prime$ satisfy the ellipsoid equation; - minimize the energy function

$$u=\sum_i \sum_{j>i} \frac{1}{\sqrt{(x^\prime_i-x^\prime_j)^2+(y^\prime_i-y^\prime_j)^2+(z^\prime_i-z^\prime_j)^2}}$$ - the gradient vector is, e.g. the $x$ component of ith particle:

$$\partial u/\partial x_i=\sum_{j\ne i} - ((x^{\prime 2}_i/a^2-1)(x^\prime_j-x^\prime_i) + (x^{\prime}_i y^{\prime}_i(y^{\prime}_j-y^{\prime}_i)+x^{\prime}_i z^{\prime}_i (z^{\prime}_j-z^{\prime}_i))/a^2)/d^3$$ with $d=\sqrt{(x^{\prime}_i -x^{\prime}_j)^2+(y^{\prime}_i -y^{\prime}_j)^2+(z^{\prime}_i -z^{\prime}_j)^2}$

***NOTE THE GRADIENT IS CALCULATED WITH RESPECT TO $\mathbf{x}$, $\nabla_\mathbf{x}U$, NOT $\mathbf{x}^\prime$, $\nabla_{\mathbf{x}^\prime}U$***

`scipy.optimize.minimize`

function takes `jac=True`

parameter if the function provides gradient vector, this would boost up the program dramatically.
## Comments

## Post a Comment