次の値関数をシミュレートしたい。
d は決定行列です
x=t+ベータ * w'
y=アルファ*(c+ベータ*v')
v=最大{x、y}
x>y の場合 v=x および x の場合 d= 2
a=ファイ * t+ベータ * w'
b=ファイ * c+ベータ * v'
w=max{a , b}
a>b の場合 w=a および a の場合 d= 2
ここで、右側の w' と v' は次の期間の値関数です。
決定行列 d を追跡する必要があります。
私はmatlabで次のコーディングを行いました。しかし、それは正しくないようです。コーディングの何が問題になっていますか?
t=1;
c=1.4;
alpha=0.5;
beta=0.8;
phi=2;
v=rand;
w=rand;
d=[0,0];
diff=100;
i=1;
%% Value Interation
while diff>0.00001
x=t+beta*v(i);
y=alpha*(c+beta*w(i));
a=phi*t+beta*v(i);
b=phi*c+beta*w(i);
if x>y
w1=x;
d(i,1)=2;
else
w1=y;
d(i,1)=1;
end
if a>b
v1=a;
d(i,2)=2;
else
v1=b;
d(i,2)=1;
end
diff=max(abs(w(i)-w1),abs(v(i)-v1));
i=i+1;
w(i)=w1;
v(i)=v1;
end