|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
eps是一个函数。当没有参数时默认参数是1.返回的是该参数的精度。( \& L9 P4 M9 f" B
也就是说单个的eps实际上是eps(1),表示的是1的精度。
0 ~: j' K* ~( l! ?+ D8 X这里要说一下精度的概念。浮点数所能表示的数值范围是很大的,但是浮点数不是无限3 m u, A1 z1 [
的,连续的和稠密的;而是有限的,离散的和稀疏的,而且每个数的精度都不一样。越3 [4 I: g3 B% B3 c; g1 h0 K8 k+ X
是靠近0,精度越高,反之则越低。eps返回的是1的精度。指的是1和离他最近的浮点数: U. S+ b$ Z) g, j: V7 |7 z9 I
之间的距离。
; Z7 B; V; f8 \9 k* q7 z我们输入eps可以看到1的精度。
& l# m: u9 |* l* S8 M, {! {$ y; Z" O
也就是说离他最近的浮点数和他相差eps(1)。我们可以计算1+eps,他就是离1最近的浮
( Q. Y* G7 T( `& L8 A7 @0 D点数。 8 J# ^) y2 @/ C
8 i; H& Y6 {: T% w
如果我们计算出的数介于这两者之间,系统就会自动把它舍入到离他最近的数。2 `: p* I: k3 y7 p% g
' r |1 b0 W( U+ S( G0 ?
. J4 J- B5 L( y4 d
1+eps*3/5离1+eps近,所以1+eps*3/5≈1+eps;1+eps*2/5离1近,所以1+eps*2/5≈1,2 s8 D @4 D" f, p
7 r. t: K0 Q- _- B% e; j7 C- P* z
( N3 C- m( ]0 o* `6 i4 w" }
而1+eps/2在正当中,系统自动把它舍入到1,即1+eps/2≈1
; V6 k! [ r# |. E
, J- |, Y9 s- l& l, r% Z5 T/ d- t5 ?! h5 @4 G3 U0 q
如果我们输入eps(2)可以看到2的精度,它只有1的精度的一半。即eps(2)=eps*2
; A) B3 U0 c s* ~4 W, U2 w1 P/ x: ^: X6 B. D
因此系统会认为2+eps≈2,而2+eps*6/5≈2+eps*2=2+eps(2) $ X# m- h2 C+ C/ w
|
|