matlab
在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))
eps函数的一个用法是在需要考虑数字计算精度对结果的影响时,比如matlab中自带的求矩阵的秩的rank函数默认返回的是奇异值大于max(size(A))*eps(norm(A))的个数,比如下面代码执行的结果为U=[ -0.379274725817546 0.794481 0.0403 0.4725731 -0.5488 -0.4637 0.7853 -0.242 -0.7012 -0.865 -0.6589 -0.347273328675907 -0.253234469211253 -0.5784 -0.046 0.773559367084354];V=[-0.395899761267122 0.174787331274778 -0.893374215953781 -0.1644 -0.579336710586230 -0.8023 0.132 0.1623 -0.442564352640226 0.45279 0.2243 0.752 -0.558362918331707 0.348956259242386 0.436 -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)