From e138bd8a10f88beb514cc4e0b11297b230282c2b Mon Sep 17 00:00:00 2001 From: Elias Pipping <elias.pipping@fu-berlin.de> Date: Fri, 9 Sep 2011 17:44:45 +0200 Subject: [PATCH] Clean up assertions; Run multiple gradient steps --- src/bisection-example-new.cc | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/bisection-example-new.cc b/src/bisection-example-new.cc index 2215aea3..852df8c6 100644 --- a/src/bisection-example-new.cc +++ b/src/bisection-example-new.cc @@ -213,18 +213,17 @@ void testSampleFunction() { SampleFunctional::SmallVector c = b; c /= c.two_norm(); - assert(J.directionalDerivative(b, c) == 2 * sqrt(5) + 2); + // assert(J.directionalDerivative(b,c) == 2*sqrt(5) + 2); SampleFunctional::SmallVector start = b; start *= 17; - SampleFunctional::SmallVector correction = J.minimise(start, 20); - assert(J(start + correction) <= J(start)); + SampleFunctional::SmallVector correction; - start += correction; - correction = J.minimise(start, 20); - - assert(std::abs(J(start + correction) + 0.254631) < 1e-6); - std::cout << "Arrived at J(...) = " << J(start + correction) << std::endl; + for (int i = 1; i <= 4; ++i) { + correction = J.minimise(start, 20); + start += correction; + } + std::cout << "Arrived at J(...) = " << J(start) << std::endl; } void testTrivialFunction() { @@ -245,14 +244,17 @@ void testTrivialFunction() { SampleFunctional::SmallVector c = b; c /= c.two_norm(); - assert(J.directionalDerivative(b, c) == 2 * sqrt(5)); + // assert(J.directionalDerivative(b,c) == 2*sqrt(5)); SampleFunctional::SmallVector start = b; start *= 17; - SampleFunctional::SmallVector correction = J.minimise(start, 20); - assert(J(start + correction) <= J(start)); - assert(std::abs(J(start + correction) + 0.83333333) < 1e-8); - std::cout << "Arrived at J(...) = " << J(start + correction) << std::endl; + SampleFunctional::SmallVector correction; + + for (int i = 1; i <= 5; ++i) { + correction = J.minimise(start, 20); + start += correction; + } + std::cout << "Arrived at J(...) = " << J(start) << std::endl; } int main() { -- GitLab