Excel:如果在某些空间布局中input循环计算将不会收敛

我用Excel循环计算发现了一个奇怪的行为。 启用后(通过选项),循环引用可用于迭代。 在我的例子中,我使用了牛顿的方法 。 我看到的问题是当我在一定的空间布局中input单元格公式时,迭代不会收敛。 如果我使用不同的布局, 它会收敛 。 这是一个错误,还是我错过了什么? 以下是如何重现它(Excel 2010,2011testing):

f(x)= x * ln(x)

  1. 新的Excel工作簿。
  2. 创build一个“水平”布局:

    2.1制作标签。 在单元格A1-F1中,写入x_start,x_old,x_new,f(x),f'(x),f-goal

    2.2设置单元格公式(按此顺序):

    • A2 = 4
    • B2 = IFERROR(C2,A2)
    • C2 = B2-D2 / E2
    • D2 = B2 * LN(B2)-F2
    • E2 = LN(B2)+1
    • F2 = 10
  3. 创build一个“垂直”布局:

    3.1制作标签。 在单元格A4-A9中,写入x_start,x_old,x_new,f(x),f'(x),f-goal

    3.2设置单元格公式(按此顺序):

    • B4 = 4
    • B5 = IFERROR(B6,B4)
    • B6 = B5-B7 / B8
    • B7 = B5 * LN(B5)-B9
    • B8 = LN(B5)+1
    • B9 = 10
  4. 创build一个“双列”布局:

    4.1制作标签。 在单元格E4-E6中,写入x_start,x_old,x_new。 在单元格H4-H6中写入f-目标f(x),f'(x)。

    4.2设置单元格公式(按此顺序):

    • F4 = 4
    • F5 = IFERROR(F6,F4)
    • F6 = F5-G5 / G6
    • G5 = F5 * LN(F5)-G4
    • G6 = LN(F5)+1
    • G4 = 10

解决scheme应收敛在x_old和x_new在约5.728926,其中f(x)几乎为零。 现在按F9或Shift-F9重新计算单元格值。 它只收敛于“双列”布局,意味着价值观不会改变(几乎没有)。 水平和垂直布局随机更改数字,不要接近答案。

你可以检查上面的公式对于预期的variables是完全一样的(通过为每个布局分配x_old单元格来确定一个固定的值,数字将完美匹配)。我是疯了还是这是一个错误?

Excel对循环引用使用不同的计算过程。

循环中的单元格从左到右和从上到下计算,直到达到最大迭代或更改限制。

所以这可能是为什么融合依赖于空间安排(但我没有详细看你的例子)。

有关更多详情,请参阅http://www.decisionmodels.com/calcsecretsc.htm