Aberth–Ehrlich方法的Delphi实现和精度误差

问题描述

我实现了Aberth–Ehrlich method来查找多项式的所有根(实际上,这是特征值查找的步骤之一)。 在25度以下时效果很好。 但是,当度数较大时,我的Delphi计算就开始失败。 我很确定这是因为在计算过程中积累了非常小的数字错误

对于算法需求,我已经基于TComplex = record … end;开发了Double结构。 当基本数据类型为Extended时,得到的结果相同。

我非常确定问题不是算法,因为当我将TComplex更新为使用MPArith multi precision library时,我得到的结果与Octave和{{ 1}}程序-因此我认为它们是正确的。 但是在这种情况下,计算时间是很漫长的。

所以我的问题是: 您知道如何绕过Delphi中的多精度问题吗? 您是否认为,如果我将计算的实现移植到另一种编程语言(例如MatlabC++或其他任何一种编程语言)上,我将不会对计算的精度产生任何疑问? 当然,我必须将其包装到C#中才能在dll代码调用

欢迎任何想法。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)