请教matlab有关矩阵相乘的一个原理性问题!
我前几天在用matlab实现一个预报程序的过程中发现了matlab一个有趣神奇的现象,比如程序如下a=*';
b=1*2.4+(-1.4)*0.25+(-1.4)*1+0.3*0.5;
a-b
ans =
1.1102e-016
b只是a的矩阵相乘展开形式而已,为什么还会和a存在误差呢?我很不解,由于初始产生了这样的误差,到后面积累很大,很想知道这个误差产生原因,以及如何避免 help eps!! 这不仅仅是MATLAB的“神奇现象”,而是所有采用浮点计算机制的语言的共同的“神奇现象”,包括C/C++/Fortran等等。
楼主找本计算机语言基础的书看看就知道了。 想要没有误差,用符号变量,不过那样速度就下去了!
如果不是必须,建议还是不用符号变量的好! 这才神奇呢: 1/((1+10^-16)*10^16-10^16)-->Inf
理论上应该是1
VibrationMaster 发表于 2011-3-3 18:24 static/image/common/back.gif
这才神奇呢: 1/((1+10^-16)*10^16-10^16)-->Inf
理论上应该是1
好例子! 原因是 eps=2.2204e-016 > (10^-16)/1 !!
页:
[1]