/root-finder

A Python application that implements a root finder program which takes as an input the equation, the numerical technique to use and its required parameters.

Primary LanguagePythonMIT LicenseMIT

Root Finder

A Python-based root finder application, made with the GUI framework Tkinter, that allows a user to input an algebraic expression (or load via a .txt file) and evaluate its roots using any one of 5 numerical methods (Bisection, False-Position, Fixed Point, Newton-Raphson and Secant), along with their respective parameters, to solve the expression.

This project was developed as part of the course Numerical Analysis in the Spring 2022 semester at the Faculty of Engineering, Alexandria University, under the Computer and Communications Engineering department, supervised by Dr. Zeinab Eid.

Features

The program contains the following features:

  • An interactive GUI that enables the user to enter equations containing different functions such as: {poly, exp, cos, sin}. Reading from files is available as well.
  • A dropdown menu to choose a method to solve the given equation.
  • Textboxes to enter the precision and the max number of iterations otherwise default values are used: Default Max Iterations = 50, Default Epsilon = 0.00001;
  • The answer for the chosen method indicates the number of iterations, execution time, all iterations, approximate root, and precision.
  • Compute the theoretical bound of the error for the methods.

Prerequisites

This project was developed in the following environment:

  • PyCharm Community 2023.3.4
  • Miniconda
  • Python 3.11.5
  • SymPy 1.12

Installing

1- Clone the repository to your local machine:

git clone https://github.com/MohEsmail143/root-finder.git

2- Open PyCharm Community.

3- Click on Run 'main' button for the file main.py. The following window should appear:

Opening Screen of Root Finder

License

This project is licensed under the MIT License - see the LICENSE.md file for details.