diff --git a/src/duneminimise.cc b/src/duneminimise.cc index 23e14f46ae356dcdd741e53008b323a00b3ca501..01ed50510ed973749752e5a8a3df205d1b7f9bbe 100644 --- a/src/duneminimise.cc +++ b/src/duneminimise.cc @@ -38,11 +38,9 @@ Make a minimisation step of x -> 1/2<Ax,x> - <b,x> + H(|x|) using DUNE starting Functional::SmallVector start; Dune::octaveToDune<dim>(current, start); - Functional::SmallVector correction; - Dune::minimise(J, start, correction); + Dune::minimise(J, start); - ColumnVector ret(dim); - Dune::duneToOctave<dim>(correction, ret); + Dune::duneToOctave<dim>(start, current); - return octave_value(ret); + return octave_value(current); } diff --git a/src/foo.m b/src/foo.m index b7d127550731dc762154a19d90de8018e7ff7bce..cf5f4d047fdcf6a085f6fefc7869b1d818b73160 100644 --- a/src/foo.m +++ b/src/foo.m @@ -26,8 +26,8 @@ oldvec = [279; 0]; # Something random that takes a couple of iterations olddiff = [ 0; 0]; for i = 1:10 # Something random - newdiff = duneminimise(oldvec); - newvec = oldvec + newdiff; + newvec = duneminimise(oldvec); + newdiff = newvec - oldvec; line([oldvec(1) newvec(1)], ... [oldvec(2) newvec(2)], ... [duneevaluate(oldvec) duneevaluate(newvec)], ...