From 95a38681fa193e3d66b2c77f9677a06b91993567 Mon Sep 17 00:00:00 2001 From: Elias Pipping <elias.pipping@fu-berlin.de> Date: Wed, 12 Oct 2011 16:11:53 +0200 Subject: [PATCH] Return differences --- src/duneminimise.cc | 3 +-- src/foo.m | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/duneminimise.cc b/src/duneminimise.cc index 6e492fab..e0b19bbf 100644 --- a/src/duneminimise.cc +++ b/src/duneminimise.cc @@ -37,10 +37,9 @@ DEFUN_DLD(duneminimise, args, nargout, "the help string") { SampleFunctional::SmallVector correction; Dune::minimise(J, start, correction); - start += correction; ColumnVector ret(dim); - Dune::duneToOctave<dim>(start, ret); + Dune::duneToOctave<dim>(correction, ret); return octave_value(ret); } diff --git a/src/foo.m b/src/foo.m index f23ed2e6..6abab325 100644 --- a/src/foo.m +++ b/src/foo.m @@ -24,12 +24,12 @@ oldvec = [279; 0]; olddiff = [ 0; 0]; for i=1:10 - newvec=duneminimise(oldvec); + newdiff=duneminimise(oldvec); + newvec = oldvec + newdiff; line([oldvec(1) newvec(1)], ... [oldvec(2) newvec(2)], ... [duneevaluate(oldvec) duneevaluate(newvec)], ... 'color', 'r'); - newdiff = newvec - oldvec; printf("Norm of step: %f\n", norm(newdiff)); if (i != 1) printf("Angle between steps: %f degrees\n", acos( dot(olddiff,newdiff) / (norm(olddiff) * norm(newdiff)) ) / pi * 180); -- GitLab