Skip to content

Quarz0/Root-Finder

Repository files navigation

Intro:-

The aim of this app is to apply different root finding algorithms, compare and analyse their behaviour. It supports the following root finding algorithms:-

  • Bisection
  • False-Position
  • Newton-Raphson
  • Secant
  • Fixed-Point
  • Birge-Vieta

The user can choose to solve an equation using one or multiple methods, and also provide each method with its required parameters.

General Method:-

In addition to the previous methods, the app supports root finding using a general method where no parameters are required. The general method works as follows:

  • It starts by first generating a random number as an initial guess
  • It proceeds by testing the fixed-point convergence criteria, and applies it if true
  • If the latter was a false condition, a solution is generated using the modified-Newton-Raphson method
  • If no solution found, repeat

And for the method not to get stuck in an infinite loop in the case of no solution after several unsuccessful trials, another stopping criteria was added which is a one-minute time limit for the algorithm to find the most accurate answer possible or else raise an error flag.

Other features:-

  • Saving and loading in JSON file formats
  • Plotting equations, boundaries for all iterations, errors and roots.
  • Displaying the input equation in LaTeX
  • Specifying max number of iterations and epsilon as stopping criterias
  • Displaying results of each iteration in a table (root, abs error, etc)
  • Calculation of precision, execution time and error bound for some methods

Packages used:-

  • SymPy
  • NumPy
  • PyQt4
  • MatPlotLib

Screenshots:-

screen shot 2017-05-18 at 1 40 13 am

screen shot 2017-05-18 at 1 40 26 am

screen shot 2017-05-18 at 1 42 04 am

screen shot 2017-05-18 at 1 42 48 am

screen shot 2017-05-18 at 1 48 39 am

screen shot 2017-05-18 at 2 49 45 am

screen shot 2017-05-18 at 2 59 01 am

screen shot 2017-05-18 at 3 22 30 am

screen shot 2017-05-18 at 1 51 31 am

screen shot 2017-05-18 at 1 54 04 am

Releases

No releases published

Packages

No packages published

Languages