matlab的eps

来源:互联网 发布:有没有销售软件 编辑:程序博客网 时间:2024/04/27 21:39

eps = 2^(-52), which is roughly 2.22e-16.

     B =

               8     7     6     5     4     3     2     1     0

          » B=B+(B==0)*eps

          B =
            Columns 1 through 7
              8.0000    7.0000    6.0000    5.0000    4.0000    3.0000    2.0000
            Columns 8 through 9
              1.0000    0.0000
    这是一个演示,表明如何用特殊的MATLABeps来代替在一个数组中的零元素,eps近似为2.2e-16。这种特殊的表达式在避免被0除时是很有用的。
 » x=(-3:3)/3

          x =

             -1.0000   -0.6667   -0.3333         0    0.3333    0.6667    1.0000

          » sin(x)./x

          Warning: Divide by zero

          ans =

              0.8415    0.9276    0.9816       NaN    0.9816    0.9276    0.8415

 

    由于第四个数据是0 ,计算函数sin(x)/x时给出了一个警告。由于sin(0)/0是没定义的,在该处MATLAB结果返回NaN。用eps替代0以后,再试一次,

 

          » x=x+(x==0)*eps;

          » sin(x)./x

          ans =

              0.8415    0.9276    0.9816    1.0000    0.9816    0.9276    0.8415

 

现在sin(x)/x在x=0处给出了正确的极限。

h=sin(0.3*pi*(n-a))./(pi*(n-a+eps)); 防止出现n=a即除数为零的情况。
原创粉丝点击