Idea contributed by Yashas Gandhi [email protected] and Pratik Rawal [email protected].
Very often we need to solve non-linear equations numerically, for which Newton-Raphson is one of the widely used methods. Hence, we plan to develop a program to solve non-linear equations using Newton-Raphson method.
Implement a program for solving single variable polynomial equations. Define a function for differentiating the polynomial equation.
- The project contains a comprehensive
README.md
file explaining how to use it, including an example. - The program can solve a single variable polynomial equation.
- The program will take guess solution, tolerance and maximum number of iterations from user.
- The solver prints or returns the root of the equation.
- The project contains at least one unit test which compares one case with its analytical solution for correctness.
Implement class equation
to define original and differentiated equations. The program can handle complex polynomial, trigonometric, exponential and logarithmic functions. Use class hierarchies to define the different kinds of functions.
- The solver can handle complex functions of the form x^n*f(x), where n is any real number and f(x) is sin(x), cos(x), tan(x), sec(x), cosec(x), cot(x) e^x or log(x).
- The
README.md
file shall explain how to add new functionality to the program. - The project contains unit tests for polynomial, trigonometric, exponential, and logarithmic functions.
In this sprint, the code performance will be evaluated and improved. Potential performance bottlenecks will be found (e.g. using a profiler such as gprof) and optimization options for the code will be implemented. This investigation will be based on topics covered in the lecture.
- A file
performance.md
presents observations from the performance analysis. - The same file presents different optimization techniques applied, with the performance effects observed.
- The final code includes the most optimized version of our code.