3
我需要高精度的项目,我正在努力。 从其减去当我的问题在这里说明:MATLAB的精度,减少
>> 1-0.9999999999999999
ans = 1.1102e-16
>> 1-0.99999999999999999
ans = 0
我知道这是涉及到双精度。无论如何,我可以得到更高的精度? 我检查了“vpa”功能,但我无法设法获得更高的精度。 有人可以帮助我吗?
预先感谢您!
我需要高精度的项目,我正在努力。 从其减去当我的问题在这里说明:MATLAB的精度,减少
>> 1-0.9999999999999999
ans = 1.1102e-16
>> 1-0.99999999999999999
ans = 0
我知道这是涉及到双精度。无论如何,我可以得到更高的精度? 我检查了“vpa”功能,但我无法设法获得更高的精度。 有人可以帮助我吗?
预先感谢您!
Matlab内部使用双精度64位系统来解决精度问题。确实存在对matlab的扩展,允许您使用任意精度算术。例如参见 this question。
你有没有安装Matlab的符号数学工具箱? – 2014-10-20 16:03:27
尝试'vpa('1-0.9999999999999999')'(注意引号)。 'vpa(1-0.9999999999999999)'不起作用,因为'0.999999999999999999'首先转换为'double' – 2014-10-20 16:06:06
备注:'vpa'需要符号数学工具箱,高性能标记最终不可避免地指向它。 Luis也很好! – rayryeng 2014-10-20 16:18:42