|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
eps是一个函数。当没有参数时默认参数是1.返回的是该参数的精度。
, O* U; g" q+ ?9 L. v' l& w, Z也就是说单个的eps实际上是eps(1),表示的是1的精度。
9 K, z0 x( [/ _/ v' n/ O+ b这里要说一下精度的概念。浮点数所能表示的数值范围是很大的,但是浮点数不是无限" O/ A% o. `) h4 a, c& y: [! X
的,连续的和稠密的;而是有限的,离散的和稀疏的,而且每个数的精度都不一样。越
9 ^3 Q- t: C" }2 [" }" {, h是靠近0,精度越高,反之则越低。eps返回的是1的精度。指的是1和离他最近的浮点数5 ]0 U& K3 L/ }% k
之间的距离。
' Q6 P9 u/ R1 A8 Q" g2 r我们输入eps可以看到1的精度。
, u0 `: p1 L, f( k# K
( |+ f# w1 A2 W也就是说离他最近的浮点数和他相差eps(1)。我们可以计算1+eps,他就是离1最近的浮
4 }5 b1 \* u5 u }4 Z7 B2 t4 H; j- g点数。
$ h% T7 l7 L) H5 i
# J, v, }/ H5 H如果我们计算出的数介于这两者之间,系统就会自动把它舍入到离他最近的数。
- _% k5 C- N4 E7 c; @! H4 y" ~, ]7 ]$ T
& O3 L2 L* t1 H
1+eps*3/5离1+eps近,所以1+eps*3/5≈1+eps;1+eps*2/5离1近,所以1+eps*2/5≈1,: c0 s3 B7 h; s X7 s* x: l8 V
, b. ]# ?, x- M: f
6 w( _0 s3 s6 m/ F* p' f& r! ^: a
而1+eps/2在正当中,系统自动把它舍入到1,即1+eps/2≈1
" R; ]2 Q0 Q+ c y, h# ?. G1 G( k H# [- n7 y; e1 |8 ]
) n* a5 ?9 L& G& B, S6 v0 V8 Z
如果我们输入eps(2)可以看到2的精度,它只有1的精度的一半。即eps(2)=eps*2 . z o/ ^2 y5 [% `! n
6 T4 n2 _2 P* \( x0 D因此系统会认为2+eps≈2,而2+eps*6/5≈2+eps*2=2+eps(2) " s' X; G9 Y" G5 | G; ?
|
|