From e12c489da09259a1365ae199fb6d7cbe64c9eb19 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Mon, 25 Mar 2013 20:50:11 -0400 Subject: [PATCH] Replace step_length_cgm() with a direct call to step_length_positive_definite(). --- optimization/step_length_cgm.m | 40 ---------------------------------- optimization/vanilla_cgm.m | 2 +- 2 files changed, 1 insertion(+), 41 deletions(-) delete mode 100644 optimization/step_length_cgm.m diff --git a/optimization/step_length_cgm.m b/optimization/step_length_cgm.m deleted file mode 100644 index 87062f3..0000000 --- a/optimization/step_length_cgm.m +++ /dev/null @@ -1,40 +0,0 @@ -function alpha = step_length_cgm(r, A, p) - % - % Compute the step length for the conjugate gradient method (CGM). - % The CGM attempts to solve, - % - % Ax = b - % - % or equivalently, - % - % min[phi(x) = (1/2) - ] - % - % where ``A`` is positive-definite. In the process, we need to - % compute a number of search directions ``p`` and optimal step - % lengths ``alpha``; i.e., - % - % x_{k+1} = x_{k} + alpha_{k}*p_{k} - % - % This function computes alpha_{k} in the formula above. - % - % INPUT: - % - % - ``r`` -- The residual, Ax - b, at the current step. - % - % - ``A`` -- The matrix ``A`` in the formulation above. - % - % - ``p`` -- The current search direction. - % - % OUTPUT: - % - % - ``alpha`` -- The minimizer of ``f(x) = x + alpha*p`` along ``p`. - % - % NOTES: - % - % All vectors are assumed to be *column* vectors. - % - - % A simple calculation should convince you that the gradient of - % phi(x) above is Ax - b == r. - alpha = step_length_positive_definite(r, A, p); -end diff --git a/optimization/vanilla_cgm.m b/optimization/vanilla_cgm.m index c4d8f07..b511b48 100644 --- a/optimization/vanilla_cgm.m +++ b/optimization/vanilla_cgm.m @@ -45,7 +45,7 @@ function [x, k] = vanilla_cgm(A, b, x0, tolerance, max_iterations) pk = -rk; while (k <= max_iterations && norm(rk, 'inf') > tolerance) - alpha_k = step_length_cgm(rk, A, pk); + alpha_k = step_length_positive_definite(rk, A, pk); x_next = xk + alpha_k*pk; % Avoid accumulated roundoff errors. -- 2.44.2