]> gitweb.michael.orlitzky.com - octave.git/blobdiff - iterative/gauss_seidel.m
Add classical_iteration() sans comments, refactor jacobi() to use it.
[octave.git] / iterative / gauss_seidel.m
diff --git a/iterative/gauss_seidel.m b/iterative/gauss_seidel.m
new file mode 100644 (file)
index 0000000..a844142
--- /dev/null
@@ -0,0 +1,21 @@
+function [x, iterations, residual_norms] = ...
+        gauss_seidel(A, b, x0, tolerance, max_iterations)
+
+  if (nargin < 4)
+    tolerance = 1e-10;
+  end
+
+  if (nargin < 5)
+    max_iterations = intmax();
+  end
+
+  omega = 1;
+
+  if (nargout > 2)
+    [x, iterations, residual_norms] = ...
+      successive_over_relaxation(A, b, omega, x0, tolerance, max_iterations);
+  else
+    [x, iterations] = ...
+      successive_over_relaxation(A, b, omega, x0, tolerance, max_iterations);
+  end
+end