用于单元测试的条件差、易于评估的总和

计算科学 数字 条件数 测试
2021-12-20 16:19:53

为了单元测试的目的,我正在寻找可以快速评估的不良条件和的示例。

我目前正在使用系列表示ln(2)

n=1(1)n+1n
它有一个无限求和条件数,但是在双精度下,我只能在大量的项(对于单元测试来说很糟糕)之后将条件数提高到~22,并且天真的求和的误差并不大。所以我猜这个总和在数值上是有条件的!

1个回答

sum的条件数s(x)=j=1nxj是(谁)给的

κ(x)=j=1n|xj||j=1nxj|=s(|x|)|s(x)|
并反映总和对输入中微小变化的敏感性。具体来说,我们有
limϵ0+sup{1ϵ|s(x+Δx)s(x)s(x)|:|Δxj|ϵ|xj|}=κ(x).
如果所有具有相同的符号,则和是良条件的。如果,但很大,那么和是病态的。一个很好的总和示例,它的条件很好理解是给出 这是阶泰勒多项式对于点处的自然指数函数。总和对于 x 的大负值是病态的,对于的所有正值是态的。如果为正且如此之大以至于xjs(x)0s(|x|)pn
pn(x)=j=0nxjj!
nx0=0xxxnpn(x)ex是一个很好的近似值,那么也是一个很好的近似值。简而言之,你有一个病态的总和,很容易获得一个好的近似值。1/expn(x)