Loop in Value Iteration Unrecognized by MATLAB

1 次查看(过去 30 天)
I am trying to solve a value iteration problem. I have a matrix, EV, with two columns which must be estimated seperately. However, my loop doesn't work and doesn't allow me to iterate past the initial guess value. Basically, nothing past comand "while" works. MATLAB doesn't return an error or anything, it just doesn't do anything.
%Algorithm
EV0 = zeros(90,2); %Guess initial value of 0.
EV0_0 = EV0(:,1); %Column where i =0.
EV0_1 = EV0(:,2); %Column where i=1.
V = log(exp(u_0 + beta*EV0_0) + exp(u_1 + beta*EV0_1));
EV1_1 = P1*V;
EV1_0 = P0*V;
EV1 = [EV1_0 EV1_1];
while abs(EV1 - EV0) > 0.01 % continue to iterate until convergence is achieved
EV0 = EV1;
EV0_0 = EV0(:,1); %Column where i =0.
EV0_1 = EV0(:,2); %Column where i=1.
V = log(exp(u_0 + beta*EV0_0) + exp(u_1 + beta*EV0_1));
EV1_1 = P1*V;
EV1_0 = P0*V;
EV1 = [EV1_0 EV1_1];
end
Any help to understand how exactly I can get the loop to work would be greatly appreciated!
  2 个评论
Jan
Jan 2021-10-25
We cannot run your program without the values of P0 and P1, beta, u_0 and u_1.
Laura Freitas
Laura Freitas 2021-10-26
That's alright, the issue has been resolved. Thank you for the attempt though!

请先登录,再进行评论。

采纳的回答

Laura Freitas
Laura Freitas 2021-10-26
For clarification, EV1, EV0, P0 and P1 are matrixes, while u_0 and u_1 are vectors. EV1 and EV0 are 2x175, P0 and P1 are 175x175 and u_0 and u_1 are 175x1.
I figured out the issue myself. The issue was that EV1 and EV0 are matrixes. Hence,
abs(EV1 - EV0)
is also a matrix and does it makes no sense to compare it to a single number epsilon.
I fixed my code by setting:
V = max(max(abs(EV1 - EV0))); %The maximum difference between any two elements of EV1 and EV0
while V > epsilon
EV0 = EV1;
EV0_0 = EV0(:,1); %Column where i =0.
EV0_1 = EV0(:,2); %Column where i=1.
V = log(exp(u_0 + beta*EV0_0) + exp(u_1 + beta*EV0_1));
EV1_0 = P0*V;
EV1_1 = P1*V;
EV1 = [EV1_0 EV1_1];
V = max(max(abs(EV1 - EV0)));
end

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by