为什么平均阻尼能神奇地加速定点计算器的收敛速度?
我正在阅读 SICP,作者复习了计算函数不动点时的平均阻尼技术。我知道在某些情况下这是必要的,即平方根以抑制函数 y = x/y 的振荡,但是,我不明白为什么它神奇地帮助固定的收敛点计算功能。帮助?
编辑
显然,我已经对此进行了一定的思考。我似乎无法理解为什么在重复应用时对函数本身进行平均会加速收敛。
I'm reading through SICP, and the authors brush over the technique of average damping in computing the fixed points of functions. I understand that it's necessary in certain cases, ie square roots in order to damp out the oscillation of the function y = x/y
however, I don't understand why it magically aids the convergence of the fixed point calculating function. Help?
edit
Obviously, I've thought this through somewhat. I can't seem to wrap my head around why averaging a function with itself would speed up convergence when applied repeatedly.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
虽然我无法从数学角度回答你的问题,但我会尝试一个直观的问题:
固定点技术需要围绕其……好吧……固定点有一个“平坦”的函数图。这意味着:如果您在 XY 图表上描绘固定点函数,您将看到该函数恰好在真实结果处穿过对角线 (+x,+y)。在固定点算法的一个步骤中,您需要猜测一个 X 值,该值需要位于一阶导数位于 (-1..+1) 之间的交点周围的区间内,并取 Y 值。您采用的 Y 将更接近交点,因为从交点开始,可以通过沿着斜率小于 +/-1 的路径到达,这与之前的 X 值相比你利用了,从这个意义上来说,它的斜率是-1。现在很明显,当使用 Y 作为新的 X 时,斜率越小,就越接近交点(真实函数值)。最好的插值函数通常是一个常数,其斜率为 0,给你第一步的真实值。
向所有数学家表示歉意。
While I can't answer your question on a mathematical basis, I'll try on an intuitive one:
fixpoint techniques need a "flat" function graph around their ..well.. fixpoint. This means: if you picture your fixpoint function on an X-Y chart, you'll see that the function crosses the diagonal (+x,+y) exactly at the true result. In one step of your fixpoint algorithm you are guessing an X value which needs to be within the interval around the intersection point where the first derivative is between (-1..+1) and take the Y value. The Y that you took will be closer to the intersection point because starting from the intersection it is reachable by following a path which has a smaller slope than +/-1 , in contrast to the previous X value that you utilized, which has in this sense, the exact slope -1. It is immediately clear now that the smaller the slope, the more way you make towards the intersection point (the true function value) when using the Y as new X. The best interpolation function is trivially a constant, which has slope 0, giving you the true value in the first step.
Sorry to all mathematicians.
它只会加速那些重复应用程序在固定点“跳跃”的函数。直观地说,这就像给钟摆加了一个制动器——有了制动器,它就会更快地停止。
但并非每个函数都具有此属性。考虑
f(x)=x/2
。如果没有平均阻尼(以对数为底 2 步 vs 以对数为底 (4/3) 步),此函数将更快收敛,因为它从一侧接近固定点。It only speeds up those functions whose repeated applications "hop around" the fixpoint. Intuitively, it's like adding a brake to a pendulum - it'll stop sooner with the brake.
But not every function has this property. Consider
f(x)=x/2
. This function will converge sooner without the average damping (log base 2 steps vs log base (4/3) steps), because it approaches the fixpoint from one side.