Matlab数值精度与eps函数

2025-10-04 13:49:37

1、在matlab中通过eps函数来求解某数的浮点相对精度,下面给出示例代码

e1=eps 

e2=eps('double') 

e3=eps('single') 

e4=eps(1/2)

e5=eps(1)

e6=eps(2)

e7=eps(realmax)

e8=eps(0)

e9=eps(single(1/2))

e10=eps(single(1))

e11=eps(single(2))

e12=eps(realmax('single'))

e13=eps(single(0))

Matlab数值精度与eps函数

Matlab数值精度与eps函数

2、eps函数的一个用法是在需要考虑数字计算精度对结果的影响时,比如matlab中自带的求矩阵的秩的rank函数默认返回的是奇异值大于max(size(A))*eps(norm(A))的个数,比如下面代码执行的结果为

U=[

  -0.379274725817546   0.794481008161344   0.040314689302254   0.472573101068419

  -0.548121117865938  -0.158656907114637   0.785308487819421  -0.240170366475522

  -0.701132103179362  -0.096930884878865  -0.615158038749589  -0.347273328675907

  -0.253234469211253  -0.578128287711604  -0.056972731609046   0.773559367084354];

V=[-0.395899761267122   0.174787331274778  -0.893374215953781  -0.120810918891644

  -0.579336710586230  -0.801660599750723   0.083470911224132   0.121416084411623

  -0.442564352640226   0.452790460112304   0.183006779832243   0.752081186800241

  -0.558362918331707   0.348956259242386   0.401775603768836  -0.636424971841809];

A=U*diag([10 20 30 1e-15])*V';

def_tol=max(size(A))*eps(norm(A))

rA1=rank(A)

rA2=rank(A,1e-16)

Matlab数值精度与eps函数

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢