Limitation on poly and roots functions?
显示 更早的评论
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
采纳的回答
更多回答(1 个)
Walter Roberson
2012-6-22
1 个投票
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 个评论
Asim
2012-6-23
Walter Roberson
2012-6-23
Use the symbolic toolbox with a large number of decimal places. I estimate 155 significant figures would be required for complete reconstruction.
类别
在 帮助中心 和 File Exchange 中查找有关 Linear Algebra 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!