Limitation on poly and roots functions?
Ältere Kommentare anzeigen
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
Akzeptierte Antwort
Weitere Antworten (1)
Walter Roberson
am 22 Jun. 2012
1 Stimme
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 Kommentare
Asim
am 23 Jun. 2012
Walter Roberson
am 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.
Kategorien
Mehr zu Polynomials finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!