Method 2 (not requiring starting point)

Note that (7.8) is equivalent to the statement that the vector $\alpha$ is in the column space of ${\bf A}$, or that there exists a free variable ${\bf v}$ such that

$\alpha$$\displaystyle = {\bf A} {\bf v}.$

As an aside, note that condition (7.8) also assures that (7.5) will have zero derivative along the manifold, which is one of the assumptions of the surrogate density.

The method to find the centroid is to find the vector ${\bf v}$ such that

$\displaystyle {\bf A}^\prime \lambda({\bf A} {\bf v} ) = {\bf z}^*,$ (7.10)

where $\lambda($$\alpha$$)$ is equation (7.3) applied element-wise. This is essentially the same as for the positive-${\bf x}$ case (5.18) , except that the non-linear relationship between $\lambda$ and $\alpha$ is different. The algorithm of Section 5.3.2 to find $\lambda$ based on driving (5.20) to zero can be used if ${\bf v}_0={\bf0}$ and the diagonal elements of ${\mbox{\boldmath $\Lambda$}}$ in (5.21) are given by

$\displaystyle \Lambda_i = \frac{1}{\alpha_i^2}-\frac{e^{\alpha_i}}{(e^{\alpha_i}-1)^2}.$ (7.11)

Let $\hat{\mbox{\boldmath $\lambda$}}({\bf z}^*)$ be the value of $\lambda$ at the solution to (7.10). The modified algorithm to find $\hat{\mbox{\boldmath $\lambda$}}({\bf z}^*)$ is:
  1. Set iteration counter $n=0$.
  2. To initialize, let ${\bf v}_0={\bf0}$.
  3. $\alpha$$_n = {\bf A} {\bf v}_n$. Initially, $\alpha$ will be the vector of zeros.
  4. Compute $\lambda$$_n$ from $\alpha$$_n$ using (7.3) element-wise.
  5. Compute derivative and Hessian according to (5.21) and (5.23), and (7.11), then update ${\bf v}$:

    $\displaystyle {\bf v}_{n+1} = {\bf v}_n +
\left[ \frac{\partial^2 \rho}{\partial u_k \partial u_l}\right]^{-1}
\left[ \frac{\partial \rho}{\partial u_k}\right].$

  6. Increment $n$ and go to step 3.
The above algorithm is implemented by software/lam_solve.m with dbound=1.