【发布时间】:2017-10-16 07:27:31
【问题描述】:
我想迭代解决以下问题(当然使用 scipy/numpy):
(x_n+1)^2 = ((x_n)^2 + x_n+1) + 1
where x_0 = 1 and x_n > 0 for all n
并找到第一个 20 迭代 (x_1, x_2,..., x_20)
更准确地说,在每次迭代中,我们都有一个 X^2 - X - ((x_n)^2 + 1) 形式的二次方程。我想继续寻找第一次10 迭代的正根。例如当我们得到n = 0,
x_1^ - x_1 - 2 = 0
我们可以将其输入到求解器中,例如 scipy.optmize.root,以找到 x_1。将求解器中的该值用于下一次迭代等。我什至不知道如何开始编写此类问题的代码。有什么帮助吗?
一点数学知识:上述一般二次方程的判别式是正数,所以我们确实有真正的解。
【问题讨论】:
-
当您可以应用二次公式时,我认为没有任何理由使用像
scipy.optimize.root这样的通用根查找器。 -
实际上我要解决的问题更复杂,在这种情况下,不可能有一个明确的解决方案公式。在尝试完整解决方案之前,我想使用这个玩具箱。我将添加更多详细信息...