Dada una matriz $M$ Quiero encontrar un vector no trivial en el núcleo de $M$ que también está en el primer ortante, si es que existe tal vector. Es decir, quiero resolver simultáneamente
$$Mx = 0$$ $$x \geq 0$$ $$x \neq 0$$
Tengo problemas para plantear este problema de forma que se pueda resolver numéricamente de forma eficiente. Un enfoque que he intentado es resolver
$$\min_x \|Mx\|^2\quad s.t. \quad x\geq 0, x_i = 1$$
utilizando mínimos cuadrados no negativos para cada $i$ y buscando soluciones cuyo mínimo sea 0. Si el mínimo es positivo para cada $i$ El problema original no tenía solución. Por desgracia, además de ser ineficiente (tengo que hacer $\dim x$ resuelve), los paquetes estándar de mínimos cuadrados tienen grandes dificultades para converger para este enfoque.
¿Hay una forma mejor de resolver este problema?