-
-
Notifications
You must be signed in to change notification settings - Fork 22
Simultaneous Polynomial Rootfinding
There are multiple methods for finding all of the roots of a polynomial simultaneously. Two of them are Durand-Kerner and Aberth-Ehrlich which for comparison purposes were written in the same program. The language used was Go (Golang) because of its builtin concurrent programming paradigm to allow for parallelization of the solvers. The code for both methods can be found here.
The video for Durand-Kerner can be found here https://youtu.be/5JcpOj2KtWc. It is highly recommended that you have seen Fixed Point Iteration Systems of Equations with Banach and Horner's Method. The primary sources in this video are:
- Kerner's paper https://link.springer.com/article/10.1007%2FBF02162564
- Durand, Émile. "Solutions numériques des équations algébriques. Tome I: Équations du type F(x)=0, racines d'un polynôme." (1960).
- Dochev's paper https://www.sciencedirect.com/science/article/abs/pii/004155536490148X
- Weierstrass's paper http://bibliothek.bbaw.de/bibliothek-digital/digitalequellen/schriften/anzeige?band=10-sitz/1891-2&seite:int=00000565
The video for Aberth-Ehrlich can be found here https://youtu.be/XIzCzfMDSzk. It is recommended that you have seen Durand-Kerner and Newton Fractals.
Primary sources used in this video are:
- Ehrlich's paper https://dl.acm.org/citation.cfm?id=363115
- Aberth's paper https://www.ams.org/journals/mcom/1973-27-122/S0025-5718-1973-0329236-7/
You may can run the program online via CodingGround. For documentation and instructions on how to install Go visit https://golang.org/. If using apt-get then installation could be as simple as sudo apt-get install golang-go
. You can run the program via the command-line using the command go run DurandKernerAberthEhrlich.go
which will run using the debugger or type go build DurandKernerAberthEhrlich.go
followed by ./DurandKernerAberthEhrlich
which will compile and run the program. Feel free to use your favorite IDE such as Geany or Visual Studio Code.