$\vec{\alpha}$ is close to $\vec{a}$ and $\vec{\beta}$ is close to $\vec{b}$

Given $\vec{a}$, $\vec{b}$ and c, how to find $\vec{\alpha}$, $\vec{\beta}$ quickly?

If necessary, I can assume distance between $\vec{\alpha}$ and $\vec{a}$ is usually much smaller than distance between $\vec{b}$ and $\vec{\beta}$.

Each vector has about 10 - 15 elements but I have to do this for about 10^4 vectors.

If probability should sum to 1 is the constraint, I can normalize the probabilty after each (or several) optimization step to control the numerical error. But I can't do the same thing for this constraint.

$\begingroup$Maybe I can do two Newton iterations. Fix beta and find alpha and lambda. Then fix alpha and find beta and lambda. Alternate till converge.$\endgroup$
– R zuOct 24 '18 at 18:13

1

$\begingroup$This is an underdetermined problem so there are many many solutions. For example, just set $\alpha=a,\beta=bc/(a\cdot b)$. Since $a\cdot b\approx c$ you still get $\beta$ close to $b$.$\endgroup$
– RahulOct 24 '18 at 20:20

$\begingroup$If close means least square, then the problem becomes the last 3 equations I wrote. It is a non-linear system with n equations and n unknowns. hmm. I might try your normalization. Any one of the solutions would work.$\endgroup$
– R zuOct 24 '18 at 20:31

1 Answer
1

There are of course infinitely many vectors $\vec \alpha,\vec \beta$ that satisfy $\vec \alpha\cdot\vec \beta=c$. So if you want to have a particular pair of vectors, you will have to be precise when stating what you mean that $\vec \alpha,\vec \beta$ should be "close" to $\vec a,\vec b$.