roots_
Version 1.1.2 (1.44 KB) by
Kenneth Johnson
roots_(c) works with poorly scaled polynomials and does not return zero when c(end) is nonzero.
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://uk.mathworks.com/matlabcentral/fileexchange/84280-roots_), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Created with
R2024a
Compatible with any release
Platform Compatibility
Windows macOS LinuxTags
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
