Why have negative value in result
Mostrar comentarios más antiguos
Hello,
In the following code, I try to exclude the case when there is any element of the vector "kseq" in my code. So, I expect the "kseq" achived should have all positive element.
But I dont know why in the result, I still got negative value for some elements of that vector "kseq".
If anyone can see what I did wrong with my code, plz kindly let me know. Thank you!
alpha = 1/3;
beta = 0.9999;
sigma = 0.001;
delta = 0.1;
% Horizon
T=200;
kseq=zeros(T+1,1);
cseq=zeros(T+1,1);
kseq(1)=((alpha*beta)/(1-beta+delta*beta))^(1/(1-alpha));
cguessl=1;
cguessh=6;
iter=0;
tol=0.01;
gapk=1;
while gapk > 0.01 && iter < 1000
cguess=0.5*(cguessl+cguessh);
cseq(1)=cguess;
for i = 2:T+1
kseq(i) = (kseq(i-1))^alpha+(1-delta)*kseq(i-1)-cseq(i-1);
if kseq(i)<0; flag=1; break; end;
cseq(i)=(beta*(1+alpha*(kseq(i))^(alpha-1)-delta))^sigma*cseq(i-1);
end
if flag==0 & kseq(T+1) >0
cguessl=cguess;
else
cguessh=cguess;
end
gapk = abs(kseq(T+1));
iter=iter+1;
end
Respuestas (2)
madhan ravi
el 29 de Dic. de 2018
kseq(i) = (kseq(i-1))^alpha+(1-delta)*kseq(i-1)-cseq(i-1);
^^^^^^^^^---- if greater than the other values the result would be negative
1 comentario
heidi pham
el 29 de Dic. de 2018
John D'Errico
el 29 de Dic. de 2018
Editada: John D'Errico
el 29 de Dic. de 2018
LEARN TO USE THE DEBUGGER!
If I step through your code, when i == 4, I get to this point:
i
i =
4
K>> [kseq(1:i),cseq(1:i)]
ans =
6.0767 3.5
3.7938 3.5001
1.474 3.5006
0 0
That is just before kseq(4) is assigned. What will it be?
(kseq(i-1))^alpha+(1-delta)*kseq(i-1)-cseq(i-1)
ans =
-1.036
USE THE DEBUGGER! It was put there for you to use. What you are doing and why, I have no clue, because it is impossible to understand uncommented code, to know if it should be written differently.
1 comentario
per isakson
el 29 de Dic. de 2018
Categorías
Más información sobre Logical en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!