Python 递归方程不收敛

Python 递归方程不收敛,python,numpy,recursion,recurrence,Python,Numpy,Recursion,Recurrence,我想解下面的递归方程(贝尔曼方程),但方程不收敛。 有办法解决这个问题吗 n = 101; beta = 0.9; r = 0.7 w = np.linspace(0,1,num=n); l = np.linspace(0,1,num=n) VL = np.zeros(n); VR = np.ones(n) VL2 = np.zeros(n); VR = np.ones(n) lbest_pos = [0]*n def u(w,l): return r*(w*(1-l)) + (1-r)

我想解下面的递归方程(贝尔曼方程),但方程不收敛。 有办法解决这个问题吗

n = 101; beta = 0.9; r = 0.7
w = np.linspace(0,1,num=n); l = np.linspace(0,1,num=n) 
VL = np.zeros(n); VR = np.ones(n)
VL2 = np.zeros(n); VR = np.ones(n)
lbest_pos = [0]*n

def u(w,l):
  return r*(w*(1-l)) + (1-r)*l

while np.linalg.norm(VL2-VR2) > 0.000001:
  VR2 = VL2.copy()
  for i in range(n):
    temp = [ u(w[i], l[k]) + beta * VR2[k] for k in range(n)]
    lbest_pos[i] = np.argmax(temp) 
    VL2[i] = temp[lbest_pos[i]]

while np.linalg.norm(VL-VR) > 0.000001:
  VR = VL.copy()
  for i in range(len(w)):
    VL[i] = max(VL2[i], u(w[i],1) + sum(VR)/n )


如果这是一个数学问题,这是关于堆栈溢出的离题(在本例中,将问题发布在上)。如果这是一个编程问题,很可能是由于浮点。你可以用小数来检验这个假设。否则,它可能是代码中某个地方的错误。问题是代码不可复制:缺少变量。请提供一个完整的可复制示例。