Authors: Cyril Vallez, Eliott Zemour.
GROUP 7.
Implementation of numerical methods for the solution of nonlinear equations (NLE).
The numerical methods implemented are:
- Bisection,
- Fixed point methods:
- Chord,
- Newton
And an acceleration feature through Aitken's delta squared process is also implemented according to this source.
The main source for this project can be found at https://onlinelibrary.wiley.com/doi/pdf/10.1002/9781118673515.app8.
Finally, this project includes an extension to systems of nonlinear equations (NLS) solved by the Newton method in n-dimensions.
This project relies on the following librairies:
- GoogleTest
- cmath
- chrono
- string
- iostream
- cstdlib
A Doxygen generated documentation is also available within the 'html' folder of the repository.
There are several ways to use the numerical methods implemented:
- Either though out of class methods Solve_Newton, Solve_Chord, Solve_Bisection are designed to instantiate the NLE Solver objects, call their own solve function to obtain the solution and then delete them. Code example:
double function(double x)
{
// definition of function
}
double (*func)(double x) = &function;
double LeftEdge = -5.;
double RightEdge = 5.;
double solution = Solve_Bisection(func, LeftEdge, RightEdge);
- Either by dynamically allocating memory for a NLE Solver object and directly calling its solve function. In this case the user is responsible of deleting the object. Code example:
double function(double x)
{
// definition of function
}
double (*func)(double x) = &function;
double LeftEdge = -5.;
double RightEdge = 5.;
NLE_Solver* solver = new Bisection_Solver(func, LeftEdge, RightEdge);
double solution = solver->Solve();
delete solver;