add Gauss-Seidel method