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