Skip to content
Snippets Groups Projects
Commit e138bd8a authored by Elias Pipping's avatar Elias Pipping Committed by Elias Pipping
Browse files

Clean up assertions; Run multiple gradient steps

parent dd6d8962
No related branches found
No related tags found
No related merge requests found
......@@ -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() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment