Limitation on poly and roots functions?
Show older comments
Dear All,
I have a query regarding the maximum polynomial order that can be treated using "roots" or "poly" functions. I am facing following problem:
P= Polynomial of order N=512;
R=roots(P);
P1=poly( R );
Coefficients of P are not equal to P1.
Coefficients match for lower orders such as N=8, 16, 64, 128. I shall appreciate if anyone could explain this to me or suggest what I am missing here. Thanks in advance.
Asim
Accepted Answer
More Answers (1)
Walter Roberson
on 22 Jun 2012
1 vote
Round-off, I would expect. roots() is a numeric solver and so is limited to the precision of double precision numbers (about 53 bits). Multiply 512 double-precision numbers together, losing one bit of theoretical accuracy due to round-off per multiplication, and you are looking at accumulated error far far bigger than 53 bits of precision can hold.
2 Comments
Asim
on 23 Jun 2012
Walter Roberson
on 23 Jun 2012
Use the symbolic toolbox with a large number of decimal places. I estimate 155 significant figures would be required for complete reconstruction.
Categories
Find more on Polynomials in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!