Are there any neat algorithm to factor a multivariable (more than 2 variables) homogenous polynomial, given we know this polynomial factors into linear forms? 



Are there any neat algorithm to factor a homogenous polynomial, given we know this polynomial factors into linear forms?
As Denis Serre points out, this problem subsumes the problem of factoring single variable polynomials, so I'm going to assume that you already have software on hand to do that (probably numerically). In that case, here's what I'd do. For simplicity, presented first in the case of a homogenous polynomial $F(x,y,z)$ in three variables, so a curve in the projective plane.


Pick a line $L$ in the plane and find out where it meets your curve. This amounts to solving a single variable polynomial equation $F(x\_0+at, y\_0+bt, z\_0+ct)=0$ for some constants $(x\_0, y\_0, z\_0$ and $(a,b,c)$. If any of the roots are extremely close to each other, this suggests that $L$ is passing very close to where two of your lines cross; discard this data and try again with another $L$. So now we have $n$ points $z\_1$, $z\_2$, ..., $z\_n$ in $\mathbb{P}^2$, one on each of your lines. 


Repeat with a second line $M$ to get points $w\_1$, $w\_2$, ..., $w\_n$. Then, for each $(z\_i, w\_j)$, see whether your polynomial vanishes on the line through $z\_i$ and $w\_j$. This is just a matter of plugging $z\_i + t w\_j$ into $F$. Remember that, when you work with floating point numbers, you should never check whether something equals zero, but rather whether it is very small. 


Because we chose the $z\_i$ and $w\_i$ well away from the intersections of your lines, the restriction of $F$ to $z\_i + t w\_j$ should not be particularly small if $z\_i$ and $w\_j$ do not lie on the same line. So you can figure out which $z\_i$ lies on a factor of $F$ with which $w\_j$, and then recover that factor by linear algebra.


For a polynomial in $d+1$ variables, use $d$ lines to get $n d$ points. Computing the restriction of $F$ to $(d-1) n^2$ lines will then tell you which of your points to group together.


