roots_

版本 1.1.2 (1.4 KB) 作者: Kenneth Johnson
roots_(c) works with poorly scaled polynomials and does not return zero when c(end) is nonzero.
12.0 次下载
更新时间 2024/8/25

查看许可证

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.)

引用格式

Kenneth Johnson (2024). roots_ (https://www.mathworks.com/matlabcentral/fileexchange/84280-roots_), MATLAB Central File Exchange. 检索来源 .

MATLAB 版本兼容性
创建方式 R2024a
兼容任何版本
平台兼容性
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
版本 已发布 发行说明
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