You are now following this Submission
- You will see updates in your followed content feed
- You may receive emails, depending on your communication preferences
This fixes the MATLAB roots function to work with poorly scaled polynomials. For example,
c = 10.^(20:-1:0);
x = roots(c); max(abs(polyval(c,x))) % 7.647251195518823e-08
x = roots_(c); max(abs(polyval(c,x))) % 7.257804400984254e-14
This also fixes the MATLAB roots function to work with small roots. For example, roots([1,1,1,1e-32]) incorrectly gives a root of exact zero. roots_([1,1,1,1e-32]) gives the correct root of -1e-32.
(Reported as Case Number 04335183 on 30 Jun 2020 and Case Number 07198299 on 05 Aug 2024.)
Cite As
Kenneth Johnson (2026). roots_ (https://au.mathworks.com/matlabcentral/fileexchange/84280-roots_), MATLAB Central File Exchange. Retrieved .
General Information
- Version 1.1.2 (1.44 KB)
MATLAB Release Compatibility
- Compatible with any release
Platform Compatibility
- Windows
- macOS
- Linux
| Version | Published | Release Notes | Action |
|---|---|---|---|
| 1.1.2 | Fix problem with complex coefficients. (Replace find(logical(c)) with find(c~=0).) |
||
| 1.1.1 | Eliminate infinite roots. |
||
| 1.1.0 | Modified to work with poorly scaled polynomials. |
||
| 1.0.1 | Added tag "polynomial roots". |
||
| 1.0.0 |
