问题描述
我想求解下面的递归方程(贝尔曼方程),但方程不收敛。 有什么办法可以解决这个问题吗?
n = 101; beta = 0.9; r = 0.7
w = np.linspace(0,1,num=n); l = np.linspace(0,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 )
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)