Errata for Miranda and Fackler
Applied Computational Economics and Finance
Last Updated: Wednesday, March 07, 2012
As of
Chapter 2
p. 13 (
Replace
Backward
and forward substitution yield the theoretical results x1=1-M-1
and x2= M-1+1+M-1(1-M-1).
with
Backward
and forward substitution here yield the results x2=(1+2M-1)/(1+M-1) and x1=2-x2.
Chapter 4
p. 60 (12/18/06)
Second paragraph of Section 4.1 change f(x1)<f(x2)
to f(x2)<f(x1)
Chapter 5
pp. 93 (1/26/08)
Replace
pj
represents the jth
prime number
with
pj
represents the square root of the jth prime number
p. 110 (9/23/05)
The value of f should be 0.025 not 0.06 to generate Figure 5.4.
Chapter 6
p. 133 (12/18/06)
In the matrix on the top of the
page, the (6,5)th element
should be 2 instead of 1
p. 137-8 (2/17/05)
In order to form spline approximants over the
interval
{(x1,x2)| -1 < x1
< 2, 4 < x2 < 9}
the code segment on the bottom of page 137 should read
fspace = fundefn('spli',[10 15],[-1 4],[2 9])
and the offset code segment on the top of page 138 should read
fspace = fundefn('spli',[10 15],[-1 4],[2 9], 1)
p. 140 (3/7/12)
Script and text give alpha=2 but the plot is for alpha=1. The plot can be
obtained by running demapp06.
p. 144 (2/17/05)
Script should plot residual function, but plots effective supply
instead. To correct, replace
splot = funeval(c,fspace,pplot);
plot(splot,pplot);
with
rplot = resid(c,pplot,fspace,alpha,eta);
plot(pplot,rplot)
p. 148 (5/20/09)
The last line of the first code fragment should read
r
= [r(:); x0(2)-s0; x1(2)];
p. 151
Exercise 6.5 makes more sense if rho
is 0.06 rather than 0.6 (an agent with a rate of time preference of 0.6 will
borrow heavily in youth and have to work like a dog for the rest of his life to
pay off his debts).
Chapter 7
p. 159
(1,0) and (a+1,s+1)
are reversed in definition of g(a,s,x).
Similarly p(0,0)-c and p(a,s+1)-k
are reversed in definition of f(a,s,x).
p. 184 (6/17/04)
The second line should read
S=(0:emax)’;
One should also add the line
m=length(e);
p.
197 (2/17/05)
In the first three instances of V(:,:) the second
argument should be 0 not 1. In the fourth instance it should be 1 not 0.
Chapter 8
p. 196 (12/18/08)
First two equations change
p. 209 (
Second equation, change subscript on f from i to p.
Chapter 9
p. 241 (
The first line of text should end
with “the model parameters price, kbar, gamma
and abar.”
The second line of the first full
paragraph should read:
“Here, the output price, long-run mean replacement cost, replacement cost mean
reversion rate, maximum asset age, replacement cost shock standard
deviation, and discount factor are specified, respectively:”
p. 244 (
In paragraph 2 the profit shock is incorrectly called a replacement cost
shock.
p. 247
Change definition of shock distribution to
[e,w] = qnwlogn(nshocks,-sigma^2/2,sigma^2);
p. 248 (11/21/2005)
Change computation of the LQ approximation to
estar = 1;
pstar = (sstar-xstar).^(-alpha);
[vlq,xlq] = lqapprox(model,snodes,sstar,xstar,pstar);
In the second full
paragraph, the words upward and downward are reversed.
p. 251
Change computation of the LQ approximation to
pstar = kappa - xstar^(-gamma);
[vlq,xlq] = lqapprox(model,snodes,sstar,xstar,pstar);
p. 257
Change definition of shock distribution to
[e,w] = qnwlogn(nshocks,-sigma^2/2,sigma^2);
p. 258
Change computation of the LQ approximation to
estar = 1;
pstar = a(1);
[vlq,xlq] = lqapprox(model,snodes,sstar,xstar,pstar);
p. 260 (12/15/08)
The diagonal elements of Sigma should be 0.04 rather than 0.4 (to make them
consistent with the code on p. 261)
p. 261-262 (12/18/06)
We’ve listed seven things to do and enumerated them 1, 2, 3, 4, 4, 5 and 6
(nobody’s perfect).
p. 262
Change computation of the LQ approximation to
pstar = [0 0];
[vlq,xlq,plq,ss,xx,pp]
= lqapprox(model,snodes,sstar,xstar,pstar);
p. 265
Change definition of shock distribution to
[e,w] = qnwlogn(nshocks,-sigma^2/2,sigma^2);
p. 265 (10/25/05)
Change definition of upper bound for S to
smax = [e(nshocks) xstar+3.0];
p. 266
Change computation of the LQ approximation to
estar = 1;
pstar = [xstar^(1-beta) alpha*(xstar-1)];
[vlq,xlq] = lqapprox(model,snodes,sstar,xstar,pstar);
p. 269
Change computation of the LQ approximation to
pstar = [pbar xstar(1)/(1-delta*rho)];
[vlq,xlq,plq,ss,xx,pp]
= lqapprox(model,snodes,sstar,xstar,pstar);
p.272 (7/27/05)
Change
model.T=T;
to
model.horizon=T;
p. 281
In case ‘f1’ after line fxx=zeros(n,m,m) insert
fxx(:,1,1)
= zeros(n,1)-gamma(2);
In case ‘f2’ after line fxx=zeros(n,m,m) insert
fxx(:,2,2)
= zeros(n,1)-gamma(2);
p. 284
Change last 4 lines with the following 6 lines
gx(:,1,:) = [(1-psi)*g1x psi*g2x];
gxx(:,1,1,1) =
(1-psi)*g1xx;
gxx(:,1,2,2) =
psi*g2xx;
g(:,2) = (1-psi)*g2 + psi*g1;
gx(:,2,:) = [psi*g1x
(1-psi)*g2x];
gxx(:,2,1,1) =
psi*g1xx;
p. 288
In case ‘f1’ replace fx and fxx lines with
fx = [px.*q1-p-kappa px.*q1];
fxx = zeros(n,m,m);
fxx(:,1,1) = pxx.*q1 -
2*px;
fxx(:,1,2) = pxx.*q1 - px;
fxx(:,2,1) = pxx.*q1 - px;
fxx(:,2,2) = pxx.*q1;
In case ‘f2’ replace fx and fxx lines with
fx = [px.*q2 px.*q2-p-kappa];
fxx = zeros(n,m,m);
fxx(:,1,1) = pxx.*q2;
fxx(:,1,2) = pxx.*q2-px;
fxx(:,2,1) = pxx.*q2-px;
fxx(:,2,2) = pxx.*q2-2*px;
Chapter 10
p. 317 (4/13/09)
In the second and third equations the (r-δ)
terms should be (r-δ-ν/2).
p. 322 (
Last line change V(S) to V(S,t).
p. 346 (12/18.06)
Fouth line from bottom change “change” to “charge”
p. 356
Fifth line of Section 10.5.3 change R+(S0,S0) to R+(S0,S1)
Chapter 11
p. 379
The syntax of finsolve changed to eliminate A and a outputs
Also first line of the last code fragment should be:
out = func(flag,s,additional
parameters)
(no t in argument list)
p. 381
Add following line at the top of the first code fragment:
a
= b;
Alternatively change last line on p. 380 to:
if hasdiv, a = Phii*delta; end
p. 382 (4/13/09)
The lines
case
'sigma'
out = sigma;
should be
case
'sigma'
out = sigma*S;
p. 429 (10/6/2005)
In equation in last full paragraph change +˝σ2 to -˝σ2
Appendix A
p. 459
On line 9 change y to x. Also in the definition of a norm ||x||=0 if and only if x=0.
p. 464 (1/1/05)
The definition of the inf
norm is incorrect. It should be maxi ∑j|Aij|
p. 471 (1/24/06)
The two equations at the bottom of the page both should have a 2 following
the integral signs.
Appendix B
p. 477
Last paragraph change 2x1
to 1x2
p. 482 (4/3/05;1/24/06)
9
lines from bottom change x to X
3 lines from botton change “<” to “>”
This code fragment is, in fact, rather stupid. A more interesting fragment (and
probably what was intended) is:
P=.25;
X=0;
DX=5;
while DX>1E-7;
DX=DX/2;
if cdfn(X)>P,
X=X-DX; else X=X+DX; end
disp(X)
end
This computes the 25th pecentile
of a standard normal distribution (cdfn is available
in the CompEcon Toolbox).