From a1624d6c29cd78dfc395610310a18ffbf329f32c Mon Sep 17 00:00:00 2001 From: flavis Date: Tue, 3 Nov 2020 21:41:30 +0100 Subject: [PATCH] changes --- sose2020/ana/lectures | 2 +- .../uebungen/prog_nonlinear_solvers_methods.cc | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/sose2020/ana/lectures b/sose2020/ana/lectures index 4a85680..12c3f17 160000 --- a/sose2020/ana/lectures +++ b/sose2020/ana/lectures @@ -1 +1 @@ -Subproject commit 4a8568092d61277a96481f294464fd68434f90a5 +Subproject commit 12c3f170e2da580b7037c48fa9a84dfe481ea40a diff --git a/sose2020/num/uebungen/prog_nonlinear_solvers_methods.cc b/sose2020/num/uebungen/prog_nonlinear_solvers_methods.cc index c48edc7..9df13a5 100644 --- a/sose2020/num/uebungen/prog_nonlinear_solvers_methods.cc +++ b/sose2020/num/uebungen/prog_nonlinear_solvers_methods.cc @@ -21,15 +21,17 @@ public: // Funktionsauswertung void F (const hdnum::Vector& x, hdnum::Vector& result) const { - result[0] = pow(x[0], 2) + pow(x[1], 2) - 4; - result[1] = pow(x[0], 2)/9 + pow(x[1], 2) - 1; + result[0] = x[0] * x[1] + 2*x[0] - x[1] - 2; + result[1] = x[0] * x[1] - x[0] + x[1] -3; } // Jacobimatrix void F_x (const hdnum::Vector& x, hdnum::DenseMatrix& result) const { - result[0][0] = 2*x[0]; result[0][1] = 2*x[1]; - result[1][0] = 2*x[0]/9; result[1][1] = 2*x[1]; + result[0][0] = x[1] + 2; + result[0][1] = x[0] - 1; + result[1][0] = x[1] - 1; + result[1][1] = x[0] + 1; } }; @@ -48,13 +50,13 @@ int main () // Newton hdnum::Newton newton; newton.set_maxit(20); - newton.set_verbosity(2); + newton.set_verbosity(10); newton.set_reduction(1e-10); newton.set_abslimit(1e-20); - newton.set_linesearchsteps(3); + newton.set_linesearchsteps(2); // 1. Quadrant - u[0] = 2.0; u[1] = 1.0; + u[0] = 0.0; u[1] = 1.0; newton.solve(problem,u); std::cout << "Nullstelle im 1. Quadrant: " << std::setprecision(15) << u << std::endl; problem.F(u, result);