The SymPy symbolic mathematics library for Python (see) offers a solvers module for solving both singular equations and systems of equations. An example of usage follows:
import sympy as sym
x,y,z = sym.symbols('x,y,z')
c1 = sym.Symbol('c1')
eq1 = sym.Eq(2*x**2+y+z,1)
eq2 = sym.Eq(x+2*y+z,c1)
eq3 = sym.Eq(-2*x+y,-z)
result = sym.solve([eq1,eq2,eq3],(x,y,z))
print(result)
I'm using solve() after unsuccessfully trying a breadth of custom methods to solve the following nonlinear system. It works great, however I cannot find any information on how SymPy actually solves these. After trying for such time to implement my own solver (just as an interesting exercise), I'm very interested in learning how this is accomplished.
(x - x_i) ** 2 + (y - y_i) ** 2 + (z - z_i) ** 2 - (299792458 * (t_i - t)) ** 2
(x - x_j) ** 2 + (y - y_j) ** 2 + (z - z_j) ** 2 - (299792458 * (t_j - t)) ** 2
(x - x_k) ** 2 + (y - y_k) ** 2 + (z - z_k) ** 2 - (299792458 * (t_k - t)) ** 2
(x - x_m) ** 2 + (y - y_m) ** 2 + (z - z_m) ** 2 - (299792458 * (t_m - t)) ** 2
Where x, y, z and t are unknown, and I'm aiming to find x,y,z