Applied Computational Economics and Finance Mario J. Miranda The Ohio State University
and
Paul L. Fackler North Caro...

This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!

Applied Computational Economics and Finance Mario J. Miranda The Ohio State University

and

Paul L. Fackler North Carolina State University

Contents Preface

xii

1 Introduction

1

2 Computer Basics and Linear Equations

8

1.1 Some Apparently Simple Questions . . . . . . . . . . . . . . . . . . . 1.2 An Alternative Analytic Framework . . . . . . . . . . . . . . . . . . . Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Computer Arithmetic . . . . . . . . . . . . . 2.2 Data Storage . . . . . . . . . . . . . . . . . 2.3 Linear Equations and the L-U Factorization 2.4 Gaussian Elimination . . . . . . . . . . . . . 2.5 Rounding Error . . . . . . . . . . . . . . . . 2.6 Ill Conditioning . . . . . . . . . . . . . . . . 2.7 Special Linear Equations . . . . . . . . . . . 2.8 Iterative Methods . . . . . . . . . . . . . . . Exercises . . . . . . . . . . . . . . . . . . . . . . . Bibliographic Notes . . . . . . . . . . . . . . . . .

3 Nonlinear Equations

3.1 Bisection Method . . . . . . . . . 3.2 Function Iteration . . . . . . . . . 3.3 Newton's Method . . . . . . . . . 3.4 Quasi-Newton Methods . . . . . . 3.5 Problems With Newton Methods 3.6 Choosing a Solution Method . . . 3.7 Complementarity Problems . . . 3.8 Complementarity Methods . . . . Exercises . . . . . . . . . . . . . . . . . Bibliographic Notes . . . . . . . . . . . i

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

1 3 5

8 12 13 17 19 20 22 23 25 28

30

31 33 35 39 43 46 48 51 55 62

CONTENTS

ii

4 Finite-Dimensional Optimization 4.1 Derivative-Free Methods . 4.2 Newton-Raphson Method 4.3 Quasi-Newton Methods . . 4.4 Line Search Methods . . . 4.5 Special Cases . . . . . . . 4.6 Constrained Optimization Exercises . . . . . . . . . . . . . Bibliographic Notes . . . . . . .

. . . . . . . .

. . . . . . . .

5 Integration and Dierentiation

. . . . . . . .

5.1 Newton-Cotes Methods . . . . . 5.2 Gaussian Quadrature . . . . . . 5.3 Monte Carlo Integration . . . . 5.4 Quasi-Monte Carlo Integration . 5.5 An Integration Toolbox . . . . . 5.6 Numerical Dierentiation . . . . 5.7 Initial Value Problems . . . . . Exercises . . . . . . . . . . . . . . . . Bibliographic Notes . . . . . . . . . .

6 Function Approximation 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

Interpolation Principles . . . . . . . . Polynomial Interpolation . . . . . . . Piecewise Polynomial Splines . . . . Piecewise-Linear Basis Functions . . Multidimensional Interpolation . . . Choosing an Approximation Method An Approximation Toolkit . . . . . . Solving Functional Equations . . . . 6.8.1 Cournot Oligopoly . . . . . . 6.8.2 Function Inverses . . . . . . . 6.8.3 Boundary Value Problems . . Exercises . . . . . . . . . . . . . . . . . . . Bibliographic Notes . . . . . . . . . . . . .

7 Discrete State Models

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

63

64 68 70 74 77 79 83 93

94

95 97 100 102 104 107 114 121 126

127

128 131 137 143 145 149 150 158 159 162 164 172 176

177

7.1 Discrete Dynamic Programming . . . . . . . . . . . . . . . . . . . . . 178 7.2 Economic Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 7.2.1 Mine Management . . . . . . . . . . . . . . . . . . . . . . . . 180

CONTENTS 7.2.2 Asset Replacement - I . . . . . . . . 7.2.3 Asset Replacement - II . . . . . . . . 7.2.4 Option Pricing . . . . . . . . . . . . 7.2.5 Job Search . . . . . . . . . . . . . . . 7.2.6 Optimal Irrigation . . . . . . . . . . 7.2.7 Optimal Growth . . . . . . . . . . . 7.2.8 Renewable Resource Problem . . . . 7.2.9 Bioeconomic Model . . . . . . . . . . 7.3 Solution Algorithms . . . . . . . . . . . . . . 7.4 Dynamic Simulation Analysis . . . . . . . . 7.5 A Discrete Dynamic Programming Toolbox . 7.6 Numerical Examples . . . . . . . . . . . . . 7.6.1 Mine Management . . . . . . . . . . 7.6.2 Asset Replacement - I . . . . . . . . 7.6.3 Asset Replacement - II . . . . . . . . 7.6.4 Option Pricing . . . . . . . . . . . . 7.6.5 Job Search . . . . . . . . . . . . . . . 7.6.6 Optimal Irrigation . . . . . . . . . . 7.6.7 Optimal Growth . . . . . . . . . . . 7.6.8 Renewable Resource Problem . . . . 7.6.9 Bioeconomic Model . . . . . . . . . . Exercises . . . . . . . . . . . . . . . . . . . . . . .

8 Continuous State Models: Theory

iii . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

8.1 Continuous State Dynamic Programming . . . . . . . 8.2 Continuous State Discrete Choice Models . . . . . . . 8.2.1 Asset Replacement . . . . . . . . . . . . . . . 8.2.2 Timber Cutting . . . . . . . . . . . . . . . . . 8.2.3 American Option Pricing . . . . . . . . . . . . 8.2.4 Industry Entry and Exit . . . . . . . . . . . . 8.2.5 Job Search . . . . . . . . . . . . . . . . . . . . 8.3 Continuous State Continuous Choice Models . . . . . 8.3.1 Optimal Economic Growth . . . . . . . . . . . 8.3.2 Public Renewable Resource Management . . . 8.3.3 Private Nonrenewable Resource Management . 8.3.4 Optimal Water Management . . . . . . . . . . 8.3.5 Optimal Monetary Policy . . . . . . . . . . . 8.3.6 Production-Adjustment Model . . . . . . . . . 8.3.7 Production-Inventory Model . . . . . . . . . . 8.3.8 Optimal Feeding . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

181 182 183 184 185 186 187 188 189 193 195 198 198 201 202 202 204 206 208 208 208 210

218

219 221 221 222 222 223 224 225 227 229 230 231 233 234 235 236

CONTENTS 8.4 Linear-Quadratic Control . . . . . . 8.5 Dynamic Games . . . . . . . . . . . 8.5.1 Capital-Production Game . 8.5.2 Risk-Sharing Game . . . . . 8.5.3 Marketing Board Game . . 8.6 Rational Expectations Models . . . 8.6.1 Asset Pricing Model . . . . 8.6.2 Competitive Storage . . . . 8.6.3 Government Price Controls Exercises . . . . . . . . . . . . . . . . . .

iv . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

9 Continuous State Models: Methods 9.1 9.2 9.3 9.4

Traditional Solution Methods . . . . . . . . . . . . . The Collocation Method . . . . . . . . . . . . . . . . Postoptimality Analysis . . . . . . . . . . . . . . . . Computational Examples . . . . . . . . . . . . . . . . 9.4.1 Asset Replacement . . . . . . . . . . . . . . . 9.4.2 Timber Cutting . . . . . . . . . . . . . . . . . 9.4.3 Optimal Economic Growth . . . . . . . . . . . 9.4.4 Public Renewable Resource Management . . . 9.4.5 Private Nonrenewable Resource Management . 9.4.6 Optimal Monetary Policy . . . . . . . . . . . 9.4.7 Production-Adjustment Model . . . . . . . . . 9.5 Dynamic Game Methods . . . . . . . . . . . . . . . . 9.5.1 Capital-Production Game . . . . . . . . . . . 9.5.2 Income Redistribution Game . . . . . . . . . . 9.6 Rational Expectations Methods . . . . . . . . . . . . 9.6.1 Asset Pricing Model . . . . . . . . . . . . . . 9.6.2 Competitive Storage . . . . . . . . . . . . . . 9.7 Comparison of Solution Methods . . . . . . . . . . . Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10 Continuous Time - Theory & Examples 10.1 Arbitrage Based Asset Valuation . 10.2 Stochastic Control . . . . . . . . . 10.2.1 Boundary Conditions . . . . 10.2.2 Choice of the Discount Rate 10.2.3 Euler Equation Methods . . 10.2.4 Examples . . . . . . . . . . 10.3 Free Boundary Problems . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

237 239 240 241 241 242 244 245 247 249

257

258 260 269 271 271 274 276 281 284 288 292 296 301 305 309 313 315 320 322

330

330 338 340 342 344 345 355

CONTENTS

v

10.3.1 Impulse Control . . . . . . . . . . . . . . . . . . . . . . . . 10.3.2 Barrier Control . . . . . . . . . . . . . . . . . . . . . . . . 10.3.3 Discrete State/Control Problems . . . . . . . . . . . . . . 10.3.4 Stochastic Bang-Bang Problems . . . . . . . . . . . . . . . Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Appendix A: Dynamic Programming and Optimal Control Theory . . . Appendix B: Deriving the Boundary Conditions for Resetting Problems Appendix C: Deterministic Bang-Bang Problems . . . . . . . . . . . . Bibliographic Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11 Continuous Time - Methods

11.1 Solving Arbitrage-based Valuation Problems 11.1.1 Extensions and Re nements . . . . . 11.2 Solving Stochastic Control Problems . . . . 11.3 Free Boundary Problems . . . . . . . . . . . 11.3.1 Multiple Value Functions . . . . . . . 11.3.2 Finite Horizon Problems . . . . . . . Exercises . . . . . . . . . . . . . . . . . . . . . . . Bibliographic Notes . . . . . . . . . . . . . . . . .

A Mathematical Background A.1 A.2 A.3 A.4 A.5

Normed Linear Spaces . . . . . . . . . . Matrix Algebra . . . . . . . . . . . . . . Real Analysis . . . . . . . . . . . . . . . Markov Chains . . . . . . . . . . . . . . Continuous Time Mathematics . . . . . . A.5.1 Ito Processes . . . . . . . . . . . A.5.2 Forward and Backward Equations A.5.3 The Feynman-Kac Equation . . . Bibliographic Notes . . . . . . . . . . . . . . .

B A MATLAB Primer B.1 B.2 B.3 B.4 B.5 B.6

The Basics . . . . . . . . . . . . . . . Conditional Statements And Looping Scripts and Functions . . . . . . . . . Debugging . . . . . . . . . . . . . . . Other Data Types . . . . . . . . . . . Programming Style . . . . . . . . . .

Web Resources

. . . . . .

. . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

357 361 363 369 376 388 390 392 395

397

398 401 408 419 430 443 452 461

463

463 466 468 470 471 471 475 478 480

481

481 486 487 492 494 495

497

CONTENTS

vi

References

498

Index

503

List of Tables 5.1. Errors for Selected Quadrature Methods . . . . . . . . . . . . . . . . . 98 5.2. Approximation Errors for Alternative Quasi-Monte Carlo Methods . . 103 6.1. Errors for Selected Interpolation Methods . . . . . . . . . . . . . . . . 150 7.1 Optimal Labor Participation Rule . . . . . . . . . . . . . . . . . . . . 206 7.2 Survival Probabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 7.3 Optimal Foraging Strategy . . . . . . . . . . . . . . . . . . . . . . . . 211 9.1 Execution Times and Approximation Error for Selected ContinuousSpace Approximation Methods . . . . . . . . . . . . . . . . . . . . . . 323 10.1. Known Solutions to the Optimal Harvesting Problem . . . . . . . . . 346 10.2. Types of Free Boundary Problems . . . . . . . . . . . . . . . . . . . 355 11.1. Option Pricing Approximation Errors . . . . . . . . . . . . . . . . . 407

vii

List of Figures 3.1. demslv10 . 3.2. demslv11 . 3.3. demslv11 . 3.4. demslv12 . 3.5. demslv11 . 3.6. demslv12 . 3.7. demslv13 . 3.8. demslv14 . 3.9. demslv15 . 3.10. demslv16

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

34 35 36 39 40 43 50 52 53 55

4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 4.8.

demopt01 . demopt02 . demopt03 . demopt04 . demopt04 . demopt05 . demopt06 . demopt06 .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

66 67 69 74 75 76 80 81

5.1. 5.2. 5.3. 5.4. 5.5.

demqua01 demqua01 demdif01 . demdif02 . demdif03 .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

104 105 111 112 119

6.1. 6.2. 6.3. 6.4. 6.5.

demapp01 demapp02 demapp01 demapp01 demapp01

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

132 133 134 135 139

viii

LIST OF FIGURES 6.6. demapp01 6.7. demapp04 6.8. demapp04 6.9. demapp05 6.10. demapp05 6.11. demapp05 6.12. demapp05 6.13. demapp06 6.14. demapp09 6.15. demapp09 6.16. demapp09 6.17. demapp10 6.18. demapp10 6.19. dembvp02 6.20. dembvp02

ix . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

141 142 143 152 153 154 155 157 162 163 164 165 166 170 171

7.1. demddp01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 7.2. demddp04 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 7.3. demddp06 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 9.1. demdp01 . . 9.2. demdp02 . . 9.3. demdp07 . . 9.4. demdp08 . . 9.5. demdp09 . . 9.6. demdp11 . . 9.7. demdp12 . . 9.8. demgame01 . 9.9. demgame02 . 9.10. demrem01 . 9.11. demrem02 .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

273 276 279 283 286 291 294 305 308 315 319

10.1. demfb05 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 11.1. 11.2. 11.3. 11.4. 11.5. 11.6. 11.7.

dem n01 dem n01 dem n02 demsc1 . demsc03 . demsc03 . demfb01 .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

401 402 408 415 420 420 425

LIST OF FIGURES 11.8. demfb02 . 11.9. demfb02 . 11.10. demfb03 11.11. demfb03 11.12. demfb03 11.13. demfb03 11.14. demfb04 11.15. demfb04 11.16. demfb04 11.17. dem n04 11.18. dem n04 11.19. dem n04 11.20. demfb05

x . . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

429 429 433 435 437 437 442 442 443 446 446 447 451

LIST OF FIGURES

xi

Glossary of Matlab Terms A list of Matlab terms used in this text. For a complete list, see mentation. chol diag disp eps eye feval nd inline inv length norm rand randn realmax reshape sum tril triu

Matlab

docu-

computes the Cholesky decomposition of a symmetric positive de nite matrix returns the diagonal elements of a matrix as a vector displays results on the screen machine precision (the largest number that, added to 1, returns 1) returns an order n identity matrix: In=eye(n) evaluates a function referred to by name: feval(f,x,y) produces an index of values meeting a stated condition: find([-1 3 2 0]>=0) returns [2 4] creates a function from a string that behaves like a function le: f=inline('x.^2+2*y','x','y')

matrix inverse the number of elements in a vector: length([0 5 2]) returns 3 vector or matrix norm (default is the 2-norm) produces random uniformly distributed values on [0,1]: x=rand(m,n) produces random standard normal (Gaussian) variates: x=randn(m,n) the largest real number representable in Matlab changes the size of a matrix without changing the total number of elements: reshape([1 1;1 1;2 2;2 2],2,4]) returns [1 2 1 2;1 2 1 2] sums the elements of a vector or columns of a matrix: sum([1 2 3] returns 6 zeros the above diagonal elements of a matrix: tril([1 2;3 4]) returns [1 0;3 4] zeros the below diagonal elements of a matrix: triu([1 2;3 4]) returns [1 2;0 4]

Preface Many interesting economic models cannot be solved analytically using the standard mathematical techniques of Algebra and Calculus. This is often true of applied economic models that attempt to capture the complexities inherent in real-world individual and institutional economic behavior. For example, to be useful in applied economic analysis, the conventional Marshallian partial static equilibrium model of supply and demand must often be generalized to allow for multiple goods, interegional trade, intertemporal storage, and government interventions such as taris, taxes, and trade quotas. In such models, the structural economic constraints are of central interest to the economist, making it undesirable, if not impossible, to \assume an internal solution" to render the model analytically tractable. Another class of interesting models that typically cannot be solved analytically are stochastic dynamic models of rational, forward-looking economic behavior. Dynamic economic models typically give rise to functional equations in which the unknown is not simply a vector in Euclidean space, but rather an entire function de ned on a continuum of points. For example, the Bellman and Euler equations that describe dynamic optima are functional equations, as often are the conditions that characterize rational expectations and arbitrage pricing market equilibria. Except in a very limited number of special cases, these functional equations lack a known closed-form solution, even though the solution can be shown theoretically to exist and to be unique. Models that lack closed-form analytical solution are not unique to economics. Analytically insoluble models are common in biological, physical, and engineering sciences. Since the introduction of the digital computer, scientists in these elds have turned increasingly to numerical computer methods to solve their models. In many cases where analytical approaches fail, numerical methods are often used to successfully compute highly accurate approximate solutions. In recent years, the scope of numerical applications in the biological, physical, and engineering sciences has grown dramatically. In most of these disciplines, computational model building and analysis is now recognized as a legitimate subdiscipline of specialization. Numerical analysis courses have also become standard in many graduate and undergraduate curriculums in these elds. xii

PREFACE

xiii

Economists, however, have not embraced numerical methods as eagerly as other scientists. Many economists have shunned numerical methods out of a belief that numerical solutions are less elegant or less general than closed form solutions. The former belief is a subjective, aesthetic judgment that is outside of scienti c discourse and beyond the scope of this book. The generality of the results obtained from numerical economic models, however, is another matter. Of course, given an economic model, it is always preferable to derive a closed form solution|provided such a solution exists. However, when essential features of an economic system being studied cannot be captured neatly in an algebraically soluble model, a choice must be made. Either essential features of the system must be ignored in order to obtain an algebraically tractable model, or numerical techniques must be applied. Too often economists chose algebraic tractability over economic realism. Numerical economic models are often unfairly criticized by economists on the grounds that they rest on speci c assumptions regarding functional forms and parameter values. Such criticism, however, is unwarranted when strong empirical support exists for the speci c functional form and parameter values used to specify a model. Moreover, even when there is some uncertainty about functional forms and parameters, the model may be solved under a variety of assumptions in order to assess the robustness of its implications. Although some doubt will persist as to the implications of a model outside the range of functional forms and parameter values examined, this uncertainty must be weighed against the lack of relevance of an alternative model that is explicitly soluble, but which ignores essential features of the economic system of interest. We believe that it is better to derive economic insights from a realistic numerical model of an economic system than to derive irrelevant results, however general, from an unrealistic, but explicitly soluble model. Despite resistance by some, an increasing number of economists are becoming aware of the potential bene ts of numerical economic model building and analysis. This is evidenced by the recent introduction of journals and an economic society devoted to the sub-discipline of computational economics. The growing popularity of computational economics, however, has been impeded by the absence of adequate textbooks and computer software. The methods of numerical analysis and much of the available computer software have been largely developed for non-economic disciplines, most notably the physical, mathematical, and computer sciences. The scholarly literature can also pose substantial barriers for economists, both because of its mathematical prerequisites and because its examples are unfamiliar to economists. Many available software packages, moreover, are designed to solve problems that are speci c to the physical sciences. This book addresses the diÆculties typically encountered by economists attempting to learn and apply numerical methods in several ways. First, this book emphasizes practical numerical methods, not mathematical proofs, and focuses on techniques

PREFACE

xiv

that will be directly useful to economic analysts, not those that would be useful exclusively to physical scientists. Second, the examples used in the book are drawn from a wide range of sub-specialties of economics and nance, both in macro- and microeconomics, with particular emphasis on problems in nancial, agricultural, resource and macro- economics. And third, we include with the textbook an extensive library of computer utilities and demonstration programs to provide interested researchers with a starting point for their own computer models. We make no attempt to be encyclopedic in our coverage of numerical methods or potential economic applications. We have instead chosen to develop only a relatively small number of techniques that can be applied easily to a wide variety of economic problems. In some instances, we have deviated from the standard treatments of numerical methods in existing textbooks in order to present a simple consistent framework that may be readily learned and applied by economists. In many cases we have elected not to cover certain numerical techniques when we regard them to be of limited bene t to economists, relative to their complexity. Throughout the book, we try to explain our choices clearly and to give references to more advanced numerical textbooks where appropriate. The book is divided into two major sections. In the rst six chapters, we develop basic numerical methods, including solving linear and nonlinear equation methods, complementarity methods, nite-dimensional optimization, numerical integration and dierentiation, and function approximation. In these chapters, we develop appreciation for basic numerical techniques by illustrating their application to equilibrium and optimization models familiar to most economists. The last ve chapters of the book are devoted to methods for solving dynamic stochastic models in economic and nance, including dynamic programming, rational expectations, and arbitrage pricing models in discrete and continuous time. The book is aimed at both graduate students, advanced undergraduate students, and practicing economists. We have attempted to write a book that can be used both as a classroom text and for self-study. We have also attempted to make the various sections reasonably self-contained. For example, the sections on discrete time continuous state models are largely independent from those on discrete time discrete state models. Although this results in some duplication of material, we felt that this would increase the usefulness of the text by allowing readers to skip sections. Although we have attempted to keep the mathematical prerequisites for this book to a minimum, some mathematical training and insight is necessary to work with computational economic models and numerical techniques. We assume that the reader is familiar with ideas and methods of linear algebra and calculus. Appendix A provides an overview of the basic mathematics used throughout the text. One barrier to the use of numerical methods by economists is lack of access to functioning computer code. This presents an apparent dilemma to us as textbook

PREFACE

xv

authors, given the variety of computer languages available. On the one hand, it is useful to have working examples of code in the book and to make the code available to readers for immediate use. On the other hand, using a speci c language in the text could obscure the essence of the numerical routines for those unfamiliar with the chosen language. We believe, however, that the latter concern can be substantially mitigated by conforming to the syntax of a vector processing language. Vector processing languages are designed to facilitate numerical analysis and their syntax is often simple enough that the language is transparent and easily learned and implemented. Due to its facility of use and its wide availability on university campus computing systems, we have chosen to illustrate algorithms in the book using Matlab and have provided an toolbox of Matlab utilities and demonstration programs to assist interested readers develop their own computational economic applications. The CompEcon toolbox can be obtained via the internet at the URL: http://?? All of the gures and tables in this book were generated by Matlab demonstration les provided with the toolbox (see List of Tables and List of Figures for le names). Once the toolbox is installed, these can be run by typing the appropriate le name at the Matlab command line. For those not familiar with the Matlab programming language, a primer in provided in Appendix B. The text contains many code fragments, which, in some cases, have been simpli ed for expositional clarity. This generally consists of eliminating the explicit setting of optional parameters and not displaying code that actually generates tabular or graphical output. The demonstration and function les provided in the toolbox contain fully functioning versions. In many cases the toolbox versions of functions described in the text have optional parameters that can be altered by the user user the toolbox function optset. The toolbox is described in detail in ?? on page ??. Our ultimate goal in writing this book is to motivate a broad range of economists to use numerical methods in their work by demonstrating the essential principles underlying computational economic models across sub-disciplines. It is our hope that this book will make accessible a range of computational tools that will enable economists to analyze economic and nancial models that heretofore they were unable to solve within the con nes of traditional mathematical economic analysis.

Chapter 1 Introduction 1.1 Some Apparently Simple Questions Consider the constant elasticity demand function q = p 0:2 : This is a function because, for each price p, there is an unique quantity demanded q . Given a hand-held calculator, any economist could easily compute the quantity demanded at any given price. An economist would also have little diÆculty computing the price that clears the market of a given quantity. Flipping the demand expression about the equality sign and raising each side to the power of 5, the economist would derive a closed-form expression for the inverse demand function p = q 5: Again, using a calculator any economist could easily compute the price that will exactly clear the market of any given quantity. Suppose now that the economist is presented with a slightly dierent demand function q = 0:5 p 0:2 + 0:5 p 0:5 ; one that is the sum a domestic demand term and an export demand term. Using standard calculus, the economist could easily verify that the demand function is continuous, dierentiable, and strictly decreasing. The economist once again could easily compute the quantity demanded at any price using a calculator and could easily and accurately draw a graph of the demand function. 1

CHAPTER 1. INTRODUCTION

2

However, suppose that the economist is asked to nd the price that clears the market of, say, a quantity of 2 units. The question is well-posed. A casual inspection of the graph of the demand function suggests that its inverse is well-de ned, continuous, and strictly decreasing. A formal argument based on the Intermediate Value and Implicit Function Theorems would prove that this is so. An unique market clearing price clearly exists. But what is the inverse demand function? And what price clears the market? After considerable eort, even the best trained economist will not nd an explicit answer using Algebra and Calculus. No closed-form expression for the inverse demand function exists. The economist cannot answer the apparently simple question of what the market clearing price will be. Consider now a simple model of an agricultural commodity market. In this market, acreage supply decisions are made before the per-acre yield and harvest price are known. Planting decisions are based on the price expected at harvest:

a = 0:5 + 0:5E [p]: After the acreage is planted, a random yield y is realized, giving rise to a supply

q = ay~ that is entirely sold at a market clearing price

p = 3 2q: Assume the random yield y is exogenous and distributed normally with a mean 1 and variance 0.1. Most economists would have little diÆculty deriving the rational expectations equilibrium of this market model. Substituting the rst expression into the second, and then the second into the third, the economist would write

p = 3 2(0:5 + 0:5E [p])~y: Taking expectations on both sides

E [p] = 3 2(0:5 + 0:5E [p]); she would solve for the equilibrium expected price E [p] = 1. She would conclude that the equilibrium acreage is a = 1 and the equilibrium price distribution has a variance of 0.4. Suppose now that the economist is asked to assess the implications of a proposed government price support program. Under this program, the government guarantees each producer a minimum price, say 1. If the market price falls below this level, the

CHAPTER 1. INTRODUCTION

3

government simply pays the producer the dierence per unit produced. The producer thus receives an eective price of max(p; 1) where p is the prevailing market price. The government program transforms the acreage supply relation to a = 0:5 + 0:5E [max(p; 1)]: Before proceeding with a formal mathematical analysis, the economist exercises a little economic intuition. The government support, she reasons, will stimulate acreage supply, raising acreage planted. This will shift the equilibrium price distribution to the left, reducing the expected market price below 1. Price would still occasionally rise above 1, however, implying that the expected eective producer price will exceed 1. The dierence between the expected eective producer price and the expected market price represents a positive expected government subsidy. The economist now attempts to formally solve for the rational expectations equilibrium of the revised market model. She performs the same substitutions as before and writes p = 3 2(0:5 + 0:5E [max(p; 1)])~y: As before, she takes expectations on both sides E [p] = 3 2(0:5 + 0:5E [max(p; 1)]): In order to solve the expression for the expected price, the economist uses a fairly common and apparently innocuous trick: she interchanges the max and E operators, replacing E [max(p; 1)] with max(E [p]; 1). The resulting expression is easily solved for E [p] = 1. This solution, however, asserts the expected market price and acreage planted remain unchanged by the introduction of the government price support policy. This is inconsistent with the economist's intuition. The economist quickly realizes her error. The expectation operator cannot be interchanged with the maximization operator because the latter is a nonlinear function. But if this operation is not valid, then what mathematical operations would allow the economist to solve for the equilibrium expected price and acreage? Again, after considerable eort, our economist is unable to nd an answer using Algebra and Calculus. No apparent closed-form solution exists for the model. The economist cannot answer the apparently simple question of how the equilibrium acreage and expected market price will change with the introduction of the government price support program.

1.2 An Alternative Analytic Framework The two problems discussed in the preceding section illustrate how even simple economic models cannot always be solved using standard mathematical techniques.

CHAPTER 1. INTRODUCTION

4

These problems, however, can easily be solved to a high degree of accuracy using numerical methods. Consider the inverse demand problem. An economist who knows some elementary numerical methods and who can write basic Matlab code would have little diÆculty solving the problem. The economist would simply write the following elementary Matlab program: p = 0.25; for i=1:100 deltap = (.5*p^-.2+.5*p^-.5-2)/(.1*p^-1.2 + .25*p^-1.5); p = p + deltap; if abs(deltap) < 1.e-8, break, end end disp(p);

He would then execute the program on a computer and, in an instant, compute the solution: the market clearing price is 0.154. The economist has used Newton's root nding method, which is discussed in Section 3.3 on page 35. Consider now the rational expectations commodity market model with government intervention. The source of diÆculty in solving this problem is the need to evaluate the truncated expectation of a continuous distribution. An economist who knows some numerical analysis and who knows how to write basic Matlab code, however, would have little diÆculty computing the rational expectation equilibrium of this model. The economist would replace the original normal yield distribution with a discrete distribution that has identical lower moments, say one that assumes values y1 ; y2 ; : : : ; yn with probabilities w1 ; w2 ; : : : ; wn . After constructing the discrete distribution approximant, which would require only a single call to the CompEcon library routine qnwnorm, the economist would code and execute the following elementary Matlab program:1 [y,w] = qnwnorm(10,1,0.1); a = 1; for it=1:100 aold = a; p = 3 - 2*a*y; f = w'*max(p,1); a = 0.5 + 0.5*f; if abs(a-aold) jz j. One problem that can arise is that y is so big that y 2 over ows. The largest real number representable on a machine can be found with the Matlab command realmax (it is approximately 21024 10308 for most double precision environments). Although this kind of over ow may not happen often, it could have unfortunate consequences and cause problems that are hard to detect. Even when y is not that big, if it is big relative to z , several problems can arise. The rst of these is easily dealt with. Suppose we evaluate p y+z y2 + z2

p when jy j is large enough so y + z is evaluated as y . This implies that y 2 + z 2 will be evaluated as jy j. When y < 0, the expression is evaluated as 2y , which is correct to the most signi cant digit. When y > 0, however, we get 0, which may be very far from correct. If the expression is evaluated in the order p y y2 + z2 + z

the result will be z , which is much closer to the correct answer. An even better approach is to use

(y; z ) = y 1

p

sign(y ) 1 + 2 + ;

where = z=y . Although this is algebraically equivalent, it has very dierent properties. First notice that the chance of over ow is greatly reduced because 1 1+ 2 2 and so the expression in ( ) is bounded on [; 4]. If 1 + 2 is evaluated as 1 (i.e., if is less than the square root of machine precision), this expression yields 2y if y < 0 and y = z if y > 0. This is a lot better, but one further problem arises when y > 0 with jy j jz j. In this case there is a cancellation due to the expression of the form p 2 1+ z=1

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

11

The obvious way of computing this term will result in loss of precision as gets small. Another expression for z is p 2 2 2 1 p1 + 2 + : z= 2 1+ Although this is more complicated, it is accurate regardless of the size of . As gets small, this expression will be approximately 2 =2. Thus, if is about the size of the square root of machine precision (2 26 on most double precision implementations), z would be computed to machine precision with the second expression, but would be computed to be 0 using the rst, i.e., no signi cant digits would be correct. Putting all of this together, a good approach to computing (y; z ) when jy j jz j uses 8 p 2 + ) if y < 0 < y (1 + 1+ p1+2 2 +2 1 (y; z ) = ( p ) if y > 0 : y 2 1+2 where = z=y (reverse z and y if jy j < jz j). Matlab has a number of special numerical representations relevant to this discussion. We have already mentioned inf and -inf. These arise not only from over ow but from division by 0. The number realmax is the largest oating point number that can be represented; realmin is the smallest positive (normalized) number representable.1 In addition, eps represents the machine precision, de ned as the rst number greater than 1 that can be represented as a oating point number. Another way to say this is, for any 0 eps=2, 1 + will be evaluated as 1 (i.e., eps is equal to 21 b ).2 All three of these special values are hardware speci c. In addition, oating point numbers may get set to NaN, which stands for not-anumber. This typically results from a mathematically unde ned operation, such as inf-inf and 0/0. It does not result, however, from inf/0, 0/inf or inf*inf (these result in inf, 0 and inf). Any arithmetic operation involving a NaN results in a NaN. Roundo error is only one of the pitfalls in evaluating mathematical expressions. In numerical computations, error is also introduced by the computer's inherent inability to evaluate certain mathematical expressions exactly. For all its power, a computer can only perform a limited set of operations in evaluating expressions. Essentially this list includes the four arithmetic operations of addition, subtraction, multiplication and division, as well as logical operations of comparison. Other common functions, 1 A denormalized number is one that non-zero, but has an exponent equal to its smallest possible

value. 2 20 + 2 b = (2b + 1)2 b cannot be represented and must be truncated to (2b 1 )21 0 2 + 21 b = (2b 1 + 1)21 b , on the other hand, can be represented.

b

= 1.

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

12

such as exponential, logarithmic, and trigonometric functions cannot be evaluated directly using computer arithmetic. They can only be evaluated approximately using algorithms based on the four basic arithmetic operations. For the common functions very eÆcient algorithms typically exist and these are sometimes \hardwired" into the computer's processor or coprocessor. An important area of numerical analysis involves determining eÆcient approximations that can be computed using basic arithmetic operations. For example, the exponential function has the series representation exp(x) =

1 X i=0

xn =n!:

Obviously one cannot compute the in nite sum, but one could compute a nite number of these terms, with the hope that one will obtain suÆcient accuracy for the purpose at hand. The result, however, will always be inexact.3 For nonstandard problems, we must often rely on our own abilities as numerical analysts (or know when to seek help). Being aware of some of the pitfalls should help us avoid them.

2.2 Data Storage 's basic data type is the matrix, with a scalar just a 1 1 matrix and an n-vector an n 1 or 1 n matrix. Matlab keeps track of matrix size by storing row and column information about the matrix along with the values of the matrix itself. This is a signi cant advantage over writing in low level languages like Fortran or C because it relieves one of the necessity of keeping track of array size and memory allocation. When one wants to represent an m n matrix of numbers in a computer there are a number of ways to do this. The most simple way is to store all the elements sequentially in memory, starting with the one indexed (1,1) and working down successive columns or across successive rows until the (m; n)th element is stored. Dierent languages make dierent choices about how to store a matrix. Fortran stores matrices in column order, whereas C stores in row order. Matlab, although written in C, stores in column order, thereby conforming with the Fortran standard. Many matrices encountered in practice are sparse, meaning that they consist mostly of zero entries. Clearly, it is a waste of memory to store all of the zeros, and it is time consuming to process the zeros in arithmetic matrix operations. Matlab supports a sparse matrix data type, which eÆciently keeps track of only the Matlab

3 Incidently, the Taylor series representation of the exponential function does not result in an

eÆcient computational algorithm.

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

13

non-zero elements of the original matrix and their locations. In this storage scheme, the non-zero entries and the row indices are stored in two vectors of the same size. A separate vector is used to keep track of where the rst element in each column is located. If one wants to access element (i; j ), Matlab checks the j th element of the column indicator vector to nd where the j th column starts and then searches the row indicator vector for the ith element (if one is not found then the element must be zero). Although sparse matrix representations are useful, their use incurs a cost. To access element (i; j ) of a full matrix, one simply goes to storage location (i 1)m + j . Accessing an element in a sparse matrix involves a search over row indices and hence can take longer. This additional overhead can add up signi cantly and actually slow down a computational procedure. A further consideration in using sparse matrices concerns memory allocation. If a procedure repeatedly alters the contents of a sparse matrix, the memory needed to store the matrix may change, even if its dimension does not. This means that more memory may be needed each time the number of non-zero elements increases. This memory allocation is both time consuming and may eventually exhaust computer memory. The decision whether to use a sparse or full matrix representation depends on a balance between a number of factors. Clearly for very sparse matrices (less than 10% non-zero) one is better o using sparse matrices and anything over 67% non-zeros one is better o with full matrices (which actually require less storage space at that point). In between, some experimentation may be required to determine which is better for a given application. Fortunately, for many applications, users don't even need to be aware of whether matrices are stored in sparse or full form. Matlab is designed so most functions work with any mix of sparse or full representations. Furthermore, sparsity propagates in a reasonably intelligent fashion. For example, a sparse times a full matrix or a spare plus a full matrix results in a full matrix, but if a sparse and a full matrix are multiplied element-by-element (using the \.*" operator) a sparse matrix results.

2.3 Linear Equations and the L-U Factorization The linear equation is the most elementary problem that arises in computational economic analysis. In a linear equation, an n n matrix A and an n-vector b are given, and one must compute the n-vector x that satis es

Ax = b:

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

14

Linear equations arise, directly or indirectly, in most computational economic applications. For example, a linear equation may be solved when computing the steadystate distribution of a discrete-state stochastic economic process or when computing the equilibrium prices and quantities of a multicommodity market model with linear demand and supply functions. Linear equations also arise as elementary tasks in solution procedures designed to solve more complicated nonlinear economic models. For example, a nonlinear partial equilibrium market model may be solved using Newton's method, which involves solving a sequence of linear equations. And the Euler functional equation of a rational expectations model may be solved using a collocation method, which yields a nonlinear equation that in turn is solved as a sequence of linear equations. Various practical issues arise when solving a linear equation numerically. Digital computers are capable of representing arbitrary real numbers with only limited precision. Numerical arithmetic operations, such as computer addition and multiplication, produce rounding errors that may, or may not, be negligible. Unless the rounding errors are controlled in some way, the errors can accumulate, rendering a computed solution that may be far from correct. Speed and storage requirements are also important considerations in the design of a linear equation solution algorithm. In some applications, such as the stochastic simulation of a rational expectations model, linear equations may have to be solved millions of times. And in other applications, such as computing option prices using nite dierence methods, linear equations with a very large number of variables and equations may be encountered. Over the years, numerical analysts have studied linear equations extensively and have developed algorithms for solving them quickly, accurately, and with a minimum of computer storage. In most applied work, one can typically rely on Gaussian elimination, which may be implemented in various dierent forms depending on the structure of the linear equation. Iterative methods oer an alternative to Gaussian elimination and are especially eÆcient if the A matrix is large and consists mostly of zero entries. Some linear equations Ax = b are relatively easy to solve. For example, if A is a lower triangular matrix, 2

A

6 6 =6 6 4

a11 0 0 : : : a21 a22 0 : : : a31 a32 a33 : : :

0 0 0

an1 an2 an3 : : : ann

3

7 7 7; 7 5

then the elements of x can be computed recursively using forward-substitution:

x1 = b1 =a11

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

15

x2 = (b2 a21 x1 )=a22 x3 = (b3 a31 x1 a32 x2 )=a33 .. . xn = (bn an1 x1 an2 x2 : : : ann 1 xn 1 )=ann: This clearly works only if all of the diagonal elements are non-zero (i.e., if the matrix is nonsingular). The algorithm can be written more compactly using summation notation as ! i 1 X xi = bi aij xj =aii 8i: j =1 In the vector processing language Matlab, this may be implemented as follows: for i=1:length(b) x(i)=(b(i)-A(i,1:i-1)*x(1:i-1))/A(i,i); end

If A is an upper triangular matrix, then the elements of x can be computed recursively using backward-substitution. Most linear equations encountered in practice, however, do not have a triangular A matrix. In such cases, the linear equation is often best solved using the L-U factorization algorithm. The L-U algorithm is designed to decompose the A matrix into the product of lower and upper triangular matrices, allowing the linear equation to be solved using a combination of backward and forward substitution. The L-U algorithm involves two phases. In the factorization phase, Gaussian elimination is used to factor the matrix A into the product

A = LU of a row-permuted lower triangular matrix L and an upper triangular matrix U . A row-permuted lower triangular matrix is simply a lower triangular matrix that has had its rows rearranged. Any nonsingular square matrix can be decomposed in this way. In the solution phase of the L-U algorithm, the factored linear equation

Ax = (LU )x = L(Ux) = b is solved by rst solving

Ly = b

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

16

for y using forward substitution, accounting for row permutations, and then solving

Ux = y for x using backward substitution. Consider, for example, the linear equation Ax = b where 2 3 2 3 3 2 3 10 A = 4 3 2 1 5 and b = 4 8 5 : 3 0 0 3 The matrix A can be decomposed into the product A = LU where 2 3 2 3 1 0 0 3 2 3 L = 4 1 0 1 5 and U = 4 0 2 3 5 : 1 1 0 0 0 2 The matrix L is row-permuted lower triangular; by interchanging the second and third rows, a lower diagonal matrix results. The matrix U is upper triangular. Solving Ly = b for y using forward substitution involves rst solving for y1 , then for y3 , and nally for y2 . Given the solution y = [10 7 2]>, the linear equation Ux = y can the be solved using backward substitution, yielding the solution of the original linear equation, x = [ 1 2 1]>. The L-U factorization algorithm is faster than other linear equation solution methods that are typically presented in elementary linear algebra courses. For large n, it takes approximately n3 =3+ n2 long operations (multiplications and divisions) to solve an n n linear equation using L-U factorization. Explicitly computing the inverse of A and then computing A 1 b requires approximately n3 + n2 long operations. Solving the linear equation using Cramer's rule requires approximately (n + 1)! long operations. To solve a 10 10 linear equation, for example, L-U factorization requires exactly 430 long operations, whereas matrix inversion and multiplication requires exactly 1100 long operations and Cramer's rule requires nearly 40 million long operations. Linear equations arise so frequently in numerical analysis that most numerical subroutine packages and software programs include either a basic subroutine or an intrinsic function for solving a linear equation using L-U factorization. In Matlab, the solution to the linear equation Ax = b is returned by the statement x = A n b. The \n", or \backslash", operator is designed to solve the linear equation using L-U factorization, unless a special structure for A is detected, in which case Matlab may implicitly use another, more eÆcient method. In particular, if Matlab detects that A is triangular or permuted triangular, it will dispense with L-U factorization and solve the linear equation directly using forward or backward substitution. Matlab also uses special algorithms when the A matrix is positive de nite (see Section 2.7 on page 22).

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

17

Although L-U factorization is the best general method for solving a linear equation, situations can arise in which alternative methods may be preferable. For example, in many computational economic applications, one must solve a series of linear equations, all having the same A matrix, but dierent b vectors, b1 ; b2 ; : : : ; bm . In this situation, it is often computationally more eÆcient to directly compute and store the inverse of A rst and then compute the solutions x = A 1 bj by performing only direct matrix-vector multiplications. Whether explicitly computing the inverse is faster than L-U factorization depends on the size of the linear equation system n and the number of times, m, an equation system is to be solved. Computing x = A n bj a total of m times involves mn3 =3 + mn2 long operations. Computing A 1 once and then computing A 1 bj a total of m times requires n3 + mn2 long operations. Thus explicit computation of the inverse should be faster than L-U factorization whenever the number of equations to be solved m is greater than three or four. The actual breakeven point will vary across numerical analysis packages, depending on the computational idiosyncrasies and overhead costs of the L-U factorization and inverse routines implemented in the package.

2.4 Gaussian Elimination The L-U factors of a matrix A are computed using Gaussian elimination. Gaussian elimination is based on two elementary row operations: subtracting a constant multiple of one row of a linear equation from another row, and interchanging two rows of a linear equation. Either operation may be performed on a linear equation without altering its solution. The Gaussian elimination algorithm begins with matrices L and U initialized as L = I and U = A, where I is the identity matrix. The algorithm then uses elementary row operations to transform U into an upper triangular matrix, while preserving the permuted lower diagonality of L and the factorization A = LU : Consider the matrix 2 3 2 0 1 2 6 4 2 1 47 7 A=6 4 2 2 2 3 5: 2 2 7 3 The rst stage of Gaussian elimination is designed to nullify the subdiagonal entries of the rst column of the U matrix. The U matrix is updated by subtracting 2 times the rst row from the second, subtracting 1 times the rst row from the third, and subtracting 1 times the rst row from the fourth. The L matrix, which initially equals

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

18

the identity, is updated by storing the multipliers 2, 1, and 1 as the subdiagonal entries of its rst column. These operations yield updated L and U matrices: 2 6

L=6 4

1 2 1 1

0 1 0 0

0 0 1 0

0 0 0 1

3

2

7 7 5

U =6 4

6

2 0 0 0

0 2 2 2

1 1 1 6

2 0 1 1

3

7 7: 5

After the rst stage of Gaussian elimination, A = LU and L is lower triangular, but U is not yet upper triangular. The second stage Gaussian elimination is designed to nullify the subdiagonal entries of the second column of the U matrix. The U matrix is updated by subtracting 1 times second row from the third and subtracting 1 times the second row from the fourth. The L matrix is updated by storing the multipliers 1 and 1 as the subdiagonal elements of its second column. These operations yield updated L and U matrices: 2 3 2 3 1 0 0 0 2 0 1 2 6 2 6 0 1 0 07 2 1 07 7 6 7 L=6 U = 4 1 5 4 1 1 0 0 0 0 1 5: 1 1 0 1 0 0 5 1 After the second stage of Gaussian elimination, A = LU and L is lower triangular, but U still is not upper triangular. In the third stage of Gaussian elimination, one encounters an apparent problem. The third diagonal element of the matrix U is zero, making it impossible to nullify the subdiagonal entry as before. This diÆculty is easily remedied, however, by interchanging the third and fourth rows of U . The L matrix is updated by interchanging the previously computed multipliers residing in the third and fourth columns. These operations yield updated L and U matrices: 2 6

L=6 4

1 2 1 1

0 1 1 1

0 0 0 1

0 0 1 0

3

2

7 7 5

U =6 4

6

2 0 0 0

0 2 0 0

1 1 5 0

2 0 1 1

3

7 7: 5

The Gaussian elimination algorithm terminates with a permuted lower triangular matrix L and an upper triangular matrix U whose product is the matrix A. In theory, Gaussian elimination will compute the L-U factors of any matrix A, provided A is invertible. If A is not invertible, Gaussian elimination will detect this by encountering a zero diagonal element in the U matrix that cannot be replaced with a nonzero element below it.

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

19

2.5 Rounding Error In practice, Gaussian elimination performed on a computer can sometimes render inaccurate solutions due to rounding errors. The eects of rounding errors, however, can often be controlled by pivoting. Consider the linear equation M 1 1 x1 = 1 : 1 1 x2 2 where M is a large positive number. To solve this equation via Gaussian elimination, a single row operation is required: subtracting M times the rst row from the second row. In principle, this operation yields the L-U factorization M 1 1 = 1 0 M 1 1 1 1 M 1 0 M +1 : In theory, applying forward and backward substitution yields the solution x1 = M=(M + 1) and x2 = (M + 2)=(M + 1), which are both very nearly one. In practice, however, Gaussian elimination may yield a very dierent result. In performing Gaussian elimination, one encounters an operation that cannot be carried out precisely on a computer, and which should be avoided in computational work: adding or subtracting values of vastly dierent magnitudes. On a computer, it is not meaningful to add or subtract two values whose magnitude dier by more than the number of signi cant digits that the computer can represent. If one attempts such an operation, the smaller value is eectively treated as zero. For example, the sum of 0:1 and 0:0001 may be 0:1001, but on a hypothetical machine with three digit precision the result of the sum is rounded to 0:1 before it is stored. In the linear equation above, adding 1 or 2 to a suÆciently large M on a computer simply returns the value M . Thus, in the rst step of the backward substitution, x2 is computed, not as (M + 2)=(M + 1), but rather as M=M , which is exactly one. Then, in the second step of backward substitution, x1 = M (1 x2 ) is computed to be zero. Rounding error thus produces computed solution for x1 that has a relative error of nearly 100 percent. Fortunately, there is a partial remedy for the eects of rounding error in Gaussian elimination. Rounding error arises in the example above because the diagonal element M 1 is very small. Interchanging the two rows at the outset of Gaussian elimination does not alter the theoretical solution to the linear equation, but allows one to perform Gaussian elimination with a diagonal element of larger magnitude.

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

20

Consider the equivalent linear equation system after the rows have been interchanged:

1 1 1 M 1

x1 x2

2 = 1 :

After interchanging the rows, the new A matrix may be factored as

1 1 M 1 1 =

1 0 M 1 1

1 1 0 M 1+1 :

Backward and forward substitution yield the theoretical results x1 = 1 M 1 and x2 = M 1 + 1 + M 1 (1 M 1 ). In evaluating these expressions on the computer, one again encounters rounding error. Here, x2 is numerically computed to be exactly one as before. However, x1 is also computed to be exactly one. The computed solution, though not exactly correct, is correct to the precision available on the computer, and is certainly more accurate than the one obtained without interchanging the rows. Interchanging rows during Gaussian elimination in order to make the magnitude of diagonal element as large as possible is called pivoting. Pivoting substantially enhances the reliability and the accuracy of a Gaussian elimination routine. For this reason, all good Gaussian elimination routines designed to perform L-U factorization, including the ones implemented in Matlab, employ some form of pivoting.

2.6 Ill Conditioning Pivoting cannot cure all the problems caused by rounding error. Some linear equations are inherently diÆcult to solve accurately on a computer, despite pivoting. This occurs when the A matrix is structured in such a way that a small perturbation Æb in the data vector b induces a large change Æx in the solution vector x. In such cases the linear equation or, more generally, the A matrix are said to be ill-conditioned. One measure of ill-conditioning in a linear equation Ax = b is the \elasticity" of the solution vector x with respect to the data vector b

jjÆxjj=jjxjj : jjÆbjj>0 jjÆbjj=jjbjj

= sup

The elasticity gives the maximum percentage change in the size of the solution vector x induced by a one percent change the size of the data vector b. If the elasticity is large, then small errors in the computer representation of the data vector b can produce large errors in the computed solution vector x. Equivalently, the computed solution x will have far fewer signi cant digits than the data vector b.

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

21

The elasticity of the solution is expensive to compute and thus is virtually never computed in practice. In practice, the elasticity is estimated using the condition number of the matrix A, which for invertible A is de ned by jjAjj jjA 1jj: The condition number of A is the least upper bound of the elasticity. The bound is tight in that for some data vector b, the condition number equals the elasticity. The condition number is always greater than or equal to one. Numerical analysts often use the rough rule of thumb that for each power of 10 in the condition number, one signi cant digit is lost in the computed solution vector x. Thus, if A has a condition number of 1000, the computed solution vector x will have about three fewer signi cant digits than the data vector b. Consider the linear equation Ax = b where Aij = in j and bi = (in 1)=(i 1). In theory, the solution x to this linear equation is a vector containing all ones for any n. In practice, however, if one solves the linear equation numerically using Matlab's \n" operator one can get quite dierent results. Below is a table that gives the supremum norm approximation error in the computed value of x and the condition number of the A matrix for dierent n: Approximation Condition n Error Number 5 10 15 20 25

2.5e-013 5.2e-007 1.1e+002 9.6e+010 8.2e+019

2.6e+004 2.1e+012 2.6e+021 1.8e+031 4.2e+040

In this example, the computed answers are accurate to seven decimals up to n = 10. The accuracy, however, deteriorates rapidly after that. In this example, the matrix A is a member of the a class of notoriously ill-conditioned matrices called the Vandermonde matrices, which we will encounter again in Chapter 6. Ill-conditioning ultimately can be ascribed to the limited precision of computer arithmetic. The eects of ill-conditioning can often be mitigated by performing computer arithmetic using the highest precision available on the computer. The best way to handle ill-conditioning, however, is to avoid it altogether. This is often possible when the linear equation problem is as an elementary task in a more complicated solution procedure, such as solving a nonlinear equation or approximating a function with a polynomial. In such cases one can sometimes reformulate the problem or alter the solution strategy to avoid the ill-conditioned linear equation. We will see several examples of this avoidance strategy later in the book.

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

22

2.7 Special Linear Equations Gaussian elimination can be accelerated for matrices possessing certain special structures. Two such classes arising frequently in computational economic analysis are symmetric positive de nite matrices and sparse matrices. Linear equations Ax = b in which A is a symmetric positive de nite arise frequently in least-squares curve- tting and optimization applications. A special form of Gaussian elimination, the Cholesky factorization algorithm, may be applied to such linear equations. Cholesky factorization requires only half as many operations as general Gaussian elimination and has the added advantage that it is less vulnerable to rounding error and does not require pivoting. The essential idea underlying Cholesky factorization is that any symmetric positive de nite matrix A can be uniquely expressed as the product

A = U >U of an upper triangular matrix U and its transpose. The matrix U is called the Cholesky factor or square root of A. Given the Cholesky factor of A, the linear equation

Ax = U >Ux = U >(Ux) = b may be solved eÆciently by using forward substitution to solve

U >y = b and then using backward substitution to solve

Ux = y: The Matlab \n" operator will automatically employ Cholesky factorization, rather than L-U factorization, to solve the linear equation if it detects that A is symmetric positive de nite. Another situation that often arises in computational practice are linear equations Ax = b in which the A matrix is sparse, that is, it consists largely of zero entries. For example, in solving dierential equations, one often encounters tridiagonal matrices, which are zero except on or near the diagonal. When the A matrix is sparse, the conventional Gaussian elimination algorithm consists largely of meaningless, but costly, operations involving either multiplication or addition with zero. The Gaussian elimination algorithm in these instances can often be dramatically increased by avoiding these useless operations. Matlab has special routines for eÆciently storing sparse matrices and operating with them. In particular, the Matlab command S=sparse(A) creates a version S of

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

23

the matrix A stored in a sparse matrix format, in which only the nonzero elements of A and their indices are explicitly stored. Sparse matrix storage requires only a fraction of the space required to store A in standard form if A is sparse. Also, the operator \n" is designed to recognize whether a sparse matrix is involved in the operation and adapts the Gaussian elimination algorithm to exploit this property. In particular, both x = S n b and x = A n b will compute the answer to Ax = b. However, the former expression will be executed substantially faster by avoiding operations with zeros.

2.8 Iterative Methods Algorithms based on Gaussian elimination are called exact or, more properly, direct methods because they would generate exact solutions for the linear equation Ax = b after a nite number of operations, if not for rounding error. Such methods are ideal for moderately-sized linear equations, but may be impractical for large ones. Other methods, called iterative methods can often be used to solve large linear equations more eÆciently if the A matrix is sparse, that is, if A is composed mostly of zero entries. Iterative methods are designed to generate a sequence of increasingly accurate approximations to the solution of a linear equation, but generally do not yield an exact solution after a prescribed number of steps, even in theory. The most widely-used iterative methods for solving a linear equation Ax = b are developed by choosing an easily invertible matrix Q and writing the linear equation in the equivalent form

Qx = b + (Q A)x or

x = Q 1 b + (I

Q 1 A)x:

This form of the linear equation suggests the iteration rule x(k+1) Q 1 b + (I Q 1 A)x(k) ; which, if convergent, must converge to a solution of the linear equation. Ideally, the so-called splitting matrix Q will satisfy two criteria. First, Q 1 b and Q 1 A should be relatively easy to compute. This is true if Q is either diagonal or triangular. Second, the iterates should converge quickly to the true solution of the linear equation. If jjI Q 1Ajj < 1 in any matrix norm, then the iteration rule is a contraction mapping and is guaranteed to converge to the solution of the linear equation from any initial value. The smaller

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

24

the value of the matrix norm jjI Q 1 Ajj, the faster the guaranteed rate of convergence of the iterates when measured in the associated vector norm. The two most popular iterative methods are the Gauss-Jacobi and Gauss-Seidel methods. The Gauss-Jacobi method sets Q equal to the diagonal matrix formed from the diagonal entries of A. The Gauss-Seidel method sets Q equal to the upper triangular matrix formed from the upper triagonal elements of A. Using the rowsum matrix norm to test the convergence criterion, both methods are guaranteed to converge from any starting value if A is diagonally dominant, that is, if

jAiij >

n X i=1 i6=j

jAij j

8i:

Diagonally dominant matrices arise naturally in many computational economic applications, including the solution of dierential equations and the approximation of functions using cubic splines, both of which will be discussed in later sections. The following Matlab script solves the linear equation Ax = b using GaussJacobi iteration: d = diag(A); for it=1:maxit dx = (b-A*x)./d; x = x+dx; if norm(dx) and Z and D are real-valued. Another factorization is the QR decomposition, which nds a representation A = QR, where Q is orthonormal and R is triangular. This factorization is not unique; there are a number of algorithms that produce dierent values of Q and R, including Householder and Givens transformations. A need not be square to apply the QR decomposition. Finally, we mention the singular-value decomposition (SVD), which nds U , D and V , with U and V orthonormal and D diagonal, that satis es A = UDV >. The diagonal elements of D are known as the singular values of A and are nonnegative and generally order highest to lowest. In the case of a square, symmetric A, this is identical to the eigenvalue/eigenvector decomposition. The SVD can be used with non-square matrices. The SVD is the method of choice for determining matrix condition and rank. The condition number is the ratio of the highest to the lowest singular value; the rank is the number of non-zero singular values. In practice, one would treat a singular value Djj as zero if Djj < maxi (Dii ), for some speci ed value of (Matlab sets equal to the value of the machine precision eps times the maximum of the number of rows

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

29

and columns of A). We have only touched on iterative methods. These are mainly useful when solving large sparse systems that cannot be stored directly. See Golub and Ortega, Section 9.3, for further details and references. Numerous software libraries that perform basic linear algebra computations are available, including LINPACK, LAPACK, IMSL and NAG. See Notes on Web Resources (page 497).

Chapter 3 Nonlinear Equations and Complementarity Problems One of the most basic numerical operations encountered in computational economics is to nd the solution of a system of nonlinear equations. Nonlinear equations generally arise in one of two forms. In the nonlinear root nding problem, a function f mapping 0

1.4

π1’f (x) = 0: This imposes only a one-sided bound on x at 0. Doubly bounded problems are often called mixed complementarity problems (MCPs) and are typically formulated as solving max(min(f (x); x a); x

b) = 0

rather than min(max(f (x); a

x); b x) = 0;

as we have done. If standard software for MCPs is used, the sign of f should be reversed. A number of approaches exist for solving CPs other than reformulation as a root nding problem. A well-studied and robust algorithm based on successive linearization is incorporated in the PATH algorithm described by Ferris et al., and Ferris and Munson. The linear complementarity problem (LCP) has received considerable attention and forms the underpinning for methods based on successive linearization. Lemke's method is perhaps the most widely used and robust LCP solver. It is described in the standard works cited above. Recent work on LCPs includes Kremers and Talman. We have not discussed homotropy methods for solving nonlinear equations, but these may be desirable to explore, especially if good initial values are hard to guess. Judd, chapter 5, contains a good introduction, with economic applications and references for further study.

Chapter 4 Finite-Dimensional Optimization In this chapter we examine methods for optimizing a function with respect to a nite number of variables. In the nite-dimensional optimization problem, one is given a real-valued function f de ned on X f (x) for all x 6= x in N \ X . If x is a local maximum of f that resides in the interior of X and f is twice dierentiable there, then f 0 (x ) = 0 and f 00 (x ) is negative semide nite. Conversely, if f 0 (x ) = 0 and f 00 (x) is negative semide nite in an -neighborhood of x contained in X , then x is a local maximum; if, additionally, f 00 (x ) is negative de nite, then x is a strict local maximum. By the Local-Global Theorem, if f is concave, X is convex, and x is a local maximum of f , then x is a global maximum of f on X .2

4.1 Derivative-Free Methods As was the case with univariate root nding, optimization algorithms exist that will place progressively smaller brackets around a local maximum of a univariate function. Such methods are relatively slow, but do not require the evaluation of function derivatives and are guaranteed to nd a local optimum to a prescribed tolerance in a known number of steps. The most widely-used derivative-free method is the golden search method. Suppose we wish to nd a local maximum of a continuous univariate function f (x) on the interval [a; b]. Pick any two numbers in the interior of the interval, say x1 and x2 with x1 < x2 . Evaluate the function and replace the original interval with [a; x2 ] if f (x1 ) > f (x2 ) or with [x1 ; b] if f (x2 ) f (x1 ). A local maximum must be contained in the new interval because the endpoints of the new interval are lower than a point on the interval's interior (or the local maximum is at one of the original endpoints). 2 These results also hold for minimization, provided one changes concavity of f to convexity and

negative (semi) de niteness of f 00 to positive (semi) de niteness.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

65

We can repeat this procedure, producing a sequence of progressively smaller intervals that are guaranteed to contain a local maximum, until the length of the interval is shorter than some desired tolerance level. A key issue is how to pick the interior evaluation points. Two simple criteria lead to the most widely-used strategy. First, the length of the new interval should be independent of whether the upper or lower bound is replaced. Second, on successive iterations, one should be able to reuse an interior point from the previous iteration so that only one new function evaluation is performed per iteration. These conditions are uniquely satis ed by selecting xi = a + i (b a), where 3

p

p

5 1 : 2 2 The value 2 is known as the golden ratio, a number dear to the hearts of Greek philosophers and Renaissance artists. The following Matlab script computes a local maximum of a univariate function f on an interval [a; b] using the golden search method. The script assumes that the user has written a Matlab routine f that evaluates the function at an arbitrary point. The script also assumes that the user has speci ed interval endpoints a and b and a convergence tolerance tol:

1 =

5

and 2 =

alpha1 = (3-sqrt(5))/2; alpha2 = (sqrt(5)-1)/2; x1 = a+alpha1*(b-a); f1 = f(x1); x2 = a+alpha2*(b-a); f2 = f(x2); d = alpha1*alpha2*(b-a); while d>tol d = d*alpha2; if f2f1 x = x2; else x = x1; end

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

66

The Matlab toolbox accompanying the textbook includes a function golden that computes a local maximum of a univariate function using the golden search method. To apply this function, one rst de nes a Matlab function that returns the value of the objective function at an arbitrary point. One then passes the name of this function, along with the lower and upper bounds for the search interval, to golden. For example, to compute a local maximum of f (x) = x cos(x2 ) 1 on the interval [0; 3], one executes the following Matlab script: f = inline('x*cos(x^2)-1'); x = golden(f,0,3)

Execution of this script yields the result x = 0:8083. As can be seen in Figure 4.1, this point is a local maximum, but not a global maximum in [0; 3]. The golden search method is guaranteed to nd the global maximum when the function is concave. However, as the present example makes clear, this need not be true when the optimand is not concave. 2

Maximization of x cos(x ) via golden search 3

2

1

0

−1

−2

−3

0

0.5

1

1.5

2

2.5

3

Figure 4.1 Another widely-used derivative-free optimization method for multivariate functions is the Nelder-Mead algorithm. The algorithm begins by evaluating the objective function at n + 1 points. These n + 1 points form a so-called simplex in the

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

67

n-dimensional decision space. This is most easily visualized when x is 2-dimensional, in which case a simplex is a triangle. At each iteration, the algorithm determines the point on the simplex with the lowest function value and alters that point by re ecting it through the opposite face of the simplex. This is illustrated in Figure 4.2 (Re ection), where the original simplex is lightly shaded and the heavily shaded simplex is the simplex arising from re ecting point A. If the re ection succeeds in nding a new point that is higher than all the others on the simplex, the algorithm checks to see if it is better to expand the simplex further in this direction, as shown in Figure 4.2 (Expansion). On the other hand, if the re ection strategy fails to produce a point that is at least as good as the second worst point, the algorithm contracts the simplex by halving the distance between the original point and its opposite face, as in Figure 4.2 (Contraction). Finally, if this new point is not better than the second worst point, the algorithm shrinks the entire simplex toward the best point, point B in Figure 4.2 (Shrinkage). Simplex Transformations in the Nelder−Mead Algorithm Reflection

Expansion

B

B

A

A

C

Contraction

Shrinkage

B

A

C

B

A

C

C

Figure 4.2 One thing that may not be clear from the description of the algorithm is how to compute a re ection. For a point xi , the re ection is equal to xi + 2di where xi + di is the point in the center of the opposite face of the simplex from xi . That central point can be found by averaging the n other point of the simplex. Denoting the re ection

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION by ri , this means that 1X ri = xi + 2 x n j 6=i j

!

xi

n 2X = x n j =1 j

68

1 1 + xi : 2

An expansion can then be computed as 1:5ri

0:5xi

and a contraction as 0:25ri + 0:75xi : The Nelder-Mead algorithm is simple, but slow and unreliable. However, if a problem involves only a single optimization or costly function and derivative evaluations, the Nelder-Mead algorithm is worth trying. In many problems an optimization problem that is embedded in a larger problem must be solved repeatedly, with the function parameters perturbed slightly with each iteration. For such problems, which are common is dynamic models, one generally will want to use a method that moves more quickly and reliably to the optimum, given a good starting point. The Matlab toolbox accompanying the textbook includes a function neldermead that maximizes a multivariate function using the Nelder-Meade method. To apply this function, one must rst de ne a Matlab function f that returns the value of the objective functions at an arbitrary point and then pass the name of this function along with a starting value x to neldermeade. Consider, for example, maximizing the \banana" function f (x) = 100(x2 x21 )2 (1 x1 )2 , so-called because its contours resemble bananas. Assuming a starting value of (1; 0), the Nelder-Meade procedure may be executed in Matlab as follows: f = inline('-100*(x(2)-x(1)^2)^2-(1-x(1))^2'); x = neldmead(f,[1; 0]);

Execution of this script yields the result x = (1; 1), which indeed is the global maximum of the function. The contours of the banana function and the path followed by the Nelder-Meade iterates are illustrated in Figure 4.3.

4.2 Newton-Raphson Method The Newton-Raphson method for maximizing an objective function uses successive quadratic approximations to the objective in the hope that the maxima of the approximants will converge to the maximum of the objective. The Newton-Raphson method is intimately related to the Newton method for solving root nding problems.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

69

Nelder−Mead Maximization of Banana Function 1.2

1

0.8

x

2

0.6

0.4

0.2

0

−0.2 −0.2

0

0.2

0.4

0.6

x

0.8

1

1.2

1

Figure 4.3 Indeed, the Newton-Raphson method is identical to applying Newton's method to compute the root of the gradient of the objective function. More generally, the Newton-Raphson method begins with the analyst supplying a guess x(0) for the maximum of f . Given x(k) , the subsequent iterate x(k+1) is computed by maximizing the second order Taylor approximation to f about x(k) : f (x) f x(k) + f 0 x(k) x x(k) + 12 x x(k) >f 00 x(k) x x(k) : Solving the rst order condition f 0 x(k) + f 00 x(k) x x(k) = 0; yields the iteration rule 1 0 (k) x(k+1) x(k) f 00 x(k) f x : In theory, the Newton-Raphson method converges if f is twice continuously dierentiable and if the initial value of x supplied by the analyst is \suÆciently" close to a local maximum of f at which the Hessian f 00 is negative de nite. There is, however, no generally practical formula for determining what suÆciently close is. Typically,

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

70

an analyst makes a reasonable guess for the maximum of f and counts his blessings if the iterates converge. The Newton-Raphson method can be robust to the starting value if f is well behaved, for example, if f is globally concave. The Newton-Raphson method, however, can be very sensitive to starting value if the function is not globally concave. Also, in practice, the Hessian f 00 must be well-conditioned at the optimum, otherwise rounding errors in the vicinity of the optimum can make it diÆcult to compute a precise approximate solution. The Newton-Raphson algorithm has numerous drawbacks. First, the algorithm requires computation of both the rst and second derivatives of the objective function. Second, the Newton-Raphson algorithm oers no guarantee that the objective function value may be increased in the direction of the Newton step. Such a guarantee is 00 ( k ) available only if the Hessian f x is negative de nite; otherwise, one may actually move towards a saddle point of f (if the Hessian is inde nite) or even a minimum (if Hessian is positive de nite). For this reason, the Newton-Raphson method is rarely used in practice, and then only if the objective function is globally concave.

4.3 Quasi-Newton Methods Quasi-Newton methods employ a similar strategy to the Newton-Raphson method, but replace the Hessian of the objective function (or its inverse) with a negative de nite approximation, guaranteeing that function value can be increased in the direction of the Newton step. The most eÆcient quasi-Newton algorithms employ an approximation to the inverse Hessian, rather than the Hessian itself, in order to avoid performing a linear solve, and employ updating rules that do not require second derivative information to ease the burden of implementation and the cost of computation. In analogy with the Newton-Raphson method, quasi-Newton methods use a search direction of the form d(k) = B (k) f 0 x(k) where B (k) is an approximation to the inverse Hessian of f at the kth iterate x(k) . The vector d(k) is called the Newton or quasi-Newton step. The more robust quasi-Newton methods do not necessarily take the full Newton step, but rather shorten it or lengthen it in order to obtain improvement in the objective function. This is accomplished by performing a line-search in which one ( k ) ( k ) seeks a step length s > 0 that maximizes or nearly maximizes f x + sd . Given the computed step length s(k) , one updates the iterate as follows: x(k+1) = x(k) + s(k) d(k) :

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

71

Line search methods are discussed in the following section. Quasi-Newton method dier in how the inverse Hessian approximation B k is constructed and updated. The simplest quasi-Newton method sets B k = I , where I is the identity matrix. This leads to a Newton step that is identical to the gradient of the objective function at the current iterate: d(k) = f 0 x(k) : The choice of gradient as a step direction is intuitively appealing because the gradient always points in the direction which, to a rst order, promises the greatest increase in f . For this reason, this quasi-Newton method is called the method of steepest ascent. The steepest ascent method is simple to implement, but is numerically less eÆcient in practice than competing quasi-Newton methods that incorporate information regarding the curvature of the objective function. The most widely-used quasi-Newton methods that employ curvature information produce a sequence of inverse Hessian estimates that satisfy two conditions. First, given that d(k) f 00 1 (x(k) ) f 0 (x(k) + d(k) ) f 0 (x(k) ) ; the inverse Hessian estimate Ak is required to satisfy the so-called quasi-Newton condition: d(k) = B (k) f 0 (x(k) + d(k) ) f 0 (x(k) ) : Second, the inverse Hessian estimate A(k) is required to be both symmetric and negative-de nite, as must be true of the inverse Hessian at a local maximum. The negative de niteness of the Hessian estimate assures that the objective function value can be inreased in the direction of the Newton step. Two methods that satisfy the quasi-Newton and negative de niteness conditions are the Davidson-Fletcher-Powell (DFP) and Broyden-Fletcher-Goldfarb-Shano (BFGS) updating methods. The DFP method uses the updating scheme

B

dd> B+ > d u

Buu>B ; u>Bu

where

d = x(k+1)

x(k)

and

u = f 0 (x(k+1) ) f 0 (x(k) ):

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION The BFGS method uses the update scheme

B

1

wd> + dw>

72

w >u > dd ; d>u

B+ > d u where w = d Bu: The BFGS algorithm is generally considered superior to DFP, although there are problems for which DFP outperforms BFGS. However, except for the updating formulae, the two methods are identical, so it is easy to implement both and give users the choice.3 The following Matlab script computes the maximum of a user-supplied multivariate function f using the quasi-Newton method. The script assumes that the user has written a Matlab routine f that evaluates the function at an arbitrary point and that the user has speci ed a starting point x, an initial guess for the inverse Hessian A, a convergence tolerance tol, and a limit on the number of iterations maxit. The script uses an auxiliary algorithm optstep to determine the step length (discussed in the next section). The algorithm also oers the user a choice on how to select the search direction, searchmeth (1-steepest ascent, 2-DFP, 3-BFGS). k = size(x,1); [fx0,g0] = f(x); if all(abs(g0)<eps), return; end for it=1:maxit d = -A*g0; % search direction [s,fx] = optstep(StepMeth,f,x,fx0,g0,d,maxstep,varargin{:}); if fxu. If this value becomes very small in absolute value, numerical instabilities will result. It is best to monitor this value and skip updating A(k) if it becomes too small. A useful rule for what is too small is

jd>uj < jjdjj jjujj; where is the precision of the computer. An alternative to skipping the update, used in the following implementation, is to reset the inverse Hessian approximant to a scaled negative identity matrix. The Matlab toolbox accompanying the textbook includes a function qnewton that maximizes a multivariate function using the quasi-Newton method. To apply this function, one de nes a Matlab function f that returns the function value at arbitrary point and speci es a starting value x. Consider, for example, maximizing the banana function f (x) = 100 (x2 x21 )2 (1 x1 )2 assuming a starting value of (1; 0). To maximize the function using the default BFGS Hessian update, one proceeds as follows: f = inline('-100*(x(2)-x(1)^2)^2-(1-x(1))^2'); x = qnewton(f,[1;0]);

Execution of this script returns the maximum x = (1; 1) in 18 iterations. To maximize the function using the steepest ascent method, one may override the default update method as follows: optset('qnewton','SearchMeth',1); x = qnewton(f,[1;0]);

Execution of this script fails to nd the optimum afer 250 iterations, the default maximum allowable, returning the nonoptimal value x = (0:82; 0:68). The path followed by the quasi-Newton method iterates in these two examples are illustrated in Figure 4.4 and 4.5.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

74

BFGS Quasi−Newton Maximization of Banana Function 1.2

1

0.8

x2

0.6

0.4

0.2

0

−0.2 −0.2

0

0.2

0.4

0.6

x

0.8

1

1.2

1

Figure 4.4

4.4 Line Search Methods Just as was the case with root nding problems, it is not always best to take a full Newton step. In fact, it may be better to either stop short or move past the Newton step. If we view the Newton step as de ning a search direction, performing a onedimensional search in that direction will generally produce improved results. In practice, it is not necessary to perform a thorough search for the best point in the Newton direction. Typically, it is suÆcient to assure that successive quasiNewton iterations are raising the value of the objective. A number of dierent line search methods are used in practice, including the golden search method. The golden search algorithm is very reliable, but computationally ineÆcient. Two alternative schemes are typically used in practice to perform line searches. The rst, known as the Armijo search, is similar to the backstepping algorithm used in root nding and

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

75

Steepest Ascent Maximization of Banana Function 1.2

1

0.8

x2

0.6

0.4

0.2

0

−0.2 −0.2

0

0.2

0.4

0.6

x

0.8

1

1.2

1

Figure 4.5 complementarity problems. The idea is to nd the minimum power j such that

f (x + sd) f (x) f 0 (x)>d; s where s = j and 0 < < 0:5. Note that the left hand side is the slope of the line from the current iteration point to the candidate for the next iteration and the right hand side is the directional derivative at x in the search direction d, that is, the instantaneous slope at the current iteration point. The Armijo approach is to backtrack from a step size of 1 until the slope on the left hand side is a given fraction, of the slope on the right hand side. Another widely-used approach, known as Goldstein search, is to nd any value of s that satis es f (x + sd) f (x) 1f 0(x)>d; 0 f 0 (x)>d s

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

76

for some values of 0 < 0 0:5 1 < 1. Unlike the Armijo search, which is both a method for selecting candidate values of the stepsize s and a stopping rule, the Goldstein criteria is simply a stopping rule that can be used with a variety of search approaches. Figure 4.6 illustrates the typical situation at a given iteration. The gure plots the objective function, expressed as deviations from f (x), i.e., f (x + sd) f (x), against the step size s in the Newton direction d. The objective function is highlighted and the line tangent to it at the origin has slope equal to the directional derivative f 0 (x)>d. The values 0 and 1 de ne a cone within which the function value must lie to be considered an acceptable step. In Figure 4.6 the cone is bounded by dashed lines with 0 = 0:25 and 1 = 0:75. These values are for illustrative purposes and de ne a far narrower cone than is desirable; typical values are on the order of 0.0001 and 0.9999. Step Length Determination

−5

12

x 10

10

8

f(x+sd)

6

BHHHSTEP: s = 0.00097656 STEPBT: s = 0.0010499 GOLDSTEP: s = 0.001054

4

2

0

−2

−4 −5

0

5

10

s

15

20 −4

x 10

Figure 4.6 A simple strategy for locating an acceptable point is to rst nd a point in or above the cone using step doubling (doubling the value of s at each iteration). If a point above the cone is found rst, we have a bracket within which points in the cone must lie. We can then narrow the bracket using the golden search method. We call

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

77

this the bhhhstep approach. Another approach, stepbt, checks to see if s = 1 is in the cone and, if so, maximizes a quadratic approximation to the objective function in the Newton direction constructed from knowledge of f (x), f 0 (x)d and f (x + d). If the computed step s is acceptable, it is taken. Otherwise, the algorithm iterates until an acceptable step is found using a cubic approximation to the objective function in the Newton direction constructed from knowledge of f (x), f 0 (x)d, f (x + s(j 1) d) and f (x + s(j ) d). stepbt is fast and generally gives good results. It is recommended as the default lines search procedure for general maximization algorithms. In Figure 4.6 we have included three stars representing the step lengths determined by stepbhhh, stepbt and our implementation of the golden search step length maximizer, stepgold (also listed below). stepgold rst brackets a maximum in the direction d and then uses the golden search approach to narrow the bracket. This method diers from the other two in that it terminates when the size of the bracket is less than a speci ed tolerance (here set at 0.0004). In this example, the three methods took 11, 4 and 20 iterations to nd an acceptable step length, respectively. Notice that stepbt found the maximum in far fewer steps than did stepgold. This will generally be true when the function is reasonably smooth and hence well approximated by a cubic function. It is diÆcult to make generalizations about the performance of the step line search algorithm, however. In this example, the step size was very small, so both stepbhhh and stepgold take many iterations to get the order of magnitude correct. In many cases, if the initial distance is well chosen, the step size will typically be close to unity in magnitude, especially as the maximizer approaches the optimal point. When this is true, the advantage of stepbt is less important. Having said all of that, we recommend stepbt as a default. We have also implemented our algorithm to use stepgold if the other methods fail.

4.5 Special Cases Two special cases arise often enough in economic practice (especially in econometrics) to warrant additional discussion. Nonlinear least squares and the maximum likelihood problems have objective functions with special structures that give rise to their own special quasi-Newton methods. The special methods dier from other Newton and quasi-Newton methods only in the choice of the matrix used to approximate the Hessian. Because these problems generally arise in the context of statistical applications, we alter our notation to conform with the conventions for those applications. The optimization takes place with respect to a k-dimensional parameter vector and n will refer to the number of observations.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

78

The nonlinear least squares problem takes the form min 21 f ()>f () where f : f ():

The Hessian of the objective function is n X @ 2 f () 0 > 0 f () f () + fi () >: @@ i=1 If we ignore the second term in the Hessian, we are assured of having a positive de nite matrix with which to determine the search direction: d = f 0 ()>f 0 () 1 f 0 ()>f (): All other aspects of the problem are identical to the quasi-Newton methods already discussed, except for the adjustment to minimization. It is also worth pointing out that, in typical applications, f () composed of error terms each having expectation 0. Assuming that the usual central limit assumptions apply to the error term, the inverse of the approximate Hessian 0 > 0 1 f () f () ; can be used as a covariance estimator for . Maximum likelihood problems are speci ed by a choice of a distribution function for the data, y , that depends on a parameter vector, . The log-likelihood function is the sum of the logs of the likelihoods of each of the data points: l (; y ) =

n X i=1

ln f (; yi):

The score function is de ned as the matrix of derivatives of the log-likelihood function evaluated at each observation: @ l (; yi ) si (; y ) = : @ (viewed as a matrix, the score function is n k).

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

79

A well-known result in statistical theory is that the expectation of the inner product of the score function is equal to the negative of the expectation of the second derivative of the likelihood function, which is known as the information matrix. Either the information matrix or the sample average of the inner product of the score function provides a positive de nite matrix that can be used to determine a search direction. In the later case the search direction is de ned by d = s(; y )>s(; y ) 1 s(; y )>1n ; where 1n is an n-vector of ones. This approach is known as the modi ed method of scoring.4 As in the case of the nonlinear least squares, a covariance estimator for is immediately available using s(; y )>s(; y ) 1 :

4.6 Constrained Optimization The simplest constrained optimization problem involves the maximization of an objective function subject to simple bounds on the choice variable: max f (x):

axb

According to the Karush-Kuhn-Tucker theorem, if f is dierentiable on [a; b], then x is a constrained maximum for f only if it solves the complementarity problem CP(f 0 ; a; b):5

ai xi bi xi > ai ) fi0 (x) 0 xi < bi ) fi0 (x) 0: Conversely, if f is concave and dierentiable on [a; b] and x solves the complementarity problem CP(f 0 (x); a; b), then x is a constrained maximum of f ; if additionally f is strictly concave on [a; b], then the maximum is unique. Two bounded maximization problems are displayed in Figure 4.7. In this gure, the bounds are displayed with dashed lines and the objective function with a solid line. In Figure 4.7A the objective function is concave and achieves its unique global maximum on the interior of the feasible region. At the maximum, the derivative of f must be zero, for otherwise one could improve the objective by moving either up or 4 If the information matrix is known in closed form, it could be used rather than s> s and the

method would be known as the method of scoring. 5 Complementarity problems are discussed in Section 3.7 on page 48.)

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

80

down, depending on whether the derivative is positive or negative. In Figure 4.7B we display a more complicated case. Here, the objective function is convex. It achieves a global maximum at the lower bound and a local, non-global maximum at the upper bound. It also achieves a global minimum in the interior of the interval. One−Dimensional Maximization Problems 2

2

1.5

1.5

1

1

0.5

0.5

0

0

−0.5 −0.5

0

0.5

1 2

1.5

−0.5 −0.5

*

a) f(x) = 1.5−(x−3/4) , x = 3/4

0

0.5

1 2

1.5

*

b) f(x) = −2+(x−3/4) , x = 0 & 1

Figure 4.7 In Figure 4.8 we illustrate the complementarity problem presented by the KarushKuhn-Tucker conditions associated with the bounded optimization problems in Figure 4.7. The complementarity problems are represented in their equivalent root nding formulation min(max(f 0 (x); a x); b x) = 0. In Figure 4.8A we see that the KarushKuhn-Tucker conditions possess an unique solution at the unique global maximum of f . In Figure 4.8B there are three solutions to the Karush-Kuhn-Tucker conditions, corresponding to the two local maxima and the one local minimum of f on [a; b]. These gures illustrate that one may reliably solve a bounded maximization problem using standard complementarity methods only if the objective function is concave. Otherwise, the complementary algorithm could lead to local, non-global maxima or even minima. The sensitivity of the optimal value of the objective function f to changes in the bounds of the bounded optimization problem are relatively easy to characterize. According to the Envelope theorem, df = min (0; f 0 (x )) da df = max (0; f 0 (x )) : db More generally, if f , a, and b all depend on some parameter p, then @f da @f db df @f = + min 0; + max 0; ; dp @p @x dp @x dp

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

81

Complementarity Conditions for Maximization Problems 2

2

1.5

1.5

1

1

0.5

0.5

0

0

−0.5

−0.5

−1

−1

−1.5

−1.5

−2 −0.5

0

0.5

1

1.5

−2 −0.5

a) f’(x) = −2(x−3/4)

0

0.5

1

1.5

b) f’(x) = 2(x−3/4)

Figure 4.8 where the derivatives of f , a, and b are evaluated at (x ; p). The most general constrained nite-dimensional optimization problem that we consider is max f (x); s.t. R(x) S r;

axb

where R : [a; b] ! <m . According to the Karush-Kuhn-Tucker Theorem, a regular point x maximizes f subject to the general constraints only if there is a vector 2 R0 (x)> > ; a ; b R(x) r p q

where the values of p and q depend on the type of constraint:

pi 0 1 1 qi 1 1 0 =

A point x is regular if the gradients of all constraint functions Ri that satisfy Ri (x) = ri are linearly independent.6 Conversely, if f is concave, R is convex and (x; ) satis es the Karush-Kuhn-Tucker conditions, then x solves the general constrained optimization problem. 6 The regularity conditions may be omitted if either the constraint function R is linear, or if f is concave, R is convex, and the feasible set has nonempty interior.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

82

In the Karush-Kuhn-Tucker conditions, the i are called Lagrangian multipliers or shadow prices. The signi cance of the shadow prices is given by the Envelope Theorem, which asserts that under mild regularity conditions, @f = ; @r that is, i is the rate at which the optimal value of the objective will change with changes in the constraint constant ri . The sensitivity of the optimal value of the objective function f to changes in the bounds on the choice variable are given by: df = min 0; f 0 (x) R0 (x)> da df = max 0; f 0 (x) R0 (x)> : db The Karush-Kuhn-Tucker complementarity conditions typically have a natural arbitrage interpretation. Consider the problem of maximizing pro ts from certain economic activities when the activities employ xed factors or resources that are available in limited supply. Speci cally, suppose x1 ; x2 ; : : : ; xn are the levels of n economic activities, which must be nonnegative, and the objective is to maximize pro t f (x) generated by those activities. Also suppose that these activities employ m resources and that the usage of the ith resource Ri (x) cannot exceed a given availability ri . Then i represents the opportunity cost or shadow price of the ith resource and

MPj =

@f @xj

X i

i

@Ri @xj

represents the economic marginal pro t of the j th activity, accounting for the opportunity cost of the resources employed in the activity. The Karush-Kuhn-Tucker conditions may thus be interpreted as follows: xj 0 activity levels are nonnegative MPj 0 otherwise, raise pro t by raising xj xj > 0 ) MPj 0 otherwise, raise pro t by lowering xj i 0 Shadow price of resource is nonnegative Ri (x) ri resource use cannot exceed availability i > 0 ) Ri (x) = ri valuable resources should not be wasted There are many approaches to solving general optimization problems that would take us beyond what we can hope to accomplish in this book. Solving general optimization problems is diÆcult and the best advice we can give here is that you should obtain a good package and use it. However, if your problem is reasonably well behaved

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

83

in the sense that the Karush-Kuhn-Tucker are both necessary and suÆcient, then the problem is simply to solve the Karush-Kuhn-Tucker conditions. This means writing the Karush-Kuhn-Tucker conditions as a complementarity problem and solving the problem using the methods of the previous chapter.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

84

Exercises 4.1. Suppose that the probability density function of a non-negative random variable, y , is exp( yi =i )=i where i = Xi for some observable data Xi (Xi is 1 k and is k 1). (a) Show that the rst order conditions for the maximum likelihood estimator of can be written as X Xi > Xi X Xi > yi = : (Xi )2 (Xi )2 (b) Use this result to de ne a recursive algorithm to estimate . (c) Write a Matlab function of the form [beta,sigma]=example(y,X) that computes the maximum likelihood estimator of and its asymptotic covariance matrix . The function should be a stand-alone procedure (i.e., do not call any optimization or root- nding solvers) that implements the recursive algorithm. (d) Show that the recursive algorithm can be interpreted as a quasi-Newton method. Explain fully. 4.2. The two-parameter gamma probability distribution function has density:

1 x1 1 e f (x; ) = 2 (1 )

2 x

:

(a) Derive the rst order conditions associated with maximizing the log-likelihood associated with this distribution. Note that the rst and second derivatives of the log of the function are the psi and trigamma functions. The Matlab toolbox contains procedures to evaluate these special functions. (b) Solve the rst order condition for 2 in terms of 1 . Use this to derive an optimality condition for 1 alone. (c) Write a Matlab function that is passed a vector of observations (of positive numbers) and returns the maximum likelihood estimates of and their covariance matrix. Implement the function to use Newton's method without calling any general optimization or root- nding solvers.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

85

Notice that the maximum likelihood estimator of depends on the data Pn Pn 1 1 only through Y1 = n i=1 xi , the arithmetic mean, and Y2 = exp( n i=1 ln(xi )), the geometric mean (Y1 and Y2 are known as suÆcient statistics for ). Your code should exploit this by only computing these suÆcient statistics once. (d) Plot 1 as a function of Y1 =Y2 over the range [1:1; 3]. 4.3. CIR Bond Pricing The so-call Cox-Ingersoll-Ross (CIR) bond pricing model uses the function

Z (r; ; ; ; ) = A( ) exp( B ( )r) with 2=2 2 e( +)=2 A( ) = ( + )(e 1) + 2

and

B ( ) =

2(e 1) ; ( + )(e 1) + 2

p where = 2 + 2 2 . Here r is the current instantaneous rate of interest, is the time to maturity of the bond, and , and are model parameters. The percent rate of return on a bond is given by r( ) = 100 ln(Z (r; ))=: In the following table, actual rates of return7 on Treasury bonds for 9 values of are given for 5 consecutive Wednesdays in early 1999. Date .25 .5 1 2 3 5 7 10 30 1999/01/07 4.44 4.49 4.51 4.63 4.63 4.62 4.82 4.77 5.23 1999/01/13 4.45 4.48 4.49 4.61 4.61 4.60 4.84 4.74 5.16 1999/01/20 4.37 4.49 4.53 4.66 4.66 4.65 4.86 4.76 5.18 1999/01/27 4.47 4.47 4.51 4.57 4.57 4.57 4.74 4.68 5.14 1999/02/03 4.48 4.55 4.59 4.72 4.73 4.74 4.91 4.83 5.25 7 Actually, the data is constructed by a smoothing and tting process and thus these returns do

not necessarily represent the market prices of actual bonds; for the purposes of the exercise, however, this fact can be ignored.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

86

a) For each date, nd the values of r, , and that minimize the squared dierences between the model and the actual rates of return. This is one way that model parameters can be \calibrated" to the data and ensures that model parameters yield a term structure that is close to the observed term structure. b) In this model the values of the parameters are xed, but the value of r varies over time. In fact, part (a) showed that the three parameters values vary from week to week. As an alternative, nd the values of the parameters and the 5 values of r that minimize the squared deviations between the model and actual values. Compare these to the parameter values obtained by calibrating to each date separately. 4.4. Option-based Risk-neutral Probabilities An important theorem in nance theory demonstrates that the value of a European put option is equal to the expected return on the option, with the expectation taken with respect to the so-called risk-neutral probability measure8

V (k) =

Z 1

0

(k

p)+ f (p)dp =

Z k

0

(k

p)f (p)dp

where f (p) is the probability distribution of the price of underlying asset at the option's maturity, k is the option's strike price and (x)+ = max(0; x). This relationship has been used to compute estimates of f (p) based on observed asset prices. There are two approaches that have been taken. The rst is to choose a parametric form for f and nd the parameters that best t the observed option price. To illustrate, de ne the discrepancy between observed and model values as

e(k) = Vk

Z k

0

(k

p)f (p; )dp

and then t by, e.g., minimizing the sum of squared errors: min

X j

e(kj )2 :

The other approach is to discretize the price, pi , and its probability distribution, fi . Values of the fi can be computed that correctly reproduce observed option

8 This is strictly true only if the interest rate is 0 or, equivalently, if the option values are interest

rate adjusted appropriately. Also, the price of the underlying asset should not be correlated with the interest rate.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

87

value and that satisfy some auxiliary condition. That condition could be a smoothness condition, such as minimizing the sum of the fi+1 2fi + fi 1 ; if the pi are evenly spaced this is proportional to an approximation to the second derivative of f (p). An alternative is to compute the maximum entropy values of the fi : max

X

ffi g i

fi ln(fi );

subject to the constraints that the fi are non-negative and sum to 1. It is easy to show that the fi satisfy P exp( j j (kj pi )+ ) P fi = P + ; i exp( j j (kj pi ) )

where j is the Lagrange multiplier on the constraint that the j th option is correctly priced. The problem is thus converted to the root nding problem of solving for the Lagrange multipliers:

Vj

X i

fi (kj

pi )+ = 0;

where the fi are given above. Write a MATLAB program that takes as input a vector of price nodes, p, and associated vectors of strike prices, k, and observed put option values, v , and returns a vector of maximum entropy probabilities, f , associated with p: f=RiskNeutral(p,k,v)

The function can pass an auxiliary function to a root nding algorithm such as Newton or Broyden. The procedure just described has the peculiar property that (if put options alone are used), the upper tail probabilities are all equal above the highest value of the kj . To correct for this, one can add in the constraint that the expected price at the option's expiration date is the current value of the asset, as would be true in a 0 interest rate situation. Thus modify the original program to accept the current value of the price of the underlying asset: f=RiskNeutral(p,k,v,p0)

To test your program, use the script le RiskNeutD.m.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

88

4.5. Consider the Quadratic Programming problem 1 > > max 2 x Dx + c x x s:t: Ax b x0

where D is a symmetric n n matrix, A is an m n matrix, b is an m-vector. (a) Write the Karush-Kuhn-Tucker necessary conditions as a linear complementarity problem. (b) What condition on D will guarantee that the Karush-Kuhn-Tucker conditions are suÆcient for optimality? 4.6. A consumer's preferences over the commodities x1 , x2 , and x3 are characterized by the Stone-Geary utility function

U (x) =

3 X i=1

i ln(xi

i )

where i > 0 and xi > i 0. The consumer wants to maximize his utility subject to the budget constraint 3 X i=1

p i xi I

where pi > 0 denotes the price of xi , I denotes income, and I

P3 i=1 pi i

> 0:

(a) Write the Karush-Kuhn-Tucker necessary conditions for the problem. (b) Verify that the Karush-Kuhn-Tucker conditions are suÆcient for optimality. (c) Derive analytically the associated demand functions. (d) Derive analytically the shadow price and interpret its meaning. (e) Prove that the consumer will utilize his entire income.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

89

4.7. Derive and interpret the Karush-Kuhn-Tucker conditions for the classical transportation problem: min

s:t:

n X m X {=1 |=1 n X x{| {=1 m X x{| |=1 x{|

x{| x{|

d| | = 1; : : : ; m s{ { = 1; : : : ; n

0

{ = 1; : : : ; n; | = 1; : : : ; m

State suÆcient conditions for the transportation problem to have an optimal feasible solution. 4.8. Demand for a commodity in regions A and B is given by:

Region A : p = 200 2q Region B : p = 100 4q Supply is given by:

Region A : p = 20 + 8q Region B : p = 10 + 6q: The transportation cost between regions is $10 per unit. Formulate an optimization problem that characterizes the competitive spatial price equilibrium. Derive, but do not solve, the Karush-Kuhn-Tucker conditions. Interpret the shadow prices. 4.9. Portfolio Choice Suppose that the returns on a set of n assets has mean (n 1) and variance (n n). A portfolio of assets can be characterized by a set of share weights, ! , an n 1 vector of non-negative values summing to 1. The mean return on portfolio is >! and its variance is ! >! . A portfolio is said to be on the mean-variance eÆcient frontier if its variance is as small as possible for a given mean return.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

90

Write a MATLAB program that calculates and plots a mean-variance eÆcient frontier. Write it so it returns two vectors that provide points on the frontier: [mustar,Sigmastar]=MV(mu,Sigma,n)

Here n represents the desired number of points. Run the program MVDemo.m to test your program. Hint: Determine the mean return from the minimium variance portfolio and determine the maximum mean return portfolio. These provide lower and upper bounds for mustar. Then solve the optimization problem for the remaining n 2 values of mustar. 4.10. Consider the nonlinear programming problem max x22 2x1 x21 x1 ;x2 s:t: x21 + x22 1 x1 0; x2 0: (a) (b) (c) (d) (e)

Write the Karush-Kuhn-Tucker necessary conditions for the problem. What points satisfy the Karush-Kuhn-Tucker necessary conditions. Are the Karush-Kuhn-Tucker conditions suÆcient for optimality? How do you know that problem possesses an optimum? Determine the optimum, if any.

4.11. A tomato processor operates two plants whose hourly variable costs (in dollars) are, respectively,

c1 = 80 + 2:0x1 + 0:001x21 c2 = 90 + 1:5x2 + 0:002x22 ; where xi is the number of cases produced per hour at plant i. In order to meet contractual obligations, he must produce at a rate of at least 2000 cases per hour (x1 + x2 2000.) He wishes to do so at minimal cost. (a) Write the Karush-Kuhn-Tucker necessary conditions for the problem. (b) Verify that the Karush-Kuhn-Tucker conditions are suÆcient for optimality. (c) Determine the optimal levels of production. (d) Determine the optimal value of the shadow price and interpret its meaning.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

91

4.12. Consider the problem of allocating a scarce resource, the total supply of which is b > 0, among n tasks with separable rewards:

f1 (x1 ) + f2 (x2 ) + : : : + fn (xn ) s:t: x1 + x2 + : : : + xn b x1 0; x2 0; : : : ; xn 0:

max

x1 ;x2 ;:::;xn

Assume each fi is strictly increasing and dierentiable but not necessarily concave. (a) (b) (c) (d) (e)

How do you know that problem possesses an optimum? Write the Karush-Kuhn-Tucker necessary conditions. Prove that the scarce resource will be completely utilized. Interpret the shadow price associated with the resource constraint. Given a marginal increase in the supply of the resource, to which task(s) would you allocate the additional amount.

4.13. Consider a one-output two-input production function

y = f (x1 ; x2 ) = x21 + x22 : Given the prices of inputs 1 and 2, w1 and w2 , the minimum cost of producing a given level of output, y, is obtained by solving the constrained optimization problem min C = w1 x1 + w2 x2

x1 ;x2

s:t:

f (x1 ; x2 ) y:

Letting denote the shadow price associated with the production constraint, answer the following questions: (a) (b) (c) (d)

Write the Karush-Kuhn-Tucker necessary conditions. Find explicit expressions for the optimal x1 , x2 , and C . Find an explicit expression for the optimal and interpret its meaning. Dierentiate the expression for C to con rm that @C @ y = .

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

92

4.14. A salmon cannery 1produces Q 1-lb. cans of salmon according to a technology 1 4 3 given by Q = 18K L , where capital K is xed at 16 units in the shortrun and labor L may be hired in any quantity at a wage rate of w dollars per unit. Each unit of output provides a pro t contribution of 1 dollar. (a) Derive the rm's shortrun demand for labor. (b) If w = 3, how much would the rm be willing to pay to rent a unit of capital. 4.15. Consider the nonlinear programming problem min s:t:

x1 ;:::;x4

x01:25 x03:50 x04:25 x1 + x2 + x3 + x4 4 x1 ; x2 ; x3 ; x4 0:

(a) What can you say about the optimality of the point (1; 0; 2; 1)? (b) Does this program possess all the correct curvature properties for the Karush-Kuhn-Tucker conditions to be suÆcient for optimality throughout the feasible region? Why or why not? (c) How do you know that problem possesses an optimal feasible solution? 4.16. Consider the non-linear programming problem min s:t:

x1 ;x2

2x21 12x1 + 3x22 3x1 + x2 12 x1 + x2 6 x1 ; x2 0:

18x2 + 45

The optimal solution to this problem is: x1 = 3 and x2 = 3. (a) Verify that the Karush-Kuhn-Tucker conditions are satis ed by this solution. (b) Determine the optimal values for the shadow prices 1 and 2 associated with the structural constraints, and interpret 1 and 2 . (c) If the second constraint were changed to x1 + x2 5, what would be the eect on the optimal values of x1 , x2 , 1 , and 2 ?

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

93

Bibliographic Notes A number of very useful references exist on computational aspects of optimization. Perhaps the most generally useful for practitioners are Gill et al. and Fletcher. Ferris and Sinapiromsaran discusses solving non-linear optimization problems by formulating them as CPs.

Chapter 5 Numerical Integration and Dierentiation In many computational economic applications, one must compute the de nite integral of a real-valued function f with respect to a \weighting" function w over an interval I of R) distributed as + ZR ~ and Z is a row d-vector of independent standard normal variates. If fzi ; wig are the degree n Gaussian nodes and weights for a standard normal variate, then an nd degree 1 Gauss-Hermite quadrature applies to the weighting function w(x) = exp( x2 ), as opposed the p weighting function for the standard normal density w(x) = exp( x2 =2)= 2.

CHAPTER 5. INTEGRATION AND DIFFERENTIATION

100

approximation for X~ may be constructed using tensor products. For example, in two dimensions the nodes and weights would take the form

xij = (1 + R11 zi + R21 zj ; 2 + R12 zi + R22 zj ) and

pij = pi pj : The Gaussian quadrature scheme for normal variates may also be used to develop a reasonable scheme for discretizing lognormal random variates. By de nition, Y~ is lognormally distributed with parameters and 2 if, and only if, it is distributed as exp(X~ ) were X~ is normally distributed with mean and variance 2 . It follows that if fxi ; wi g are nodes and weights for a Normal(; 2) distribution, then fyi; wi g, where yi = exp(xi ), provides a reasonable discrete approximant for a Lognormal(; 2) distribution. Given this discrete approximant for the lognormal distribution, one can ~ as follows: Ef (Y~ ) = R f (y ) w(y ) dy estimate the expectation of a function of Y Pn i=1 f (yi )wi This integration rule for lognormal distributions will be exact if f is a polynomial of degree 2n 1 and less in log(y ) (not in y ).

5.3 Monte Carlo Integration Monte Carlo integration methods are motivated by the Strong Law of Large Numbers. One version of the Law states that if x1 ; x2 ; : : : are independent realizations of a random variable X~ and f is a continuous function, then lim n!1

n 1X f (x ) = Ef (X~ ) n i=1 i

with probability one. The Monte Carlo integration scheme is thus a simple one. To compute an approximation to the expectation of f (X~ ), one draws a random sample x1 ; x2 ; : : : ; xn from the distribution of X~ and sets h

E f (X~ )

i

n1

n X i=1

f (xi ):

oers two intrinsic random number generators. The routine rand generates a random sample from the Uniform(0,1) distribution stored in either vector or matrix format. Similarly, the routine randn generates a random sample from the standard normal distribution stored in either vector or matrix format. In particular, Matlab

CHAPTER 5. INTEGRATION AND DIFFERENTIATION

101

a call of the form x=rand(m,n) or x=randn(m,n) generates a random sample of mn realizations and stores it in an m n matrix. The uniform random number generator is useful for generating random samples from other distributions. Suppose X~ has a cumulative distribution function F (x) = Pr(X~ x) whose inverse has a well-de ned closed form. If U~ is uniformly distributed on (0; 1), then X~ = F 1 (U~ ) has the desired distribution F . Thus, to generate a random sample x1 ; x2 ; : : : ; xn from the X~ distribution, one generates a random sample u1 ; u2 ; : : : ; un from the uniform distribution and sets xi = F 1 (ui ). The standard normal random number generator is useful for generating random samples from related distributions. For example, to generate a random sample of n lognormal variates, one may use the script x = exp(mu+sigma*randn(n));

where mu and sigma are the mean and standard deviation of the distribution. To generate a random sample of n d-dimensional normal variates one may use the script x = randn(n,d)*chol(Sigma)+mu(ones(n,1),:);

where Sigma is the d by d variance-covariance matrix and mu is the mean vector in row form. A fundamental problem that arises with Monte Carlo integration is that it is almost impossible to generate a truly random sample of variates for any distribution. Most compilers and vector processing packages provide intrinsic routines for computing so-called random numbers. These routines, however, employ iteration rules that generate a purely deterministic, not random, sequence of numbers. In particular, if the generator is repeatedly initiated at the same point, it will return the same sequence of \random" variates each time. About all that can be said of numerical random number generators is that good ones will generate sequences that appear to be random, in that they pass certain statistical tests for randomness. For this reason, numerical random number generators are more accurately said to generate sequences of \pseudo-random" rather than random numbers. Monte Carlo integration is easy to implement and may be preferred over Gaussian quadrature if the a routine for computing the Gaussian mass points and probabilities is not readily available or if the integration is over many dimensions. Monte Carlo

CHAPTER 5. INTEGRATION AND DIFFERENTIATION

102

integration, however, is subject to a sampling error that cannot be bounded with certainty. The approximation can be made more accurate, in a statistical sense, by increasing the size of the random sample, but this can be expensive if evaluating f or generating the pseudo-random variate is costly. Approximations generated by Monte Carlo integration will vary from one integration to the next, unless initiated at the same point, making the use of Monte Carlo integration in conjunction within other iterative schemes, such as dynamic programming or maximum likelihood estimation, problematic. So-called quasi Monte-Carlo methods can circumvent some of the problems associated with Monte-Carlo integration.

5.4 Quasi-Monte Carlo Integration Although Monte-Carlo integration methods originated using insights from probability theory, recent extensions have severed that connection and, in the process, demonstrated ways in which the methods can be improved. Monte-Carlo methods rely on sequences fxi g with the property that 1 b aX lim f (xi ) = n!1 n i=1

Z b a

f (x) dx:

Any sequence that satis es this condition for arbitrary (Riemann) integrable functions can be used to approximate an integral on [a; b]. Although the Law of Large Numbers assures us that this is true when the xi are independent and identically distributed random variables, other sequences also satisfy this property. Indeed, it can be shown that sequences that are explicitly non-random, but instead attempt to ll in space in a regular manner exhibit improved convergence properties. There are numerous schemes for generating equidistributed sequences. The best known are the Neiderreiter, Weyl, and Haber. The following Matlab script generates equidistributed sequences of length n for the unit hypercube: eds_pp=sqrt(primes(7920)); i=(1:n)'; switch upper(type(1)) case 'N' % Neiderreiter j=2.^((1:d)/(d+1)); x=i*j; x=x-fix(x); case 'W' % Weyl j=eds_pp(1:d); x=i*j;

CHAPTER 5. INTEGRATION AND DIFFERENTIATION x=x-fix(x); case 'H' j=eds_pp(1:d); x=(i.*(i+1)./2)*j; x=x-fix(x); end

103

% Haber

The Matlab toolbox accompanying the textbook includes a function qnwequi that generates the equidistributed nodes for integration over an arbitrary bounded interval in a space of arbitrary dimension. The calling sequence takes the form [x,w] = qnwequi(n,a,b,type);

where x are the nodes, w are the weights, n is the number of nodes and weights, a is the vector of left endpoints, b is the vector of right endpoints, and type refers to the type of equidistributed sequence (`N'-Neiderrieter, `W'-Weyl, and `H'-Haber). For example, suppose one wished to compute the integral of exp(x1 + x2 ) over the rectangle [1; 2] [0; 5] in 0 for a lower bound and h < 0 for an upper bound). To obtain formulii for second derivatives we can use the same approach but in order to obtain second order accuracy, we will (in general) require a weighted sum composed of 4 points

f 0 (x) af (x) + bf (x + h) + cf (x + h) + df (x + h):

We also expand the Taylor series to the fourth order, obtaining

af (x) + bf (x + h) + cf (x + h) + df (x + h) = 2 (a + b + c + d)f (x) + h(b + c + d )f 0 (x) + h2 (b + c2 + d 2 )f 00 (x)

4 + d 3 )f 000 (x) + h24 bf (4) (z1 ) + c4 f (4) (z2 ) + d 4 f (4) (z3 ) : + 6 The constraints a + b + c + d = 0, b + c + d = 0, b + c2 + d 2 = 2=h2 and b + c3 + d 3 = 0 uniquely determine a, b, c and d: h3 (b + c3

2

2 6 6 4

a b c d

3 7 7 5

2 = 2 h

6 6 6 6 6 6 6 6 6 6 6 6 6 6 4

1++ 2 2 ( 1)( 1)( 2 1 ( 1)( 1)( 1 2 ( 1)( 1)(

3

) ) )

7 7 7 7 7 7 7 7 7 7 7 7 7 7 5

CHAPTER 5. INTEGRATION AND DIFFERENTIATION

110

with

af (x) + bf (x + h) + cf (x + h) + df (x + h) = f 00 (x) + O(h2 ): Thus, by using 4 points, we can ensure that the approximation converges at a quadratic rate in h. Some special cases of importance arise when the evaluations points are evenly spaced. When x lies halfway between x + h and one of the other two points (i.e., when either = 1 or = 1), we obtain the centered nite dierence approximation

f 00 (x) =

f (x + h) 2f (x) + f (x h) + O(h2); h2

which is second order accurate even though only three approximation points are used. If = 2 and = 3 we obtain a formula that is useful when a derivative is needed at a boundary of the domain. In this case 1 f 00 (x) = 2 [2f (x) 5f (x + h) + 4f (x + 2h) f (x + 3h)] + O(h2 ): h An important use of second derivatives is in computing Hessian matrices. Given some function f : 0, there exists a polynomial p such that

jjf pjj1 =

sup jf (x) p(x)j < :

x2[a;b]

The Weierstrass theorem provides strong motivation for using polynomials to approximate continuous functions. The theorem, however, is not very practical. It gives no guidance on how to nd a good polynomial approximant. It does not even state what order polynomial is required to achieve the required level of accuracy. One apparently reasonable way to construct a nth -degree polynomial approximant for a function f is to form the unique (n 1)th -order polynomial p(x) = c1 + c2 x + c3 x2 + : : : + cn xn 1 that interpolates f at the n evenly spaced interpolation nodes i 1 xi = a + b a 8i = 1; 2; : : : ; n: n 1 In practice, however, polynomial interpolation at evenly spaced nodes often does not produce an accurate approximant. In fact, there are well-behaved functions for which polynomial approximants with evenly spaced nodes rapidly deteriorate, rather than improve, as the degree of approximation n rises. Numerical analysis theory and empirical experience both suggest that polynomial approximants over a bounded interval [a; b] should be constructed by interpolating the underlying function at the so-called Chebychev nodes: a+b b a n i + 0:5 xi = + cos ; 8i = 1; 2; : : : ; n: 2 2 n As illustrated in Figure 6.1 for n = 9, the Chebychev nodes are not evenly spaced. They are more closely spaced near the endpoints of the interpolation interval and less so near the center.

CHAPTER 6. FUNCTION APPROXIMATION

132

Chebychev Nodes 1

0.8

0.6

0.4

0.2

0

−0.2

−0.4

−0.6

−0.8

−1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Figure 6.1 Chebychev-node polynomial interpolants possess some strong theoretical properties. According to Rivlin's Theorem, Chebychev-node polynomial interpolants are very nearly optimal polynomial approximants. Speci cally, the approximation error associated with the nth -degree Chebychev-node polynomial interpolant cannot be larger than 2 log(n) + 2 times the lowest error attainable with any other polynomial approximant of the same order. For n = 100, this factor is approximately 30, which is very small when one considers that other polynomial interpolation schemes typically produce approximants with errors that are orders of magnitude, that is, powers of 10, larger then the optimum. In practice, the accuracy aorded by the Chebychevnode polynomial interpolant is often much better than indicated by Rivlin's bound, especially if the function being approximated is smooth. Another theorem, Jackson's theorem, provides a more useful result. Speci cally, if f is continuously dierentiable, then the approximation error aorded by the nth degree Chebychev-node polynomial interpolant pn can be bounded above: jjf pnjj n6 jjf 0jj(b a)(log(n)= + 1): This error bound can often be accurately estimated in practice, giving the analyst a good indication of the accuracy aorded by the Chebychev-node polynomial in-

CHAPTER 6. FUNCTION APPROXIMATION

133

terpolant. More importantly, however, the error bound goes to zero as n rises. In contrast to polynomial interpolation with evenly spaced nodes, one can achieve any desired degree of accuracy with Chebychev-node polynomial interpolation by increasing the degree of approximation. To illustrate the dierence between Chebychev and evenly spaced node polynomial interpolation, consider approximating the function f (x) = exp( x) on the interval [ 1; 1]. The approximation error associated with ten node polynomial interpolants are illustrated in Figure 6.2. The Chebychev node polynomial interpolant exhibits errors that oscillate fairly evenly throughout the interval of approximation, a common feature of Chebychev node interpolants. The evenly spaced node polynomial interpolant, on the other hand, exhibits signi cant instability near the endpoints of the interval. The Chebychev node polynomial interpolant avoids such endpoint instabilities because the nodes are more heavily concentrated near the endpoints. −9

4

x 10

Approximation Error for exp(−x) Chebychev Nodes Uniform Nodes

3.5

3

2.5

y

2

1.5

1

0.5

0

−0.5

−1

0

x

Figure 6.2 The most intuitive basis for expressing polynomials, regardless of the interpolation nodes chosen, is the monomial basis consisting of the simple power functions 1; x; x2 ; x3 ; : : :, illustrated in Figure 6.3 for the interval x 2 [0; 1]. However, the monomial basis produces an interpolation matrix that is a so-called Vandermonde

CHAPTER 6. FUNCTION APPROXIMATION matrix: =

2 6 6 6 4

x1 x2 .. . xn

1 1 .. . 1

::: ::: ... :::

xn1 2 xn1 1 xn2 2 xn2 1 .. .. . . n 2 xn xnn 1

134

3 7 7 7: 5

Vandermonde matrices are notoriously ill-conditioned, and increasingly so as the degree of approximation n is increased. Thus, eorts to compute the basis coeÆcients of the monomial basis polynomials often fail due to rounding error, and attempts to compute increasingly more accurate approximations by raising the number of interpolation nodes are often futile. Monomial Basis Functions 1

1

0

1

0 0

1

1

0 0

1

1

0 1

1

1

1

1

0

1

1

0 0

0

0 0

1

0

1

1

0 0

0

0 0

1

Figure 6.3 Fortunately, alternatives to the standard monomial basis exist. In fact, any sequence of n polynomials having exact orders 0; 1; 2; : : : ; n 1 can serve as a basis for all polynomials of order less than n. One such basis for the interval [a; b] on the real line is the Chebychev polynomial basis. De ning z = 2(x a)=(b a) 1, to normalize the domain to the interval [-1,1], the Chebychev polynomials are de ned

CHAPTER 6. FUNCTION APPROXIMATION

135

recursively as:2

j (x) = Tj 1 (z ) where

T0 (z ) T1 (z ) T2 (z ) T3 (z )

= = = = .. . Tj (z ) =

1 z 2z 2 4z 3

1 3z

2zTj 1 (z )

Tj 2 (z ):

The rst twelve Chebychev basis polynomials for the interval x 2 [0; 1] are displayed in Figure 6.4. Chebychev Polynomial Basis Functions 1

1

1

0

0

0

0

1

0

1

1

1

1

0

0

0

0

1

0

1

1

1

1

0

0

0

0

1

0

1

0

1

0

1

0

1

Figure 6.4 2 The Chebychev polynomials also possess the alternate trigonometric de nition Tj (z ) =

cos arccos(z )j on the domain [a; b].

CHAPTER 6. FUNCTION APPROXIMATION

136

Chebychev polynomials are an excellent basis for constructing polynomials that interpolate function values at the Chebychev nodes. Chebychev basis polynomials in combination with Chebychev interpolation nodes yields an extremely well-conditioned interpolation equation that can be accurately and eÆciently solved, even with high degree approximants. The interpolation matrix associated with the Chebychev interpolation has typical element ij = cos((n

i + 0:5)(j

1)=n):

This Chebychev interpolation matrix is orthogonal > = diagfn; n=2; n=2; : : : ; n=2g

p

and has a condition number 2 regardless of the degree of interpolation, which is very near the ideal minimum of 1. This implies that the Chebychev basis coeÆcients can be computed quickly and accurately, regardless of the degree of interpolation. Derivatives and integrals of polynomials are also polynomials. Dierentiation decreases the polynomial order by 1 and integration increases it by 1. A dierential operator that maps the coeÆcients of a polynomial in the Chebyshev basis is given by the n 1 n matrix operator with ij th element given by

Dij =

8 > > >

> > : 0

if i = 1 and i + j is odd if i > 1, i + j is odd and i<j otherwise.

Similarly, the n + 1 n matrix with ij th element

Dij 1 =

8 > > > > > > > > > > > > < > > > > > > > > > > > > :

if i 2 and j = 1 b a if i = 1 and j = 2 8 j ( 1) (b a) if i = 1 and j > 2 2j (j 2) b a if i > 1 and j = i 1 4j b a 4(j 2) if i > 1 and j = i + 1 0 otherwise. b a

2

maps Chebyshev coeÆcients into the coeÆcients of the integral (normalized so the integral is 0 at a).

CHAPTER 6. FUNCTION APPROXIMATION

137

6.3 Piecewise Polynomial Splines Piecewise polynomial splines, or simply splines for short, are a rich, exible class of functions that may be used instead of high degree polynomials to approximate a real-valued function over a bounded interval. Generally, an order k spline consists of series of kth order polynomial segments spliced together so as to preserve continuity of derivatives of order k 1 or less. The points at which the polynomial pieces are spliced together, 1 < 2 < : : : < p , are called the breakpoints of the spline. By convention, the rst and last breakpoints are the endpoints of the interval of approximation [a; b]. A general order k spline with p breakpoints may be characterized by (p 1)(k +1) parameters, given that each of the p 1 polynomial segments is de ned by its k + 1 coeÆcients. By de nition, however, a spline is required to be continuous and have continuous derivatives up to order k 1 at each of the p 2 interior breakpoints, which imposes k(p 2) conditions. Thus, an order k spline with p breakpoints is actually characterized by n = (k + 1)(p 1) k(p 2) = p + k 1 free parameters. It should not be surprising that a general order k spline with p breakpoints can be written as a linear combination of n = p + k 1 basis functions. There are many ways to express bases for splines, but for applied numerical work the most useful are the so-called B-splines. The B-splines for an order k spline with breakpoint vector can be computed using the recursive de nition x j k k 1; j +1 x Bjk; (x) = Bj 1 (x) + B k 1; (x); j j k j +1 j +1 k j for i = 1; : : : ; n, with the recursion starting with j x < j +1 0 ; Bj (x) = 10 ifotherwise. This de nition requires that we extend the breakpoint vector, , for j < 1 and j > p: 1 j = ab ifif jj p: Additionally, at the endpoints we set the terms B0k 1; Bnk 1; = = 0: 1 1 k n+1 n k+1 Given a B-spline representation of a spline, the spline can easily be dierentiated by computing simple dierences, and can be integrated by computing simple sums. Speci cally:

dBjk; (x) k = Bjk 11; (x) dx j j k

k Bjk 1; (x) j +1 j +1 k

CHAPTER 6. FUNCTION APPROXIMATION and

Z x a

Bjk; (z )dz

=

n X i i=j

138

i k k+1; Bi+1 (x): k

Although these formulae appear a bit complicated, their application in computer programs is relatively straightforward. First notice that the derivative of a B-spline of order k is a weighted sum of two order k 1 B-splines. Thus, the derivative of an order k spline is an order k 1 spline with the same breakpoints. Similarly, the integral of a B-spline can be represented as the sum of B-splines of order k + 1. Thus, the antiderivative of an order k spline is an order k + 1 spline with the same breakpoints. This implies that the family of splines are closed under dierentiation and integration, with the oder k decreasing or increasing by 1 and with the breakpoints remaining unchanged. Two classes of splines are often employed in practice. A rst-order or linear spline is a series of line segments spliced together to form a continuous function. A thirdorder or cubic spline is a series of cubic polynomials segments spliced together to form a twice continuously dierentiable function. Linear spline approximants are particularly easy to construct and evaluate in practice, which explains their widespread popularity. Linear splines use line segments to connect points on the graph of the function to be approximated. A linear spline with n evenly spaced breakpoints on the interval [a; b] may be written as a linear combination

f^(x) =

n X i=1

i (x)ci

of the basis functions: ( jx j j if jx j h 1 j j (x) = h 0 otherwise. Here, h = (b a)=(n 1) is the distance between breakpoints and j = a + (j 1)h, j = 1; 2; : : : ; n, are the breakpoints. The linear spline basis functions are popularly called the \hat" functions, for reasons that are clear from Figure 6.5. This gure illustrates the basis functions for a degree 12, evenly spaced breakpoint linear spline on the interval [0; 1]. Each hat function is zero everywhere, except over a narrow support of width 2h. The basis function achieves a maximum of 1 at the midpoint of its support. One can x the coeÆcients of an n-degree linear spline approximant for a function f by interpolating its values at any n points of its domain, provided that the resulting

CHAPTER 6. FUNCTION APPROXIMATION

139

Linear Spline Basis Functions 1

1

0

1

0 0

1

1

0 0

1

1

0 1

1

1

1

1

0

1

1

0 0

0

0 0

1

0

1

1

0 0

0

0 0

1

Figure 6.5 interpolation matrix is nonsingular. However, if the interpolation nodes x1 ; x2 ; : : : ; xn are chosen to coincide with the spline breakpoints 1 ; 2 ; : : : ; n , then computing the basis coeÆcients of the linear spline approximant becomes a trivial matter. In this case i (xj ) equals one if i = j , but equals zero otherwise; that is, the interpolation matrix is simply the identity matrix and the interpolation equation reduces to the identity c = y , where y is the vector of function values at the interpolation nodes. The linear spline approximant of f when nodes and breakpoints coincide thus takes the form

f^(x) =

n X i=1

i (x)f (xi ):

When interpolation nodes and breakpoints coincide, no computations other than function evaluations are required to form the linear spline approximant. For this reason linear spline interpolation nodes in practice are always chosen to be the spline's breakpoints. Evaluating a linear spline approximant and its derivative at an arbitrary point x is also straightforward. Since at most two basis functions are nonzero at any point, only

CHAPTER 6. FUNCTION APPROXIMATION

140

two basis function evaluations are required. Speci cally, if i is the greatest integer less than 1 + (x a)=h, then x lies in the interval [i ; i+1 ]. Thus, f^(x) = ((x i )ci+1 + (i+1 x)ci )=h and f^0 (x) = (ci+1 ci )=h: Higher order derivatives are zero, except at the breakpoints, where they are unde ned. Linear splines are attractive for their simplicity, but have certain limitations that often make them a poor choice for computational economic applications. By construction, linear splines produce rst derivatives that are discontinuous step functions and second derivative that are zero almost everywhere. Linear spline approximants thus typically do a very poor job of approximating the rst derivative of a nonlinear function and are incapable of approximating its second derivative. In some economic applications, the derivative represents a measure of marginality that is of as much interest to the analyst as the function itself. The rst and maybe second derivatives of the function also may be needed to solve for the root of the function using Newtonlike method and in the continuous time dynamic models encountered in Chapters 10 and 11 are expressed in terms of second order dierential equations. Cubic spline approximants oer a higher degree of smoothness while retaining much of the exibility and simplicity of linear spline approximants. Because cubic splines possess continuous rst and second derivatives, they typically produce adequate approximations for both the function and its rst and second derivatives. The basis functions for n-degree, evenly spaced breakpoint cubic splines on the interval [a; b] are generated using the n 2 breakpoints j = a + h(j 1), j = 1; 2; : : : ; n 2, where h = nb a3 . Cubic spline basis function generated with evenly spaced breakpoints are nonzero over a support of width 4h. As such, at any point of [a; b], at most four basis functions are nonzero. The basis functions for a degree 12, evenly spaced breakpoint cubic spline on the interval [0; 1] are illustrated in Figure 6.6. Although spline breakpoints are often chosen to be evenly spaced, this need not be the case. Indeed, the ability to distribute breakpoints unevenly and to stack them on top of one another adds considerably to the exibility of splines, allowing them to accurately approximate a wide range of functions. In general, functions that exhibit wide variations in curvature are diÆcult to approximate numerically with polynomials of high degree. With splines, however, one can often nesse curvature diÆculties by concentrating breakpoints in regions displaying the highest degree of curvature. To illustrate the importance of breakpoint location, consider the problem of forming a cubic spline approximant for Runge's function 1 f (x) = 1 + 25x2

CHAPTER 6. FUNCTION APPROXIMATION

141

Cubic Spline Basis Functions 1

1

0

1

0 0

1

1

0 0

1

1

0 1

1

1

1

1

0

1

1

0 0

0

0 0

1

0

1

1

0 0

0

0 0

1

Figure 6.6 on the interval x 2 [ 5; 5]. Figure 6.7 displays two cubic spline approximations, one using thirteen evenly spaced breakpoints, the other using thirteen breakpoints that cluster around zero (the breakpoints are indicated by `x' symbols). Figure 6.8 shows the associated approximation errors (note that the errors for the unevenly spaced approximation have been multiplied by 100). In Figure 6.7 the unevenly spaced breakpoints approximation lies almost on top of the actual function, whereas the even spacing leads to signi cant errors, especially near zero. The gures clearly demonstrate the power of spline approximations with good breakpoint placement. The placement of the breakpoints can also be used to aect the continuity of the spline approximant and its derivatives. By stacking breakpoints on top of one another, we can reduce the smoothness at the breakpoints. Normally, an order k spline has continuous derivatives to order k 1 at the breakpoints. By stacking q breakpoints, we can reduce this to k q continuous derivatives at this breakpoint. For example, with two equal breakpoints, a cubic spline possesses a discontinuous second derivative at the point. With three equal breakpoints, a cubic spline possesses a discontinuous rst derivative at that point, that is, it exhibits a kink there. Stacking breakpoints is a useful practice if the function is known a priori to exhibit a kink at a

CHAPTER 6. FUNCTION APPROXIMATION

142

Runge’s Function with Spline Approximations 1.2 Runge Even Spacing Uneven Spacing 1

0.8

y

0.6

0.4

0.2

0

−0.2 −5

−4

−3

−2

−1

0

1

2

3

4

5

x

Figure 6.7 given point. Kinks arise in the pricing of options, which display a kink in their payo function and in dynamic optimization problems with discrete choice variables, which display kinks in their marginal value function (or its derivative). Regardless of the placement of breakpoints, splines have several important and useful properties. We have already commented on the limited domain of the basis function. This limited support implies that spline interpolation matrices are sparse and for this reason can be stored and manipulated using sparse matrix methods. This property is extremely useful in high-dimensional problems for which a fully expanded interpolation matrix would strain any computer's memory. Another useful feature of splines is that their values are bounded, thereby reducing the likelihood that scaling eects will cause numerical diÆculties. In general, the limited support and bounded values make spline basis matrices well-conditioned. If the spline interpolation matrix must be reused, one must resist the temptation to form and store its inverse, particularly if the size of the matrix is large. Inversion destroys the sparsity structure. More speci cally, the inverse of the interpolation matrix will be dense, even though the interpolation matrix is not. When n is large, solving the sparse n by n linear equation using sparse L-U factorization will generally be less costly than performing the matrix-vector multiplication required with the

CHAPTER 6. FUNCTION APPROXIMATION

143

Approximation Errors for Runge’s Function 0.6 Even Spacing Uneven Spacing 0.4

0.2

y

0

−0.2

−0.4

−0.6 Uneven spacing errors 100x −0.8 −5

−4

−3

−2

−1

0

1

2

3

4

5

x

Figure 6.8 dense inverse interpolation matrix (accomplished with the \n" operator in Matlab).

6.4 Piecewise-Linear Basis Functions Despite their simplicity, linear splines have many virtues. For problems in which the function being approximated is not-smooth and may even exhibit discontinuities, linear splines can still provide reasonable approximations. Unfortunately, derivatives of linear splines are discontinuous, piecewise constant functions. There is no reason, however, to limit ourselves to using the actual derivative of the approximating function, if a more suitable alternative exists. If a function is approximated by a linear spline, a reasonable candidate for an approximation of its derivative is a linear spline constructed using nite dierence approximations to the derivative (see Section 5.6, page 107). Given a breakpoint sequence for the function's approximant, this can be accomplished by de ning a new breakpoint sequence with n 1 values placed at the midpoints of the original sequence: zi = (i + i+1 )=2, i = 1; : : : ; n 1. The new function is set to equal the centered nite dierence

CHAPTER 6. FUNCTION APPROXIMATION

144

approximation to the derivative at the new breakpoints:

f (i+1 ) f (i ) : i+1 i Values between and beyond the zi sequence can be obtained by linear interpolation and extrapolation. We leave it as an exercise to show that this piecewise linear function, evaluated at the original breakpoints (the i ), is equal to the centered nite dierence approximations derived in the last chapter. Approximations to higher order derivatives can be obtained be repeated application of this idea. For completeness, we de ne an approximate integral that is also a linear spline, with a breakpoint sequence zi+1 = (i + i+1 )=2 for i = 2; : : : ; n and with additional breakpoints de ned by extrapolating beyond the original sequence: z1 = (31 2 )=2 and zn+1 = (3n n 1 )=2. The approximation to the integral, f 0 (zi )

F (x) =

Z x 1

f (x)dx

at the new breakpoints is

F (zi ) = F (zi 1 ) + (zi

zi 1 )f (i 1 );

where

F (z1 ) = 12 (1 2 )f (1 ) (this ensures the normalization that F (1 ) = 0).3 This de nition produces an approximation to the integral at the original breakpoints that is equal to the approximation obtained by applying the trapezoid rule (see Section 5.1, page 95): Z i+1 i

f (x)dx 21 (i+1

i )(f (i+1 ) + f (i )):

(we leave the veri cation of this assertion as exercise for the reader). As with the other families of functions discussed, the family of piecewise linear functions obtained using these approximations is closed under dierentiation and integration. Unlike splines, however, for which dierentiation and integration decreases or increases the order of the piecewise segments, leaving the breakpoint sequence 3 It should be pointed out that the breakpoint sequence obtain by integrating and then dieren-

tiating will not produce the original breakpoint sequence unless the original breakpoints are evenly spaced. This leads to the unfortunate property that dierentiating the integral will only produce the original function if the breakpoints are evenly spaced. It can also be shown that, although the rst derivatives are O(h2 ), the second derivatives are only O(h) when the breakpoints are not evenly spaced.

CHAPTER 6. FUNCTION APPROXIMATION

145

unchanged, with the piecewise linear family, dierentiation and integration do not change the polynomial order of the pieces (they remain linear) but decrease or increase the number of breakpoints. The piecewise linear family makes computation using nite dierence operators quite easy, without a need for special treatment to distinguish them from other families of basis functions (including nite element families such as splines). We will return to this point in Chapter 11 when we discuss solving partial dierential equations (PDEs).

6.5 Multidimensional Interpolation The univariate interpolation methods discussed in the preceding sections may be extended in a natural way to multivariate functions through the use of tensor products. To illustrate, consider the problem of approximating a bivariate real-valued function f (x; y ) de ned on a bounded interval I = f(x; y ) j ax x bx ; ay y by g in 1 & ~isempty(tvals) x=funeval(c,cdef,tvals); dx=funeval(c,cdef,tvals,1); r=feval(model.func,'r',tvals,x,dx,model.params{:}); end

In addition to computing the coeÆcient matrix, c, the procedure is implemented to, optionally, take a vector of time values tvals and to return the solution and residual functions at those values (x and r). The solver instructs the root nding algorithm broyden to nd the roots of the function BVPRes, which in turn calls the model.func le to compute the residual and boundary functions. function r=bvpres(c,model,fspace,tnode,Phi,Phi1,tb,phi,phi1); n=size(Phi,2);

CHAPTER 6. FUNCTION APPROXIMATION

169

m=length(tb); c=reshape(c,n,m); % Compute residuals at nodal values x=Phi*c; dx=Phi1*c; r=feval(model.func,'r',tnode,x,dx,model.params{:}); % Compute boundary conditions and concatenate to residuals x=phi*c; dx=phi1*c; b=feval(model.func,'b',tb,x,dx,model.params{:}); r=[r(:);b(:)];

The demonstration le dembvp01 contains the code to solve the example problem using Chebyshev polynomial approximants and plots both the approximation error functions and the residual functions. The procedure solves in a single iteration of the root nding algorithm because it is a linear problem. An economic application of these procedures is illustrated next with a simple market equilibrium example.

Example: Commodity Market Equilibrium At time t = 0 there are available for consumption S0 units of a periodically produced commodity. No more of the good will be produced until time t = 1, at which time

all of the currently available good must be consumed. The change in the level of the stocks is the negative of the rate of consumption, which is given by the demand function, here assumed to be of the constant elasticity type:

s0 (t) = q = D(p) = p :

To prevent arbitrage and to induce storage, the price must rise at a rate that covers the cost of capital, r and the physical storage charges, C :

p0 (t) = rp + C:

It is assumed that no stocks are carried into the next production cycle, which begins at time t = 1; hence the boundary condition that s(1) = 0. This is a two variable system of rst order dierential equations with two boundary conditions, one at t = 0 and the other at t = 1. De ning x = [p; s], the residual function is

r(t; x; x0 ) = x0

x1 ] and the boundary conditions are x2 (0) S0 = 0 and x2 (1) = 0. The model structure can be created using [rx1 + C

CHAPTER 6. FUNCTION APPROXIMATION

170

model.func='pbvp02'; model.tb=[0;1]; model.params={A};

The problem de nition le pbvp02 for this problem is

function out1=pbvp02(flag,t,x,dx,r,C,eta,S0); switch flag case 'r' out1=dx-[r*x(:,1)+C -x(:,1).^(-eta)]; case 'b' out1=x(:,2)-[S0;0]; end

A demonstration le, dembvp02 is available that uses the parameters r = 0:10, C = 0:5, = 2 and S0 = 1. It approximates the solution using a degree n = 6 Chebyshev polynomial approximation. The resulting solution and residual functions are shown in Figures 6.19 and 6.20. It is evident in the latter that the approximation Equilibrium Price and Stock Level 1.4

1.2 price 1

0.8

0.6

stocks

0.4

0.2

0

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

t

Figure 6.19 achieves a high degree of accuracy even with a low order approximation; the maximum sizes of the price and stocks residual functions are approximately 10 10 and 10 3 , respectively.

CHAPTER 6. FUNCTION APPROXIMATION

Residual Functions

−4

10

171

x 10

P’ x 106 S’ 8

6

4

2

0

−2

−4

−6

−8

0

0.1

0.2

0.3

0.4

0.5

0.6

t

Figure 6.20

0.7

0.8

0.9

1

CHAPTER 6. FUNCTION APPROXIMATION

172

Exercises

6.1. Construct the 5- and 50-degree approximants for the function f (x) = exp( x2 ) on the interval [ 1; 1] using each of the interpolation schemes below. For each scheme and degree of approximation, estimate the sup norm approximation error by computing the maximum absolute deviation between the function and approximant at 201 evenly spaced points. Also, graph the approximation error for the degree 5 approximant. (a) (b) (c) (d)

Uniform node, monomial basis polynomial approximant Chebychev node, Chebychev basis polynomial approximant Uniform node, linear spline approximant Uniform node, cubic spline approximant

6.2. In the Cournot model each rm takes the output of the other rms as given when determining its output level. An alternative assumption is that each rm takes its competitiors' output decision functions as given when making its own output choice. This can be expressed as the assumption that !

n X dSj (p) dp dp 1 X dqj 1 = 0 = 0 1+ : dqi D (p) j =1 dqi D (p) dp dqi j 6=i

Solving this for dp=dqi yields

dp = dqi D0 (p)

1

P

0

j 6=i Sj (p)

:

In an industry with m identical rms, each rm assumes the other rms will react in the same way it does, so this expression simpli es to 1 dp = 0 : dq D (p) (m 1)S 0 (p) This expression diers from the Cournot case in the extra term in the denominator (which only equals 0 in the monopoly situation of m = 1). Notice also that, unlike the Cournot case, the rm's \supply" function depends on the number of rms in the industry. Write a function to solve this problem analogous to the one described in Section 6.8.1 (page 159) and a demo le to produce the analogous plots. The

CHAPTER 6. FUNCTION APPROXIMATION

173

function must take the parameters (including m, the industry size) and it must also compute the derivative of the q = S (p) function to compute the residual function. 6.3. Consider the potato market model discussed in the Chapter 3 (page 60). Construct a 5th degree Chebychev polynomial approximant for the function relating the period 1 price to initial supply s over the interval s 2 [1; 3]. Interpolate the polynomial at s = 1, s = 2, and s = 3 and compare to the interpolated values to those obtained earlier. 6.4. Consider again the potato market model. Assume now that supply s is the product of acreage a and yield y where yield can achieve one of two equiprobable outcomes, a low yield 0:75 and a high yield 1:25, and that acreage is a function of the price expected in the harvest period:

a = 0:5 + 0:5E [p1 ]: The rational expectations equilibrium acreage level and expected price satisfy the acreage supply function and

E [p1 ] = 0:5f (0:75a) + 0:5f (1:25a) where f is the function approximated in the preceding problem. Compute the rational expectations equilibrium of the model using the 10th degree Chebychev polynomial approximation for f computed in the preceding problem. 6.5. Using collocation with the basis functions of your choice and without using BVPSOLVE numerically solve the following dierential equation for x 2 [0; 1]: (1 + x2 )v (x) v 00 (x) = x2 ; with v (0) = v (1) = 0. Plot the residual function to ensure that the maximum value of the residual is less than 1e-8. What degree of approximation is needed to achieve this level of accuracy. 6.6. Lifetime Consumption A simple model of lifetime savings/consumption choice considers an agent with a projected income ow by w(t), who must choose a consumption rate c(t) to maximize discounted lifetime utility: Z T

max e t U (C (t))dt C (t) 0

CHAPTER 6. FUNCTION APPROXIMATION

174

subject to an intertemporal wealth constraint dW=dt = rW + w(t) C , where r is the rate of return on investments (or the interest rate on borrowed funds, if W < 0). The solution to this optimal control problem can be expressed as the system of dierential equations

C0 =

U 0 (C ) (r U 00 (C )

)

and

W 0 = rW + w(t) C: It is assumed that the agent begins with no wealth (W (0) = 0) and leaves no bequests (W (T ) = 0). a) Use BVPSOLVE to solve this BVP using the CARA utility function U (C ) = (C 1 1)=(1 ) and the parameters values T = 45, r = 0:1, = 0:6, = 0:5 and w(t) = w0 =(1 + e t ), with w0 = 1 and = 0:15. Plot the solution function and the residual functions. b) In part (a) the agent works until time T and then dies. Suppose, instead, that the agent retires at time T and lives an additional R = 20 retirement years with no additional income (w(t) = 0 for T < t T + R). Resolve the problem with this assumption. What additional problem is encountered? How can the problem be addressed? 6.7. The complementary Normal CDF is de ned as c (x)

1 =p 2

Z 1 x

e

z 2 =2 dz:

De ne 2

u(x) = ex =2 c (x): (a) Express u as a dierential equation with boundary condition u(1) = 0. (b) Use the change of variable t = x=(K + x) (for some constant K) to de ne a dierential equation for the function v (t) = u(x), for v 2 [0; 1]. (c) Write a Matlab function to solve this dierential equation using collocation with Chebyshev polynomials. Do this by writing the collocation equations in the form Bc = f , where c is an n-vector of coeÆcients. Then solve this linear system directly.

CHAPTER 6. FUNCTION APPROXIMATION

175

(d) Plot the residual function for a range of values of K between 0.1 and 20. Make a recommendation about the best choice of K . 6.8. Write a Matlab function that automates the approximation of function inverses. The function should have the following syntax: function c=finverse(f,fspace,varargin)

You will also need to write an auxiliary function to compute the appropriate residuals used by the root nding algorithm.

CHAPTER 6. FUNCTION APPROXIMATION

176

Bibliographic Notes Most introductory texts on numerical analysis contain some discussion of interpolation via Chebyshev polynomials and splines; see, for example, Press et al., or, for a discussion focused on solving dierential equations, see Golub and Ortega (Chapter 6). Collocation is one of a more general class of approximation methods known as weighted residual methods. The general idea of weighted residual methods is to nd an approximate that minimizes the residual function for some functional norm. In addition to collocation, two common approaches of this general class are least squares methods, which (for the simple functional equation problem, solve: min c

Z b a

r2 (x; (x)c)dx

and Galerkin methods (also called Bubnov-Galerkin methods), which solve Z b a

r(x; (x)c)i (x)dx = 0; for i = 1; : : : ; n:

When the integrals in these expressions can be solved explicitly, they seem to be somewhat more eÆcient than collocation, especially the Galerkin approach. Unless r has a convenient structure, however, these methods will necessitate the use of some kind of discretization to compute the necessary integrals, reducing any potential advantages these methods may have relative to collocation.

Chapter 7 Discrete Time Discrete State Dynamic Models With this chapter, we begin our study of dynamic economic models. Dynamic economic models often present three complications rarely encountered together in dynamic physical science models. First, humans are cogent, future-regarding beings capable of assessing how their actions will aect them in the future as well as in the present. Thus, most useful dynamic economic models are future-looking. Second, many aspects of human behavior are unpredictable. Thus, most useful dynamic economic models are inherently stochastic. Third, the predictable component of human behavior is often complex. Thus, most useful dynamic economic models are inherently nonlinear. The complications inherent in forward-looking, stochastic, nonlinear models make it impossible to obtain explicit analytic solutions to all but a small number of dynamic economic models. However, the proliferation of aordable personal computers, the phenomenal increase of computational speed, and developments of theoretical insights into the eÆcient use of computers over the last two decades now make it possible for economists to analyze dynamic models much more thoroughly using numerical methods. The next three chapters are devoted to the numerical analysis of dynamic economic models in discrete time and are followed by three chapters on dynamic economic models in continuous time. In this chapter we study the simplest of these models: the discrete time, discrete state Markov decision model. Though the model is simple, the methods used to analyze the model lay the foundations for the methods developed in subsequent chapters to analyze more complicated models with continuous states and time.

177

CHAPTER 7. DISCRETE STATE MODELS

178

7.1 Discrete Dynamic Programming The discrete time, discrete state Markov decision model has the following structure: in every period t, an agent observes the state of an economic process st , takes an action xt , and earns a reward f (xt ; st ) that depends on both the state of the process and the action taken. The state space S , which enumerates all the states attainable by the process, and the action space X , which enumerates all actions that may be taken by the agent, are both nite. The state of the economic process follows a controlled Markov probability law. That is, the distribution of next period's state, conditional on all currently available information, depends only on the current state of the process and the agent's action: Pr(st+1 = s0 jxt = x; st = s; other information at t ) = P (s0jx; s): The agent seeks a policy fxt gTt=1 that prescribes the action xt = xt (st ) that should be taken in each state at each point in time so as to maximize the present value of current and expected future rewards over time, discounted at a per-period factor Æ 2 (0; 1]: max E T

fxt gt=0

" T X t=0

#

Æ t f (xt ; st ) :

A discrete Markov decision model may have an in nite horizon (T = 1) or a nite horizon (T < 1). The model may also be either deterministic or stochastic. It is deterministic if next period's state is known with certainty once the current period's state and action are known. In this case, it is bene cial to dispense with the probability transition law as a description of how the state evolves and use instead a deterministic state transition function g , which explicitly gives the state transitions:

st+1 = g (xt ; st ): Discrete Markov decision models may be analyzed and understood using the dynamic programming principles developed by Richard Bellman (1956). Dynamic programming is an analytic approach in which a multiperiod model is eectively decomposed into a sequence two period models. Dynamic programming is based on the Principle of Optimality, which was articulated by Bellman as follows: \An optimal policy has the property that, whatever the initial state and decision are, the remaining decisions must constitute an optimal policy with regard to the state resulting from the rst decision."

CHAPTER 7. DISCRETE STATE MODELS

179

The Principle of Optimality can be formally expressed in terms of the value functions Vt . For each period t and state s, Vt (s) speci es the maximum attainable sum of current and expected future rewards, given that the process is in state s and the current period is t. Bellman's Principle implies that the value functions must satisfy Bellman's recursion equation X Vt (s) = max ff (x; s) + Æ P (s0 jx; s)Vt+1 (s0 )g s 2 S: x2X (s) s0 2S

Bellman's equation captures the essential problem faced by a dynamic, futureregarding optimizing agent: the need to balance the immediate reward f (xt ; st ) with expected present value of future rewards ÆEt Vt+1 (st+1 ). Given the value functions, the optimal policies xt (s) are simply the solutions to the optimization problems embedded in Bellman's equation. In a nite horizon model, we adopt the convention that the optimizing agent faces decisions up to and including a nal decision period T < 1. The agent faces no decisions after the terminal period T , but may earn a nal reward VT +1 (sT +1 ) in the subsequent period that depends on the realization of the state in that period. The terminal value is typically xed by some economically relevant terminal condition. In many applications, VT +1 is identically zero, indicating that no rewards are earned by the agent beyond the terminal decision period. In other applications, VT +1 may specify a salvage value earned by the agent after making his nal decision in period T. For the nite horizon discrete Markov decision model to be well posed, the terminal value VT +1 must be speci ed by the analyst. Given the terminal value function, the nite horizon decision model in principle may be solved recursively by repeated application of Bellman's equation: having VT +1 , solve for VT (s) for all states s; having VT , solve for VT 1 (s) for all states s; having VT 1 , solve for VT 2 (s) for all states s; and so on. The process continues until V0 (s) is derived for all states s. Because only nitely many actions are possible, the optimization problem embedded in Bellman's equation can always be solved by performing nitely many arithmetic operations. Thus, the value functions of a nite horizon discrete Markov decision model are always well-de ned, although in some cases more than one policy of state-contingent actions may yield the maximum expected stream of rewards, that is, the optimal action may not be unique. If the decision problem has an in nite horizon, the value functions will not depend on time t. We may, therefore, disregard the time subscripts and denote the common value function by V . Bellman's equation therefore becomes the vector xed-point equation "

X

#

V (s) = max f (x; s) + Æ P (s0 jx; s)V (s0 ) ; s 2 S: x2X (s) s0 2S

CHAPTER 7. DISCRETE STATE MODELS

180

If the discount factor Æ is less than one, the mapping underlying Bellman's equation is a strong contraction. The Contraction Mapping Theorem thus guarantees the existence and uniqueness of the in nite horizon value function.1

7.2 Economic Examples Speci cation of a discrete Markov decision model requires several pieces of information: the state space, the action space, the reward function, the state transition function or state transition probabilities, the discount factor Æ , the time horizon T , and, if the model has nite horizon, the terminal value VT +1 . This section provides seven economic examples that illustrate how the necessary information is speci ed and how the Bellman equation is formulated.

7.2.1 Mine Management A mine operator must determine the optimal ore extraction schedule for a mine that will be shut down and abandoned after T years of operation. The price of extracted ore is p dollars per ton and the total cost of extracting x tons of ore in any year is c = x2 =(1+ s) dollars, where s is the tons of ore remaining in the mine at the beginning of the year. The mine currently contains s tons of ore. Assuming the amount of ore extracted in any year must be an integer number of tons, what extraction schedule maximizes pro ts? This is a nite horizon, deterministic model with time t = f1; 2; : : : ; T g measured in years. The state variable

s 2 S = f0; 1; 2; : : : ; sg denotes tons of ore remaining in the mine at the beginning of the year. The action variable x 2 X (s) = f0; 1; 2; : : : ; sg denotes tons of ore extracted over the year. The state transition function is s0 = g (s; x) = s x: The reward function is f (s; x) = px x2 =(1 + s): 1 Value functions in in nite horizon problems could be time dependent if f , P , or Æ displayed time

dependence. However, this creates diÆculties in developing solution methods, and we have chosen not to explicitly consider this possibility. Fortunately, most in nite horizon economic model do not display such time dependence.

CHAPTER 7. DISCRETE STATE MODELS

181

The value of the mine, given it contains s tons of ore at the beginning of year t, satis es Bellman's equation Vt (s) = max fpx x2 =(1 + s) + ÆVt+1 (s x)g; s2S x2f0;1;2;:::;sg subject to the terminal condition VT +1 (s) = 0; s 2 S:

7.2.2 Asset Replacement - I At the beginning of each year, a manufacturer must decide whether to continue operating with an aging physical asset or replace it with a new one. An asset that is a years old yields a pro t contribution p(a) up to n years, after which the asset becomes unsafe and must be replaced by law. The cost of a new asset is c. What replacement policy maximizes pro ts? This is an in nite horizon, deterministic model with time t = f1; 2; : : : ; T g measured in years. The state variable a 2 A = f1; 2; : : : ; ng denotes the age of the asset in years. The action variable ; replaceg a < n x 2 X (a) = ffkeep replaceg a=n denotes the keep-replacement decision. The state transition function is keep 0 a = g (a; x) = a1 + 1 xx = = replace. The reward function is a) x = keep f (a; x) = pp((0) c x = replace. The value of an asset of age a satis es Bellman's equation V (a) = maxfp(a) + ÆV (a + 1); p(0) c + ÆV (1)g: Bellman's equation asserts that if the manufacturer keeps an asset of age a, he earns p(a) over the coming year and begins the subsequent year with an asset worth V (a+1); if he replaces the asset, on the other hand, he earns p(0) c over the coming year and begins the subsequent year with an asset worth V (1). Actually, our language is a little loose here. The value V (a) measures not only the current and future net earnings of an asset of age a, but also the net earnings of all future assets that replace it.

CHAPTER 7. DISCRETE STATE MODELS

182

7.2.3 Asset Replacement - II Consider the preceding example, but suppose that the productivity of the asset may be enhanced by performing annual service maintenance. Speci cally, at the beginning of each year, a manufacturer must decide whether to replace the asset with a new one or, if he elects to keep the old one, whether to service it. An asset that is a years old and has been serviced s times yields a pro t contribution p(a; s) up to and age of n years, after which the asset becomes unsafe and must be replaced by law. The cost of a new asset is c and the cost of servicing an existing asset is k. What replacement policy maximizes pro ts? This is an in nite horizon, deterministic model with time t = f1; 2; : : : ; T g measured in years. The state variables a 2 A = f1; 2; : : : ; ng s 2 S = f0; 1; : : : ; ng denote the age of the asset in years and the number of servicings it has undergone, respectively. The action variable service, no actiong a < n x 2 X (a; s) = ffreplace, replaceg a = n: ; The state transition function is 8 x = replace < (1; 0) (a0 ; s0 ) = g (a; s; x) = (a + 1; s + 1) x = service : (a + 1; s) x = no action: The reward function is 8 x = replace < p(0; 0) c f (a; s; x) = p(a; s + 1) k x = service : p(a; s) x = no action: The value of asset of age a that has undergone s servicings must satisfy Bellman's equation V (a; s) = maxf p(0; 0) c + ÆV (1; 0); p(a; s + 1) k + ÆV (a + 1; s + 1); p(a; s) + ÆV (a + 1; s)g: Bellman's equation asserts that if the manufacturer keeps an asset of age a, he earns p(a) over the coming year and begins the subsequent year with an asset worth V (a+1); if he replaces the asset, on the other hand, he earns p(0) c over the coming year and begins the subsequent year with an asset worth V (1). Actually, our language is a little loose here. The value V (a) measures not only the current and future earnings of an asset of age a, but also the optimal earnings of all future assets that replace it.

CHAPTER 7. DISCRETE STATE MODELS

183

7.2.4 Option Pricing An American put option gives the holder the right, but not the obligation, to sell a speci ed quantity of a commodity at a speci ed strike price on or before a speci ed expiration date. In the Cox-Ross-Rubinstein binomial option pricing model, the price of the commodity is assumed to follow a two-state discrete jump process. Speci cally, if the price of the commodity is p in period t, then its price in period t + 1 will be pu with probability q and p=u with probability 1 q where:

p

u = exp( t) > 1 p t 1 r 21 2 q = 2+ 2 Æ = exp( rt): Here, r is the annualized interest rate, continuously compounded, is the annualized volatility of the commodity price, and t is the length of a period in years. Assuming the current price of the commodity is p0 , what is the value of an American put option if it has a strike price p and if it expires T years from today? This is a nite horizon, stochastic model where time t 2 f0; 1; 2; : : : ; N g is measured in periods of length t = T=N years each. The state is2

p = commodity price p 2 S = fp1 ui ji = N

1; N; : : : ; N; N + 1g:

The action is

x = decision to keep or exercise x 2 X = fkeep; exerciseg; the state transition probability rule is

P (p0jx; p) =

8 < :

q p0 = pu 1 q p0 = p=u 0 otherwise

the reward function is = keep f (p; x) = 0p p xx = exercise 2 In this example, we alter our notation to conform with standard treatments of option valuation.

Thus, the state is the price, denoted by p, the number of time periods until expiration is N , and T reserved for the time to expiration (in years).

CHAPTER 7. DISCRETE STATE MODELS

184

The value function

Vt (p) = option value at t, if commodity price is p, must satisfy Bellman's equation

Vt (p) = maxf p p; qÆVt+1 (pu) + (1 q )ÆVt+1 (p=u) g subject to the post-terminal condition

VN +1 (p) = 0 Note that if the option is exercised, the owner receives p p. If he does not exercise the option, however, he earns no immediate reward but will have an option in hand the following period worth Vt+1 (pu) with probability q and Vt+1 (p=u) with probability 1 q . In option expires in the terminal period, making it valueless the following period; as such, the post-terminal salvage value is zero.

7.2.5 Job Search At the beginning of each week, an in nitely-lived worker nds himself either employed or unemployed and must decide whether to be active in the labor market over the coming week by working, if he is employed, or by searching for a job, if he is unemployed. An active employed worker earns a wage w. An active unemployed worker earns an unemployment bene t u. An inactive worker earns a psychic bene t v from additional leisure, but no income. An unemployed worker that looks for a job will nd one with probability p by the end of the week. An employed worker that remains at his job will be red with probability q at the end of the week. What is the worker's optimal labor policy? This is a in nite horizon, stochastic model with time t = f1; 2; : : : ; 1g measured in weeks. The state is

s = employment state s 2 S = funemployed(0); employed(1)g and the action is

x = labor force participation decision x 2 X = finactive(0); active(1)g:

CHAPTER 7. DISCRETE STATE MODELS

185

The state transition probability rule is

P (s0js; x) =

8 > > > > > > < > > > > > > :

1 x = 0; s0 = 0 1 p x = 1; s = 0; s0 = 0 p x = 1; s = 0; s0 = 1 q x = 1; s = 1; s0 = 0 1 q x = 1; s = 1; s0 = 1 0 otherwise;

(inactive worker) (searches, nds no job) (searches, nds job) (works, loses job) (works, keeps job)

and the reward function is 8 (inactive, receives leisure) < v x=0 f (s; x) = u x = 1; s = 0 (searching, receives bene t) : w x = 1; s = 1 (working, receives wage) The value function

V (s) = Value of being in employment state s at beginning of week; must satisfy Bellman's equation

V (s) =

maxfv + ÆV (0); u + ÆpV (1) + Æ (1 p)V (0)g; s = 0 maxfv + ÆV (0); w + ÆqV (0) + Æ (1 q )V (1)g; s = 1

7.2.6 Optimal Irrigation Water from a dam can be used for either irrigation or recreation. Irrigation during the spring bene ts farmers, but reduces the dam's water level during the summer, damaging recreational users. Speci cally, farmer and recreational user bene ts in year t are, respectively, F (xt ) and G(yt ), where xt are the units of water used for irrigation and yt are the units of water remaining for recreation. Water levels are replenished by random rainfall during the winter. With probability p, it rains one unit; with probability 1 p is does not rain at all. The dam has a capacity of M units of water and excess rainfall ows out of the dam without bene t to either farmer or recreational user. Derive the irrigation ow policy that maximizes the sum of farmer and recreational user bene ts over an in nite time horizon. This is a in nite horizon, stochastic model with time t = f1; 2; : : : ; 1g measured in years. The state is

s = units of water in dam at beginning of year s 2 S = f0; 1; 2; : : : ; M g

CHAPTER 7. DISCRETE STATE MODELS

186

and

x = units of water released for irrigation during year x 2 X (s) = f0; 1; 2; : : : ; sg: The state transition probability rule is

P (s0js; x) =

8 < :

p s0 = min(s x + 1; M ) (rain) 1 p s0 = s x; (no rain) 0 otherwise

and the reward function is

f (s; x) = F (x) + G(s x): The value function

V (s) = Value of s units of water in dam at beginning of year t: must satisfy Bellman's equation:

V (s) = x=0 max ff (s; x) + ÆpV (min(s x + 1; M )) + Æ(1 p)V (s x)g: ;1;:::;s

7.2.7 Optimal Growth Consider an economy comprising a single composite good. Each year t begins with a predetermined amount of the good st , of which an amount xt is invested and the remainder is consumed. The social welfare derived from consumption in year t is u(st xt ). The amount of good available in year t + 1 is st+1 = xt + t+1 f (xt ) where is the capital survival rate (1 minus the depreciation rate), f is the aggregate production function, and t+1 is a positive production shock with mean 1. What consumption-investment policy maximizes the sum of current and expected future welfare over an in nite horizon? This is an in nite horizon, stochastic model with time t 2 f0; 1; 2; : : :g measured in years. The model has a single state variable

st = stock of good at beginning of year t st 2 [0; 1) and a single action variable

xt = amount of good invested in year t

CHAPTER 7. DISCRETE STATE MODELS

187

subject to the constraint 0 xt st :

The reward earned by the optimizing agent is

u(st

xt ) = social utility in t:

State transitions are governed by

st+1 = xt + t+1 f (xt ) where

t = productivity shock in year t: The value function, which gives the sum of current and expected future social welfare, satis es Bellman's equation

V (s) = 0max fu(s x) + ÆEV ( x + f (x))g; xs

s > 0:

7.2.8 Renewable Resource Problem A social planner wishes to maximize the discounted sum of net social surplus from harvesting a renewable resource over an in nite horizon. For year t, let st denote the resource stock at the beginning of the year, let xt denote the amount of the resource harvested, let ct = c(xt ) denote the total cost of harvesting, and let pt = p(xt ) denote the market clearing price. Growth in the stock level is given by st+1 = g (st xt ). What is the socially optimal harvest policy? This is an in nite horizon, deterministic model with time t 2 f0; 1; 2; : : :g measured in years. There is one state variable,

st = stock of resource at beginning of year t st 2 [0; 1); and one action variable,

xt = amount of resource harvested in year t, subject to the constraint 0 xt st :

The net social surplus is Z xt

0

p( ) d

c(xt ):

CHAPTER 7. DISCRETE STATE MODELS

188

State transitions are governed by

st+1 = g (st

xt ):

The value function, which gives the net social value of resource stock, satis es Bellman's equation Z x

V (s) = 0max f xs

0

p( ) d

c(x) + ÆV (g (s x))g:

7.2.9 Bioeconomic Model In order to survive, an animal must forage for food in one of m distinct areas. In area x, the animal survives predation with probability px , nds food with probability qx , and, if it nds food, gains ex energy units. The animal expends one energy unit every period and has a maximum energy carrying capacity s. If the animal's energy stock drops to zero, it dies. What foraging pattern maximizes the animal's probability of surviving T years to reproduce at the beginning of period T + 1? This is a nite horizon, stochastic model with time t = f1; 2; : : : ; T g measured in foraging periods. The state is

s = stock of energy s 2 S = f0; 1; 2; : : : ; sg; the action is

x = foraging area x 2 X = f1; 2; : : : ; mg: The state transition probability rule is, for s = 0,

P (s0js; x) = and, for s > 0,

P (s0js; x)

1 s0 = 0 (death is permanent) 0 otherwise;

8 px qx > > < = p(1x (1 p q) x ) > x > :

0

The reward function is

f (s; x) = 0:

s0 = min(s; s 1 + ex ) (survive, nds food) s0 = s 1 (survive, no food) s0 = 0 (does not survive) otherwise.

CHAPTER 7. DISCRETE STATE MODELS

189

Here, s = 0 is an absorbing state that, once entered, is never exited. More to the point, an animal whose energy stocks fall to zero dies, and remains dead. The reward function for periods 1 through T is zero, because there is only one payo, surviving to procreate, and this payo is earned in period T + 1. The value function

Vt (s) = probability of procreating, given energy stocks s in period t must satisfy Bellman's equation

Vt (s) = maxfpx qx Vt+1 (min(s; s 1 + e)) + px (1 qx )Vt+1 (s 1)g; x2X

for t 2 1; : : : ; T , with Vt (0) = 0, subject to the terminal condition

VT +1 (s) =

0 s=0 1 s>0

7.3 Solution Algorithms Below, we develop numerical solution algorithms for stochastic discrete time, discrete space Markov decision models. The algorithms apply to deterministic models as well, provided one views a deterministic model as a degenerate special case of the stochastic model for which the transition probabilities are all zeros or ones. To develop solution algorithms, we must introduce some vector notation and operations. Assume that the states S = f1; 2; : : : ; ng and actions X = f1; 2; : : : ; mg are indexed by the rst n and m integers, respectively. Let v 2 c0 (0), one can show that ore will always be extracted provided there are stocks remaining. However, it is not possible to rule out the possibility that in

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

231

some states it will be optimal to extract all that remains in the mine. That is, the upper bound on x may be binding. As such, the Euler conditions take the form of a complementarity condition. More speci cally, the shadow price of the resource (s) is characterized by the following:

p c0 (x) Æ(s x) = (s) = Æ(s x) + max(; 0) where the ore extracted x and the long-run marginal pro t of extraction must satisfy the complementarity condition 0 x s;

x > 0 =) 0;

x < s =) 0:

Thus, in any period, ore is extracted until the long-run marginal pro t is driven to zero or the content of the mine is exhausted, whichever comes rst. Under the assumption p > c0 (0), the model admits only one steady state: s = x = 0, = p c0 (0), and = (1 Æ ) . That is, the mine will be worked until its contents are depleted. Until such time that the content of the mine is depleted,

pt = c0t + Æt t = Æt+1 : where pt is the market price and c0t is the marginal cost of extraction. That is, the market price of extracted ore equals the shadow price of unextracted ore plus the marginal cost of extraction. Also, the current-valued shadow price of unextracted ore will grow at the rate of interest, or equivalently, the present-value shadow price will remain constant.

8.3.4 Optimal Water Management A water planner wishes to maximize social bene ts derived from the water collected in a reservoir. The water may be used either for irrigation or recreation. Irrigation during the spring bene ts agricultural producers, but reduces the reservoir level during the summer, damaging recreational users. Speci cally, if s is the water level at the beginning of spring and an amount x is released for irrigation, producer bene ts will be a(x) and recreational user bene ts will be u(s x). Water levels are replenished during the winter months by i.i.d. random rainfalls , implying that the reservoir level at the beginning of each year is a controlled Markov process

st+1 = st

xt + t+1 :

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

232

What irrigation policy maximizes the sum of current and expected future bene ts to producers and users combined? This is an in nite horizon, stochastic model with one state variable, the reservoir water level at beginning of the year s, and one choice variable, the amount of water released for irrigation x, which is subject to the constraint 0 x s: The current reward is the sum of producer and user bene ts f (s; x) = a(x) + u(s x): The value of the water in the reservoir satis es Bellman's equation V (s) = 0max fa(x) + u(s x) + ÆEV (s x + )g: xs

Assuming a0 (0) and u0 (0) are suÆciently large, the constraints will not be binding at an optimal solution and the shadow price of water (s) will satisfy the Euler equilibrium conditions a0 (x) u0 (s x) ÆE(s x + ) = 0 (s) = u0 (s x) + ÆE(s x + ): It follows that along the optimal path a0t = t = u0t + ÆEt+1 where a0t and u0t are the marginal producer and user bene ts, respectively. Thus, on the margin, the bene t received by producers this year from releasing one unit of water must equal the marginal bene t received by users this year from retaining the unit of water plus the bene ts of having that unit available for either irrigation or recreation the following year. The certainty-equivalent steady-state water level s , irrigation level x , and shadow price solve the equation system x = a0 (x ) = u0 (s x ) = (1 Æ )a0 (x ) where is mean annual rainfall. These conditions imply that the certainty-equivalent steady-state irrigation level and shadow price of water are not aected by the interest rate. The certainty-equivalent steady-state reservoir level, however, is aected by the interest rate. Totally dierentiating the above equation system and making reasonable assumptions about the curvature of the bene t functions: @s Æ 2 a0 = 00 < 0: @r u That is, as the interest rate rises, the certainty-equivalent steady-state reservoir level falls.

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

233

8.3.5 Optimal Monetary Policy A monetary authority wishes to control the nominal interest rate x in order to minimize the volatility of the in ation rate s1 and the gross domestic product (GDP) gap s2 . Speci cally, the authority wishes to minimize expected discounted stream of weighted squared deviations from zero targets 1 L(s) = s> s 2 where s is a 2x1 vector containing the in ation rate and the GDP gap and is a 2x2 constant positive de nite matrix of weights. The in ation rate and the GDP gap are a joint controlled linear Markov process

st+1 = + st + x + where and are 2x1 constant vectors, is a 2x2 constant matrix, and is a 2x1 random vector with mean zero. For political reasons, the nominal interest rate x cannot be negative. What monetary policy minimizes the sum of current and expected future losses? This is an in nite horizon, stochastic model with two state variables, the in ation rate s1 and the GDP gap s2 , and one choice variable, the nominal in ation rate x, which is subject to the constraint x 0: In order to formulate this problem as a maximization problem, one may posit a reward function that equals the negative of the loss function f (s) = L(s): Given this assumption, the sum of current and expected future rewards V (s) satis es Bellman's equation V (s) = max f L(s) + ÆEV (g(s; x; ))g: 0x Given the structure of the model, one cannot preclude the possibility that the nonnegativity constraint on the optimal nominal interest rate will be binding in certain states. As such, the shadow price function (s) is characterized by the Euler conditions

Æ >E(g (s; x; ) =

(s) = s + Æ >E(g (s; x; )) where the nominal interest rate x and the long-run marginal reward from increasing the nominal interest rate must satisfy the complementarity condition

x 0;

0;

x > 0 =) = 0:

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

234

It follows that along the optimal path

Æ >Et t+1 = t t = st + Æ >Et+1 xt 0;

t 0;

xt > 0 =) t = 0:

Thus, in any period, the nominal interest rate is reduced until either the long-run marginal reward or the nominal interest rate is driven to zero.

8.3.6 Production-Adjustment Model A competitive price-taking rm wishes to manage production so as to maximize long run pro ts, given that production is subject to adjustment costs. In particular, if the rm produces a quantity q , it incurs production costs c(q ) and adjustment costs 0:5a(q l)2 , where l is the preceding period's (lagged) production. The rm can sell any quantity it produces at the prevailing market price, which is an exogenous Markov process

pt+1 = g (pt ; t+1 ): What production policy maximizes the value of the rm? This is an in nite horizon, stochastic model with two state variables, the current market price p and lagged production l, and one choice variable, production q , which is subject to the nonnegativity constraint q 0. The current reward, short-run pro ts, equals revenue less production and adjustment costs f (p; l; q ) = p q c(q ) 0:5a(q l)2 : The value V (p; l) of the rm, given the market price p and the previous period's production l, satis es Bellman's equation

V (p; l) = max fp q 0q

c(q ) a(q

l) + ÆEV (g (p; ); q )g:

Assuming a positive optimal production level in all states, the shadow price of lagged production (p; l) will satisfy the Euler equilibrium conditions

p c0 (q ) a0 (q (p; l) = a0 (q

l) + ÆE(g (p; ); q ) = 0 l):

It follows that along the optimal path

pt = c0t + (a0t

ÆEa0t+1 )

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

235

where c0t and a0t are the marginal production and adjustment costs in period t. Thus, price equals the marginal cost of production plus the net (current less future) marginal adjustment cost. The certainty-equivalent steady-state production q is obtained by assuming p is xed at its long-run mean p:

p = c0 (q ) + (1 Æ )a0 (0):

8.3.7 Production-Inventory Model A competitive price-taking rm wishes to manage production and inventories so as to maximize long-run pro ts. The rm begins each period with a predetermined stock of inventory s and decides how much to produce q and how much to store x, buying or selling the resulting dierence s + q x on the open market at the prevailing price p. The rm's production and storage costs are given by c(q ) and k(x), respectively, and the market price follows a purely exogenous Markov process

pt+1 = g (st ; t+1 ): What production policy and inventory policy maximizes the value of the rm? This is an in nite horizon, stochastic model with two state variables, the current market price p and beginning inventories s, and two choice variables, production q and ending inventories x, both of which are subject to nonnegativity constraints q 0 and x 0. The current reward, short-run pro ts, equals net revenue from marketing sales or purchases, less production and storage costs:

f (p; s; q; x) = p(s + q

x) c(q ) k(x):

The value V (p; s) of the rm, given market price p and beginning inventories s, satis es Bellman's equation

V (p; s) = 0max fp(s + q q;0x

x) c(q ) k(x) + ÆEV (g (p; ); x)g:

If production is subject to increasing marginal costs and c0 (0) is suÆciently small, then production will be positive in all states and the shadow price of beginning inventories (p; s) will satisfy the Euler equilibrium conditions:

p = c0 (q ) ÆE(g (p; ); x) p k0 (x) = (p; s) = p

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY x 0;

0;

236

x > 0 =) = 0:

It follows that along the optimal path,

pt = c0t xt 0;

Et pt+1

pt

kt0 0;

x > 0 =) Et pt+1

pt

kt0 = 0:

where pt denotes the market price, c0t denotes the marginal production cost, and kt0 denotes the marginal storage cost. Thus, the rm's production and storage decisions are independent. Production is governed by the conventional short-run pro t maximizing condition that price equal the marginal cost of production. Storage, on the other hand, is entirely driven by intertemporal arbitrage pro t opportunities. If the expected marginal pro t from storing is negative, then no storage is undertaken. Otherwise, stocks are accumulated up to the point at which the marginal cost of storage equals the present value expected appreciation in the market price. The certainty-equivalent steady-state obtains when p is xed at its long-run mean p, in which case no appreciation can take place and optimal inventories will be zero. The certainty-equivalent steady-state production is implicitly de ned by the short-run pro t maximization condition.

8.3.8 Optimal Feeding An livestock producer feeds his stock up to period T and then sells it at the beginning of period T + 1 at a xed price p per unit weight. Each period, the producer must determine how much grain x to feed his livestock, given that grain sells at a constant unit cost c. The weight of the livestock at the beginning of each period is a controlled rst-order deterministic process

st+1 = g (st ; xt ): What feeding policy maximizes pro t, given that the weight of the livestock in the initial period, t = 0, is s? This is an nite horizon, deterministic model with one state variable, the livestock weight at beginning of the period s 2 [s; 1), and one choice variable, the amount of feed purchased x 2 [0; 1), which is subject to the constraint x 0: The value of livestock weighing s in period t satis es Bellman's equation

Vt (s) = max f cx + ÆVt+1(g(s; x))g; x0 subject to the terminal condition

VT +1 (s) = ps:

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

237

If the marginal weight gain gx at zero feed is suÆciently large, the nonnegativity constraint of feed will never be binding. Under these conditions, the shadow price of livestock weight in period t, t (s), will satisfy the Euler equilibrium conditions:

Æt+1 (g (s; x))gx(s; x) = c t (s) = Æt+1 (g (s; x))gs(s; x) subject to the terminal condition

T +1 (s) = p: It follows that along the optimal path

Æt+1 gx;t = c t = Æt+1 gs;t where gx;t and gs;t represent, respectively, the marginal weight gain from feed and the marginal decline in the livestock's ability to gain weight as it grows in size. Thus, the cost of feed must equal the value of the marginal weight gain. Also, the present valued shadow price grows at a rate that exactly counters the marginal decline in the livestock's ability to gain weight.

8.4 Linear-Quadratic Control The linear-quadratic control problem is an unconstrained Markov decision model with a quadratic reward function

f (s; x) = F0 + Fss + Fx x + 0:5s>Fsss + s>Fsx x + 0:5x>Fxx x and a linear state transition function

g (s; x; ) = G0 + Gs s + Gx x + : Here, s is an n-by-1 state vector, x is an m-by-1 action vector, F0 is a known constant, Fs is a known 1-by-n vector, Fx is a known 1-by-m vector, Fss is a known n-by-n matrix, Fsx is a known n-by-m matrix, Fxx is a known m-by-m matrix, G0 is a known n-by-1 vector, Gs is a known n-by-n matrix, and Gx is a known n-by-m vector. Without loss of generality, the shock is assumed to have a mean of zero. The linear-quadratic control model is of special importance because it is one of the few discrete time continuous state Markov decision models with a nite-dimensional solution. By a conceptually simple but algebraically burdensome induction proof

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

238

omitted here, one can show that the optimal policy and shadow price functions of the in nite horizon linear-quadratic control model are both linear in the state variable:

x(s) = 0 + s s (s) = 0 + s s: Here, 0 is an m-by-1 vector, s is an m-by-n matrix, 0 is an n-by-1 vector, and s is an n-by-n matrix. The parameters 0 and s of the shadow price function are characterized by the nonlinear vector xed point Riccati equations 0 = [ÆGs >s Gx + Fsx][ÆGx >s Gx + Fxx >] 1 [ÆGx >[s G0 + 0 ] + Fx >] +ÆGs> [sG0 + 0 ] + Fs > s = [ÆGs >s Gx + Fsx][ÆGx >s Gx + Fxx >] 1 [ÆGx >sGs + Fsx >] +ÆGs> sGs + Fss:

These nite-dimensional xed-point equations can typically be solved in practice using function iteration. The recursive structure of these equations allow one to rst solve for s by applying function iteration to the second equation, and then solve for 0 by applying function iteration to the rst equation. Once the parameters of the shadow price function have been computed, one can compute the parameters of the optimal policy via algebraic operations: 0 = [ÆGx >sGx + Fxx >] 1 [ÆGx>[s G0 + 0 ] + Fx >] s

= [ÆGx >s Gx + Fxx>] 1 [ÆGx >sGs + Fsx >]

The relative simplicity of the linear-quadratic control problem derives from the fact that the optimal policy and shadow price functions are known to be linear, and thus belong to a nite dimensional family. The parameters of the linear functions, moreover, are characterized as the solution to a well-de ned nonlinear vector xedpoint equation. Thus, the apparently in nite-dimensional Euler functional xedpoint equation may be converted into nite-dimensional vector xed-point equation and solved using standard nonlinear equation solution methods. This simpli cation, unfortunately, is not generally possible for other types of discrete time continuous state Markov decision models. A second simplifying feature of the linear-quadratic control problem is that the shadow price and optimal policy functions depend only on the mean of the state shock, but not its variance or higher moments. This is known as the certainty-equivalence property of the linear-quadratic control problem. It asserts that the solution of the

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

239

stochastic problem is the same as the solution of the deterministic problem obtained by xing the state shock at its mean of zero. Certainty equivalence also is not a property of more general discrete time continuous state Markov decision models. Because linear-quadratic control models are relatively easy to solve, many analysts compute approximate solutions to more general Markov decision models using the method of linear-quadratic approximation. Linear quadratic approximation calls for all constraints of the general problem to be discarded and for its reward and transition functions to be replaced with by their second- and rst-order approximations about the steady-state. This approximation method, which is illustrated in the following chapter, works well in some instances, for example, if the state transition rule is linear, constraints are non-binding or non-existent, and if the shocks have relatively small variation. However, in most economic applications, linear-quadratic approximation will often render highly inaccurate solutions that dier not only quantitatively but also qualitatively from the true solution. For this reason, we strongly discourage the use of linear-quadratic approximation, except in those cases where the assumptions of the linear quadratic model are known to hold globally, or very nearly so.

8.5 Dynamic Games Dynamic game models attempt to capture strategic interactions among a small number of dynamically optimizing agents when the actions of one agent aects the welfare of the others. To simplify notation, we consider only in nite horizon games. The theory and methods developed, however, can be easily adapted to accommodate nite horizons. The discrete time continuous state Markov m-agent game has the following structure: In every period, each agent i observes the state of an economic process s 2 S , takes an action xi 2 X , and earns a reward fi (s; xi ; x i ) that depends on the state of the process and both the action taken by the agent and the actions taken by the m 1 other agents x i . The state of the economic process is a jointly controlled Markov process. Speci cally, the state of the economic process in period t + 1 will depend on the state in period t, the actions taken by all m agents in period t, and an exogenous random shock t+1 that is unknown in period t:

st+1 = g (st ; xt ; t+1 ): As with static games, the equilibrium solution to a Markov game depends on the information available to the agents and the strategies they are assumed to pursue. We will limit discussion to noncooperative Markov perfect equilibria, that is, equilibria that yield a Nash equilibrium in every proper subgame. Under the assumption that each agent can perfectly observe the state of the process and knows the policies

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

240

followed by the other agents, a Markov perfect equilibrium is a set of m policies of state-contingent actions xi : S 7! X , i = 1; 2; : : : ; m, such that policy xi maximizes the present value of agent i's current and expected future rewards, discounted at a per-period factor Æ , given that other agents pursue their policies x i (). That is, for each agent i, xi () solves T X

max E Æ t f (s ; x (s ); x i (st )) fx()g 0 t=0 i t i t

The Markov perfect equilibrium for the m-agent game is characterized by a set of m simultaneous Bellman equations Vi (s) = max fi (s; x; x i (s)) + ÆE Vi (g (s; x; x i(s); )) : x2Xi (s) whose unknowns are the value functions Vi () and optimal policies xi (), i = 1; 2; : : : ; m of the dierent agents. Here, Vi (s) denotes the maximum current and expected future rewards that can be earned by agent i, given that other agents pursue their optimal strategies.

8.5.1 Capital-Production Game Consider two in nitely-lived rms that produce perishable goods that are close substitutes (say, donuts and bagels). Each rm i begins period t with a predetermined capital stock ki and must decide how much to produce qi . Its production cost ci (qi ; ki ) depends on both the quantity produced and the capital stock. Prices are determined by short-run market clearing conditions (Cournot competition). More speci cally, rm i receives price pi = Pi (q1 ; q2 ) that depends both on its output and the output of its competitor. The rm must also decide how much to invest in capital. Speci cally, if the rm invests in new capital xi , it incurs a cost hi (xi ) and its capital stock at the beginning of the following period will be (1 )ki + xi where is the capital depreciation rate. What are the two rm's optimal production and investment policies? This is an in nite horizon, deterministic 2-agent dynamic game with two state variables, the capital stocks of the two producers, k1 and k2 . Each agent i has two decision variables, production qi and investment xi , which are subject to the nonnegativity constraints qi 0 and xi 0. His current reward, net revenue, equals Pi (q1 ; q2 )qi ci (qi ; ki) hi (xi ). The Markov perfect equilibrium for the productioncapital game is represented by a pair of Bellman equations, one for each rm, which take the form Vi (k1 ; k2 ) = q max fPi(q1; q2 )qi ci(qi; ki) hi(xi ) + ÆEVi(k^1; k^i)g i 0;xi 0 where k^i = (1 )ki + xi .

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

241

8.5.2 Risk-Sharing Game Consider two in nitely-lived agents who must make consumption-investment decisions. Each period, each agent i begins with a predetermined level of wealth si , of which an amount xi is invested, and the remainder is consumed, yielding an utility ui (si xi ). Agent i's wealth at the beginning of period t + 1 is determined entirely by his investment in period t and an income shock t+1 , which is unknown at the time the investment decision is made. More speci cally, wealth follows a controlled Markov process

sit+1 = gi (xit ; it+1 ): Suppose now that the two agents co-insure against exogenous income risks by agreeing to share their wealth in perpetuity. Speci cally, the agents agree that, at the beginning of any given period t, the wealthier of the two agents will transfer a certain proportion of the wealth dierential to the poorer agent. Under this scheme, agent i's wealth in period t + 1, after the transfer, will equal

sit+1 = (1 )gi (xit ; it+1 ) + gj (xjt ; jt+1 ): where j 6= i. If the wealth transfer is enforceable, but agents are free to consume and invest freely, moral hazard will arise. In particular, both agents will have incentives to shirk investment in favor of current consumption when co-insured. How will insurance aect the agents' behavior, and for what initial wealth states s1 and s2 and share parameter will both agents be willing to enter into the insurance contract? How does the correlation in the wealth shocks aect the value of the insurance contract? This is an in nite horizon, stochastic 2-agent dynamic game with two state variables, the wealth levels of the two agents s1 and s2 . Each agent i has a single decision variable, his investment xi , which is subject to the constraint 0 xi s^i . His current period reward, current utility, equals ui (^si xi ). The Markov perfect equilibrium for the redistribution game is represented by a pair of Bellman equations, one for each agent, which take the form

Vi (s1 ; s2 ) = max fui(^si 0xi s^i

xi ) + ÆEVi (^s1 ; s^2 )g;

where s^i = (1 )gi (xi ; i ) + gj (xj ; j ). Here, Vi (s1 ; s2 ) denotes the maximum expected lifetime utility that can be obtained by agent i.

8.5.3 Marketing Board Game Suppose that two countries are the sole producers of a commodity and that, in each country, a government marketing board has the exclusive power to sell the commodity

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

242

on the world market. The marketing boards compete with each other, attempting to maximize the present value of their own current and expected future income from commodity sales. More speci cally, the marketing board in country i begins each period with a pre-determined supply si of the commodity, of which it exports a quantity qi and stores the remainder si qi at a total cost ci (si qi ). The world market price will depend on the total amount exported by both countries, p = p(q1 + q2 ). The supplies available in the two countries at the beginning period t + 1 are given by

sit+1 = xit + yit where new production in both countries, y1t and y2t , are assumed to be exogenous and independently and identically distributed over time. What are the optimal export strategies for the two marketing boards? This is an in nite horizon, stochastic 2-agent dynamic game with two state variables, the beginning supplies in the two counties s1 and s2 . The marketing board for country i has a single decision variable, the export level qi , which is subject to the constraint 0 xi si . Country i's current reward, net income, equals p(q1 + q2 )qi ci (si qi ). The Markov perfect equilibrium for the marketing board game is captured by a pair of Bellman equations, one for each marketing board, which take the form

Vi (s1 ; s2 ) = 0max fp(q1 + q2 )qi q s i

i

ci (si

qi ) + ÆEy Vi (s1

q1 + y1 ; s2

q2 + y2 )g:

Here, Vi (s1 ; s2 ) denotes the maximum current and expected future income that can be earned by marketing board i, given that marketing board j remains committed to its export policy.

8.6 Rational Expectations Models We now examine dynamic stochastic models of economic systems in which arbitragefree equilibria are enforced through the collective, decentralized actions of atomistic dynamically optimizing agents. We assume that agents are rational in the sense that their expectations are consistent with the implications of the model as whole. Examples of phenomenon that may be studied in a rational expectations framework include asset returns in a pure exchange economy, pricing of primary commodities, and agricultural production subject to price controls. We limit attention to dynamic models of the following form: At the beginning of period t, an economic system emerges in a state st . Agents observe the state of the system and, by pursuing their individual objectives, produce a systematic response xt

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

243

governed by an equilibrium condition that depends on expectations of the following period's state and action

f (st ; xt ; Et h(st+1 ; xt+1 )) = 0: The economic system then evolves to a new state st+1 that depends on the current state st and response xt , and an exogenous random shock t+1 that is realized only after the system responds at time t:

st+1 = g (st ; xt ; t+1 ): In many applications, the equilibrium condition f = 0 admits a natural arbitrage interpretation. In these instances, fi > 0 indicates activity i generates pro ts on the margin, so that agents have a collective incentive to increase xi ; fi < 0 indicates that activity i generates loses on the margin, so that agents have a collective incentive to decrease xi . An arbitrage-free equilibrium exists if and only if f = 0. The state space S 2 0. The unit cost of storage is

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

253

k dollars per period; due to spoilage, a proportion of inventories held at the beginning of one period do not survive to the following period. The rm's initial inventories are x0 where 0 < x0 < Q. The rm wishes to minimize the present value of the cost of meeting its contractual obligation; assume a discount factor Æ < 1. (a) Identify the state and action variables, the reward function, and the transition function of this problem. (b) Write Bellman's functional equation. What does the value function represent? (c) Derive the Euler conditions and interpret them. What does the shadow price function represent? (d) Assuming increasing marginal cost, c00 > 0, qualitatively describe the optimal production plan. (e) Assuming decreasing marginal cost, c00 < 0, qualitatively describe the optimal production plan. 8.12. A subsistence farmer grows and eats a single crop. Production, yt , depends on how much seed is on hand at the beginning of the year, kt , according to yt = kt where 0 < < 1. The amount kept for next year's seed is the dierence between the amount produced and the amount consumed, ct :

kt+1 = yt

ct :

The farmer has a time-additive logarithmic utility function and seeks to maximize T X t=0

Æ t ln(ct ):

subject to having an initial stock of seed, k0 . (a) Identify the state and action variables, the reward function, and the transition function of this problem. (b) Write Bellman's functional equation. What does the value function represent? (c) Derive the Euler conditions and interpret them. What does the shadow price function represent?

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

254

(d) Show that the value function has the form V (kt ) = A + B ln(kt ) and that the optimal decision rule for this problem is kt+1 = Cyt ; nd the values for A, B , and C . 8.13. A rm competes in a mature industry whose total pro t is a xed amount X every year. If the rm captures a fraction pt of total industry sales in year t, it makes a pro t pt X . The fraction of sales captured by the rm in year t is a function pt = f (pt 1 ; at 1 ) of the fraction it captured the preceding year and its advertising expenditures the preceding year, at 1 . Find the advertising policy that maximizes the rm's discounted pro ts over a xed time horizon of T years. Assume p0 and a0 are known. (a) Identify the state and action variables, the reward function, and the transition function of this problem. (b) Write Bellman's functional equation. What does the value function represent? (c) Derive the Euler conditions and interpret them. What does the derivative of value function represent? (d) What conditions characterize the steady-state optimal solution? 8.14. A corn producer's net per-acre revenue in year t is given by

ct = pyt

cxt

wlt

where p is the unit price of corn ($/bu.), yt is the corn yield (bu./acre), c is the unit cost of fertilizer ($/lb.), xt is the amount of fertilizer applied (lbs./acre), w is the wage rate ($/man-hour), and lt is the amount of labor employed (manhours/acre). The per-acre crop yield in year t is a function

yt = f (lt ; xt ; st ) of the amount of labor employed and fertilizer applied in year t and the level of fertilizer carryin st from the preceding year. Fertilizer carryout in year t is a function

st+1 = f (xt ; st )

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

255

of the amount of fertilizer applied and the level of fertilizer carryin in year t. Assume that future corn prices, fertilizer costs, and wage rates are known with certainty. The corn producer wishes to maximize the expected present value of net revenues over a nite horizon of T years. Formulate the producer's optimization problem. Speci cally, (a) Identify the state and action variables, the reward function, and the transition function of this problem. (b) Write Bellman's functional equation. What does the value function represent? (c) Derive the Euler conditions and interpret them. What does the derivative of value function represent? (d) What conditions characterize the steady-state optimal solution? 8.15. The role of commodity storage in intertemporal allocation has often been controversial. In particular, the following claims have often been made: a) Competitive storers, in search of speculative pro ts, tend to hoard a commodity|that is, they collectively store more than is socially optimal, and b) A monopolistic storer tends to dump a commodity at rst in order to extract monopoly rents in the future|that is, he/she stores less than is socially optimal. Explore these two propositions in the context of a simple intraseasonal storage model in which a given amount Q of a commodity is to be allocated between two periods. Consumer demand is given by pi = a qi for periods i = 1; 2, and the unit cost of storage between periods is k. There is no new production in period 2, so q1 + q2 = Q. Speci cally, answer each of the following: (a) Determine the amount stored under the assumption that there are a large number of competitive storers. (b) Determine the amount stored under the assumption that there is a single pro t-maximizing storer who owns the entire supply Q at the beginning of period 1. (c) Taking expected total consumer surplus less storage costs as a measure of societal welfare, determine the socially optimal level of storage. Address the two comments above. (d) Consider an Economist who rejects net total surplus as a measure of social welfare. Why might he/she still wish to nd the level of storage that maximizes total surplus? To simplify the analysis, assume that the discount factor is 1 and that the storer(s) are risk neutral and possess perfect price foresight.

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

256

8.16. Consider an industry of identical price taking rms. For the representative rm, let st denote beginning capital stock, let xt denote newly purchased capital stock, let qt = f (st + xt ) denote production, let k denote the unit cost of new capital, and let > 0 denote the survival rate of capital. Furthermore, let pt = p(qt ) be the market clearing price. Find the perfect foresight competitive equilibrium for this industry. 8.17. Show that the competitive storage model in section 8.6.2 can be formulated with the equilibrium storage function as the sole unknown. Hint: Write the arbitrage storage condition in the form f (st ; xt ; Et h(xt+1 )) = 0 for some appropriately de ned function h. 8.18. Show that the competitive storage model of section 8.6.2 can be recast as a dynamic optimization problem. In particular, formulate a dynamic optimization problem in which a hypothetical social planner maximizes the discounted expected sum of consumer surplus less storage costs. Derive the Euler conditions to show that, under a suitable interpretation, they are identical to the rational expectations equilibrium conditions of the storage model. 8.19. Consider the production-inventory model of section 8.3.7. Show that the value function is of the form V (p; s) = ps + W (p) where W is the solution to a Bellman functional equation. Can you derive general conditions under which one can reduce the dimensionality of a Bellman equation? 8.20. Consider the monetary policy model of section 8.3.5. Derive the certaintyequivalent steady-state in ation rate, GDP gap, nominal interest rate, and shadow prices under the simplifying assumption that the nominal interest rate is unconstrained. 8.21. Demonstrate that the problem " 1 X

#

V (st ; dt ; pt ) = max E0 Æ t U (ct ) s.t. st+1 = st + (dt st ct 2[0;dt st ] t=0 leads to the Euler condition

ÆEt [U 0 (ct+1 )(pt+1 + dt+1 )] = U 0 (ct )pt :

ct )=pt :

Chapter 9 Discrete Time Continuous State Dynamic Models: Methods This chapter discusses numerical methods for solving discrete time continuous state dynamic economic models. Such models give rise to functional equations whose unknowns are entire functions de ned on a subset of Euclidean space. For example, the unknown of Bellman's equation

V (s) = max ff (s; x) + ÆEV (g (s; x; ))g x2X (s) is the value function V (). And the unknown of a rational expectations equilibrium condition

f (s; x(s); Eh(g (s; x(s); ); x(g (s; x(s); )))) = 0 is the response function x(). In most applications, these functional equations lack known closed form solution and can only be solved approximately using computational methods. Among the computational methods available, linear-quadratic approximation and space discretization historically have been popular among economists due to the relative ease with which they can be implemented. However, in most applications, these methods either provide unacceptably poor approximations or are computationally ineÆcient. In recent years, economists have begun to experiment with projection methods pioneered by physical scientists. Among the various projection methods available, the collocation method is the most useful for solving dynamic models in Economics and Finance. In most applications, the collocation method is exible, accurate, and numerically eÆcient. It can also be developed directly from basic numerical integration, approximation, and root nding techniques. 257

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

258

The collocation method employs a conceptually straightforward strategy to solve functional equations. Speci cally, the unknown function is approximated using a linear combination of n known basis functions whose n coeÆcients are xed by requiring the approximant to satisfy the functional equation, not at all possible points of the domain, but rather at n prescribed points called the collocation nodes. The collocation method eectively replaces an in nite-dimensional functional equation with a nite-dimensional nonlinear equation that can be solved using standard numerical root nding, xed-point, and complementarity techniques. Unfortunately, the widespread applicability of the collocation method to economic and nancial models has been hampered by the absence of publicly available general purpose computer code. We address this problem by developing computer routines that perform the essential computations for a broad class of dynamic economic and nancial models. Below, the collocation method is developed in greater detail for single- and multiple-agent decision Bellman equations and rational expectations models. Application of the method is illustrated with a variety of examples.

9.1 Traditional Solution Methods Before discussing collocation methods for continuous state Markov decision models in greater detail, let us brie y examine the two numerical techniques that historically have been popular among economists for computing approximate solutions to such models: space discretization and linear-quadratic approximation. Space discretization calls for the continuous state Markov decision model to be replaced with a discrete state and action decision model that closely resembles it. The resulting discrete state and action model is then solved using the dynamic programming methods discussed in Chapter 7. To \discretize" the state space of a continuous state Markov decision problem, one partitions the state space S into nitely many regions, S1 ; S2 ; : : : ; Sn . If the action space X is also continuous, it too is partitioned into nitely many regions X1 ; X2 ; : : : ; Xm . Once the space and action spaces have been partitioned, the analyst selects representative elements, si 2 Si and xj 2 Xj , from each region. These elements serve as the state and action spaces of the approximating discrete state discrete action Markov decision problem. The transition probabilities of the discrete state discrete action space problem are computed by integrating with respect to the density of the random shock:

P (si0 jsi ; xj ) = Pr[g (si; xj ; ) 2 Si0 ]: When the state and action spaces are bounded intervals on the real line, say, S = [smin ; smax ] and X = [xmin ; xmax ], it is often easiest to partition the spaces so that the nodes are equally-spaced and the rst and nal nodes correspond to the endpoints

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

259

of the intervals. Speci cally, set si = smin + (i 1)ws and xj = xmin + (j 1)wx, for i = 0; 1; : : : ; n and j = 0; 1; : : : ; m, where ws = (smax smin )=(n 1) and wx = (xmax xmin )=(m 1). If the model is stochastic, the transition probabilities of the approximating discrete state decision model are given by

P (si0 jsi ; xj ) = Pr[si0

ws =2 g (si; xj ; ) si0 + ws =2]:

Another popular method for solving dynamic optimization models is linear-quadratic approximation. Linear-quadratic approximation calls for the state transition function g and objective function f to be replaced with linear and quadratic approximants, respectively. Linear-quadratic approximation is motivated by the fact that an unconstrained Markov decision problem with linear transition and quadratic objective has a closed-form solution that is relatively easy to derive numerically. Typically, the linear and quadratic approximants of g and f are constructed by forming the rst- and second-order Taylor expansions around the certainty-equivalent steady-state. When passing to the linear-quadratic approximation, any constraints on the action, including nonnegativity constraints, must be discarded. The rst step in deriving an approximate solution to a continuous state Markov decision problem via linear-quadratic approximation is to compute the certaintyequivalent steady-state. If denotes the mean shock, the certainty-equivalent steadystate state s , optimal action x , and shadow price are characterized by the nonlinear equation system:

fx (s ; x ) + Æ gx (s ; x ; ) = 0 = fs (s ; x ) + Æ gs(s ; x ; ) s = g (s ; x ; ): Typically, the nonlinear equation may be solved for the steady-state values of s , x , and using standard nonlinear equation methods. In one-dimensional state and action models, the conditions can often be solved analytically. Here, fx, fs , gx , and gs denote partial derivatives whose dimensions are 1 m, 1 n, n m, and n n, respectively, where n and m are the dimensions of the state and action spaces, respectively. Here, the certainty-equivalent steady-state shadow price is expressed as a 1 n row vector. The second step is to replace the state transition function g and the reward function f , respectively, with their rst- and second-order Taylor series approximants expanded around the certainty-equivalent steady-state:

f (s; x)

f + fs(s s) + fx(x x ) + 0:5(s s)>fss (s s ) (x x ) + 0:5(x x )>f (x +(s s )>fsx xx

x )

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

260

g (s; x; ) g + gs (s s ) + gx (x x ): , and f are the values and partial derivatives Here, f , g , fs , fx , gs, gx , fss , fsx xx of f and g evaluated at the certainty-equivalent steady-state. If n and m are the dimensions of the state and action spaces, respectively, then the orders of these vectors and matrices are as follows: f is a constant, fs is 1 n, fx is 1 m, fss is n n, is m m, g is n 1, g is n n, and g is n m. fsx is n m, fxx s x The shadow price and optimal policy functions of the resulting linear-quadratic control problem will be linear. Speci cally:

x(s) = x + (s s ) (s) = + (s s ): The slope matrices of the policy and shadow price functions, and , are characterized by the nonlinear vector xed point equations = [Æg >g + f ][Æg >g + f >] 1 [Æg >g + f >] + Æg >g + f s

x

sx

x

x

xx

x

s

sx

s

s

ss

>] 1 [Æg >g + f >]: = [Ægx >gx + fxx x s sx

These xed point equations can usually be solved using numerically by function iteration, typically with initial guess = 0, or, if the problem is one dimensional, analytically by applying the quadratic formula. In particular, if the problem has = f 2 , a condition often enone dimensional state and action spaces, and if fss fxx sx countered in economic problems, then the slope of the shadow price function may be computed analytically as follows: = [f g 2 2f f g g + f g 2 f =Æ ]=g 2 ss x

ss xx s x

xx s

xx

x

9.2 The Collocation Method In order to describe the collocation method for solving continuous state Markov decision models, we will limit our discussion to in nite-horizon models with onedimensional state and action spaces and univariate shocks. The presentation generalizes to models with higher dimensional states, actions, and shocks, but at the expense of cumbersome additional notation required to track the dierent dimensions.1 1 The routines included in the Compecon library accompanying the book admit higher dimensional

states, actions, and shocks.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

261

Consider, then, Bellman's equation for an in nite horizon discrete time continuous state dynamic decision problem

V (s) = max ff (s; x) + ÆEV (g (s; x; ))g: x2X (s) Assume that the state space is a bounded interval of the real line, S = [smin ; smax ], and the actions either are discrete or are continuous and subject to simple bounds a(s) x b(s) that are continuous functions of the state. Further assume that the reward function f (s; x) and state transition function g (s; x; ) are twice continuously dierentiable functions of their arguments. To compute an approximate solution to Bellman's equation via collocation, one employs the following strategy: First, write the value function approximant as a linear combination of known basis functions 1 ; 2 ; : : : ; n whose coeÆcients c1 ; c2 ; : : : ; cn are to be determined:

V (s)

n X j =1

cj j (s):

Second, x the basis function coeÆcients c1 ; c2 ; : : : ; cn by requiring the approximant to satisfy Bellman's equation, not at all possible states, but rather at n states s1 ; s2 ; : : : ; sn , called the collocation nodes. Many collocation basis-node schemes are available to the analyst, including Chebychev polynomial and spline approximation schemes. The best choice of basis-node scheme is application speci c, and often depends on the curvature of the value and policy functions. The collocation strategy replaces the Bellman functional equation with a system of n nonlinear equations in n unknowns. Speci cally, to compute the value function approximant, or more precisely, to compute the n coeÆcients c1 ; c2 ; : : : ; cn in its basis representation, one must solve the nonlinear equation system X j

n X

cj j (si ) = max ff (si ; x) + ÆE cj j (g (si; x; ))g: x2X (si ) j =1

The nonlinear equation system may be compactly expressed in vector form as the collocation equation c = v (c): Here, , the collocation matrix, is the n by n matrix whose typical ij th element is the j th basis function evaluated at the ith collocation node ij = j (si )

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

262

and v , the collocation function, is the function from smax), disp('Warning: increase smax'), end; end

If the Bellman residuals are poor and there are attempts to extrapolate within vmax are detected, the minimum and/or maximum state should be extended and the model should be solved again. The interpolation interval should be repeatedly adjusted in this manner until extrapolation beyond the interval no longer occurs or the residual function becomes acceptably small.

9.3 Postoptimality Analysis Although the optimal policy and shadow price functions reveal a great deal about the nature of the optimized dynamic process, they give an incomplete picture of the model's implications. Given an economic model, we typically wish to describe the dynamic behavior of the optimized process and how this behavior changes with variations model parameters or assumptions. Given a dynamic economic model, we typically characterize the model's solution in one of two ways. Steady-state analysis examines the long-run tendencies of the optimized process, abstracting from the initial state and the path taken by the process over time. Dynamic path analysis focuses on how the system evolves over time, starting from a given initial condition.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

270

Given a deterministic dynamic model, steady-state and dynamic path analysis are relatively straightforward to perform. As we have seen, the steady-state of a deterministic process is typically characterized by a system of nonlinear equations. The system can be solved numerically and totally dierentiated to generate explicit expressions describing how the steady-state varies with changes in model parameters. Dynamic path analysis can be performed through a simple deterministic simulation of the process, which requires repeated evaluations of the optimal policy and state transition functions. In particular, if x(s) is the computed optimal policy function and g (s; x) is the transition function, then, given an initial state s0 , the path taken by the state variable may be computed iteratively as follows: st+1 = g (st ; x(st )): Given the path of the state variable st , it is then usually straightforward to generate the path taken by any other endogenous variable. The analysis of stochastic models is a bit more involved. Stochastic models do not generate an unique, deterministic path from a given initial state. A stochastic process may take any one of many possible paths, depending on the realizations of the random shocks. Often, it is instructive to generate one such possible path to illustrate the volatility that an optimized process is capable of exhibiting. This is performed by a simple Monte Carlo simulation in which a sequence of pseudorandom shocks are generated for the process using a random number generator. In particular, given the computed optimal policy function x(s), the transition function g (s; x; ), an initial state s0 , and a pseudorandom sequence of t , a representative path may be generated iteratively as follows: st+1 = g (st ; x(st ); t+1 ): A more revealing analysis of the dynamics generated by a stochastic model is to draw not a single representative path, but rather the expected path of the process. The expected path may be computed by generating a large number of independent representative paths and averaging the results at each point in time. The expected path is typically smooth and converges to a steady-state mean value. The steady-state of a stochastic process is a distribution, not a point. Typically, it will suÆce to compute the mean and standard deviation of the steady-state distribution for selected endogenous variables. The most common approach to computing steady-state means and variances is through the use of Monte Carlo simulation. Monte Carlo simulation is used to generate a single representative path of long horizon, say 10,000 periods. The values of the endogenous variable thus generated collectively re ect the steady-state distribution of the variable. In practice, we simply accumulate the rst and second moments of the variable with each simulated period, and compute the means and the standard deviation at the conclusion of the simulated long-run history. In many instances we are interested in seeing how certain properties of the model vary as the parameters of the model change. Typically, we focus on the relationship between the steady-state mean or variance of a given endogenous variable and an

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

271

exogenous parameter of interest. In order to perform sensitivity analysis, one performs Monte Carlo simulations at chosen values of the parameter and constructs a leastsquares t to the graph points generated in this fashion.

9.4 Computational Examples 9.4.1 Asset Replacement Consider the asset replacement model of Section 8.2.1 assuming that an asset produces q (a) = (50 2:5a 2:5a2 ) units of output in its ath period of operation, up to period a = 10, and that the output price is p = 2. Further assume that the replacement cost k is an exogenous continuous-valued rst-order Markov process kt+1 = g (kt; t+1 ) = k + (kt k) + t+1 where t is i.i.d. normal(0; 2). The collocation method calls for the analyst to select n basis functionsP j and n collocation nodes (ki ; ai ), and form the value function approximant V nj=1 cj j whose coeÆcients cj solve the collocation equation n X j =1

cj j (ki ; ai ) =

maxfp q (ai ) + Æ

n X j =1

wk cj j (k^ik ; ai + 1); p q (0) ki + Æ

n X j =1

wk cj j (k^ik ; 1)g:

where k^ik = g (ki; k ) and where k and wk represent Gaussian quadrature nodes and weights for the normal shock. In practice, one may solve the asset replacement model using Compecon library routines as follows:4

Step 1 Code model function le: function out = mfdp01(flag,s,x,e,price,cbar,gamma); switch flag case 'f'; % REWARD FUNCTION out = price*(50-2.5*s(:,2)-2.5*s(:,2).^2).*(1-x)... +(price*50-s(:,1)).*x; case 'g'; % STATE TRANSITION FUNCTION out(:,1) = cbar + gamma*(s(:,1)-cbar) + e; out(:,2) = min(s(:,2)+1,10).*(1-x) + x; end 4 Functioning Matlab code for this example is contained in the Compecon library demonstration le demdp01.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

272

The model function le returns the values of the reward and transition functions at arbitrary vectors of states s, actions x, and shocks e. Passing the ag 'f' returns the reward function value f and passing the ag 'g' returns the transition function value g.

Step 2 Enter model parameters: delta price cbar gamma sigma

= = = = =

0.9; 2.0; 100; 0.5; 15;

Here, the discount factor, output price, long-run mean replacement cost, replacement cost autoregression coeÆcient, and standard deviation of replacement cost shock are speci ed, respectively.

Step 3 Discretize shock: m = 5; [e,w] = qnwnorm(m,0,sigma^2);

Here, the normal replacement cost shock is discretized using a ve node Gaussian quadrature scheme.

Step 4 Specify basis functions and collocation nodes: n = 60; cmin = 30; cmax = 190; fspace = fundefn('lin',n,cmin,cmax,[],[1:10]'); snodes = funnode(fspace); s = gridmake(snodes);

Here, a 60-function nite dierence basis on the interval [30; 190] is used to approximate the value function along its continuous dimension (replacement cost) and the associated collocation nodes are used to formulate the collocation equation.

Step 5 Construct the action space: x = [0;1];

Here, the action space is dichotomous.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

273

Step 6 Pack model structure: model.func = 'mfdp01'; model.discount = delta; model.e = e; model.w = w; model.actions = x; model.discretestates = 2; model.params = {price cbar gamma};

Here, model is a structured variable whose elds contain the elements of the dynamic decision model. The rst eld contains the name of the model function le 'mfdp01'; the remaining elds contain the discount factor delta, shock values e, shock probabilities w, the action space x, the index of the discrete state (age) discretestates, and model function parameters params, respectively.

Step 7 Provide judicious guesses for values at the collocation nodes: vinit = zeros(size(s,1),1);

Here, the value function is initialized to zero.

Step 8 Solve the decision model: [c,s,v,x,resid] = dpsolve(model,fspace,snodes,vinit);

The Compecon routine dpsolve accepts as input the model structure model, basis functions fspace, collocation nodes snodes, and initial guess for the value function vinit. It then solves the collocation equation, returning as output the basis coeÆcients c, and the optimal values v, optimal actions x, and Bellman equation residuals resid at a re ned state grid s.

Step 8 Perform postoptimality analysis. Figure 9.1a gives the value of the rm as a

function of the asset replacement costs for dierent asset ages. For any given asset age, the value of the rm is downward sloping and kinked at the critical replacement cost, below which the asset is replaced. Figure 9.1b gives the Bellman equation residual for the nite dierence basis approximant as a function of the asset replacement costs for dierent asset ages. The residual exhibits noticeable errors at the critical replacement costs, which can be expected due to the discontinuous derivatives of the value function at those points.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS Value Function

274

Approximation Residual

600

0.05

580 0

560 −0.05

540 −0.1

Residual

Value

520

500

−0.15

−0.2

480 −0.25

460

−0.3

440

−0.35

420

400 20

40

60

80

100

120

140

160

180

200

−0.4 20

40

60

80

Replacement Cost

100

120

140

160

180

200

Replacement Cost

Figure 9.1: Solution to Asset Replacement Model

9.4.2 Timber Cutting Consider the timber cutting model of Section 8.2.2 assuming that the stand biomass s grows at a deterministic rate st+1 = K + exp (st K ). Further assume a constant pro t contribution per unit of biomass p and constant cost of replanting C . The collocation method calls for the analyst to select n basis functions P j and n collocation nodes (si ), and form the value function approximant V nj=1 cj j whose coeÆcients cj solve the collocation equation n X j =1

cj j (si ) = maxfÆ

n X j =1

cj j (g (si))); P si

C +Æ

n X j =1

cj j (0)g:

In practice, one may solve the timber cutting model using Compecon library routines as follows:5

Step 1 Code model function le: function out = mfdp02(flag,s,x,e,price,C,K,alpha); switch flag case 'f'; out = (price*s-C).*x; case 'g';

5 Functioning Matlab code for this example is contained in the Compecon library demonstration

le demdp02.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

275

out = ((K+exp(-alpha)*(s-K))).*(1-x); end

The model function le returns the values of the reward and transition functions at arbitrary vectors of states s, actions x, and shocks e. Passing the ag 'f' returns the reward function value f and passing the ag 'g' returns the transition function value g.

Step 2 Enter model parameters: delta price C K alpha

= = = = =

0.95; 1; 0.2; 0.5; 0.1;

Here, the discount factor, output price, replanting cost, carrying capacity, and speed of mean reversion are speci ed, respectively.

Step 3 Specify basis functions and collocation nodes: n = 350; fspace = fundefn('lin',n,0,K); snodes = funnode(fspace);

Here, a 350-function nite dierence basis on the interval [0; K ] and the associated standard collocation nodes are used to formulate the collocation equation.

Step 4 Construct the action space: x = [0;1];

Here, the action space is dichotomous.

Step 5 Pack model structure: model.func = 'mfdp02'; model.discount = delta; model.actions = x; model.params = {price C K alpha};

Here, model is a structured variable whose elds contain the elements of the dynamic decision model. The rst eld contains the name of the model function le 'mfdp02'; the remaining elds contain the discount factor delta, the action space x, and model function parameters params, respectively.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

276

Step 6 Provide judicious guesses for values at the collocation nodes: vinit = zeros(size(snodes));

Here, the value function is initialized to zero.

Step 7 Solve the decision model: [c,s,v,x,resid] = dpsolve(model,fspace,snodes,vinit);

The Compecon routine dpsolve accepts as input the model structure model, basis functions fspace, collocation nodes snodes, and initial guess for the value function vinit. It then solves the collocation equation, returning as output the basis coeÆcients c, and the optimal values v, optimal actions x, and Bellman equation residuals resid at a re ned state grid s. Value Function

Approximation Residual

−5

0.5

0.5

x 10

0 0.45 −0.5 0.4

0.35

Residual

Value of Land

−1

0.3

−1.5

−2

−2.5 0.25 −3 0.2 −3.5

0.15

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

−4

Biomass

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

Biomass

Figure 9.2: Solution to Timber Cutting Model

Step 8 Perform postoptimality analysis. Figure 9.2a gives the value of the stand as a function of the biomass. Figure 9.2b gives the Bellman equation residual for the nite dierence basis approximant.

9.4.3 Optimal Economic Growth Consider the optimal economic growth model of Section 8.3.1 assuming a social bene t function u(c) = c1 =(1 ), an aggregate production function f (x) = x , and an i.i.d.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

277

lognormal(0; 2) production shock . The collocation method calls for the analyst to select n basis functions j and n collocation nodes si , and form the value function P approximant V nj=1 cj j whose coeÆcients cj solve the collocation equation n X j =1

cj j (si ) = 0max f(s xs i i

x)1 =(1

) + Æ

m X n X k=1 j =1

wk cj j ( x + k x )g

where k and wk represent Gaussian quadrature nodes and weights for the lognormal shock. In practice, one may solve the optimal economic growth model using Compecon library routines as follows:6

Step 1 Code model function le: function [out1,out2,out3] = mfdp07(flag,s,x,e,alpha,beta,gamma); switch flag case 'b'; % BOUND FUNCTION out1 = zeros(size(s)); out2 = s; case 'f'; % REWARD FUNCTION out1 = ((s-x).^(1-alpha))/(1-alpha); out2 = -(s-x).^(-alpha); out3 = -alpha*(s-x).^(-alpha-1); case 'g'; % STATE TRANSITION FUNCTION out1 = gamma*x + e.*x.^beta; out2 = gamma + beta*e.*x.^(beta-1); out3 = (beta-1)*beta*e.*x.^(beta-2); end

The model function le returns the values and derivatives of the bound, reward, and transition functions at arbitrary vectors of states s, actions x, and shocks e. Passing the ag 'b' returns the lower and upper bounds on the action xl and xu; passing the

ag 'f' returns the reward function value and its rst and second derivatives with respect to the action, f, fx, and fxx; and passing the ag 'g' returns the transition function value and its rst and second derivatives with respect to the action, g, gx, and gxx.

Step 2 Enter model parameters:

6 Functioning Matlab code for this example is contained in the Compecon library demonstration

le demdp07.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS delta alpha beta gamma sigma

= = = = =

278

0.9; 0.2; 0.5; 0.9; 0.1;

Here, the discount factor, utility function parameter, production elasticity, capital survival rate, and production shock volatility are speci ed, respectively.

Step 3 Discretize shock: m = 3; [e,w] = qnwlogn(m,0,sigma^2);

Here, the lognormal production shock is discretized using a three node Gaussian quadrature scheme.

Step 4 Specify basis functions and collocation nodes: n = 10; smin = 5; smax = 10; fspace = fundefn('cheb',n,smin,smax); snodes = funnode(fspace);

Here, the rst ten Chebychev polynomials on the interval [5; 10] and the corresponding standard Chebychev nodes are selected to serve as basis functions and collocation nodes.

Step 5 Pack model structure: model.func = 'mfdp07'; model.discount = delta; model.e = e; model.w = w; model.params = {alpha beta gamma};

Here, model is a structured variable whose elds contain the elements of the dynamic decision model. The rst eld contains the name of the model function le 'mfdp07'; the remaining elds contain the discount factor delta, shock values e, shock probabilities w, and model function parameters params, respectively.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

279

Step 6 Provide judicious guesses for values and actions at the collocation nodes: estar = 1; xstar = ((1-delta*gamma)/(delta*beta))^(1/(beta-1)); sstar = gamma*xstar + xstar^beta; [vlq,xlq] = lqapprox(model,snodes,sstar,xstar,estar);

Here, the the certainty-equivalent steady-state shock, action, and state are computed analytically and passed to the Compecon library routine lqapprox, which returns the linear-quadratic approximation values and actions at the collocation nodes. The linear-quadratic approximation is used to initialize the collocation algorithm.

Step 7 Solve the decision model: [c,s,v,x,resid] = dpsolve(model,fspace,snodes,vlq,xlq);

The Compecon routine dpsolve accepts as input the model structure model, basis functions fspace, collocation nodes snodes, and initial guesses for the value function vlq and optimal actions xlq. It then solves the collocation equation, returning as output the basis coeÆcients c, and the optimal values v, optimal actions x, and Bellman equation residuals resid at a re ned state grid s.

Step 8 Perform postoptimality analysis. Figure 9.3a gives optimal investment as a

percent of wealth computed using both Chebychev collocation and linear-quadratic approximation. The Chebychev collocation approximant is upward sloping and the linear-quadratic approximant is downward sloping, indicating a qualitative dierence between the two. Figure 9.3b gives the Bellman equation residual for the Chebychev approximant. The residual possesses zeros at the collocation nodes by design and exhibits very nearly equal oscillations between the nodes, a property that is typical of Chebychev residuals when the underlying model is smooth and eectively unconstrained. In this example, a ten degree Chebychev approximation was suÆcient to solve the Bellman equation to a residual error of order 2 10 10 , approximately seven orders of magnitude more accurate than the linear-quadratic approximant, whose residual is not drawn. These results suggest that linear-quadratic approximation can yield globally inaccurate solutions even when the underlying model is smooth and the constraints on the actions are not binding. Figure 9.3c gives the expected path followed by the wealth level over time, beginning from a wealth level of 5. The expected path was computed by performing Monte Carlo simulations involving 2000 replications of twenty years in duration each, using the Compecon library routine dpsimul:

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS Approximation Residual

−9

Optimal Investment Policy

5

0.82 Chebychev L−Q

280

x 10

4

0.8

2

1 0.76

Residual

Investment as Percent of Wealth

3

0.78

0.74

0

−1

−2

0.72

−3 0.7

−4

0.68

5

5.5

6

6.5

7

7.5

8

8.5

9

9.5

−5

10

5

5.5

6

6.5

7

7.5

8

8.5

9

9.5

10

8.5

9

9.5

10

Wealth

Wealth

Expected Wealth

Steady State Distribution

7.5

0.09

0.08

7 0.07

0.06

Wealth

Probability

6.5 0.05

0.04

6 0.03

0.02

5.5

0.01

5

0

2

4

6

8

10

12

14

16

18

20

0

5

5.5

6

6.5

7

Year

7.5

8

Wealth

Figure 9.3: Solution to Optimal Economic Growth Model nyrs = 20; nrep = 2000; sinit = 5*ones(nrep,1); [spath,xpath] = dpsimul(model,sinit,nyrs,s,x);

As seen in this gure, expected wealth rises at a declining rate, converging asymptotically to a steady-state value of approximately 7.5. Figure 9.3d gives the steady-state distribution of the wealth level. The distribution, represented as an 80 bin histogram, was computed using using the Compecon library routine dpstst with a smoothing parameter of 5: nsmooth = 5;

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

281

nbin = 80; [ss,pi,xx] = dpstst(model,nsmooth,nbin,s,x);

As seen in this gure, the steady-state distribution is essentially bell-shaped with a mean of approximately 7.5, which is consistent with the Monte-Carlo state path simulations.

9.4.4 Public Renewable Resource Management Consider the public renewable resource management model of Section 8.3.2 assuming an inverse demand function p(x) = x , a constant cost of harvest k, and a deterministic state transition function g (s; x) = (s x) 0:5 (s x)2 . The collocation method calls for the analyst to select n basis functions j and n collocation nodes si , Pn and form the value function approximant V j =1 cj j whose coeÆcients cj solve the collocation equation n n X X x1 cj j (si ) = 0max f k x + Æ cj j ((si x) 0:5 (si x)2 )g: xsi 1 j =1 j =1 In practice, one may solve the public renewable resource management model using Compecon library routines as follows:7

Step 1 Code model function le: function [out1,out2,out3] = mfdp08(flag,s,x,e,alpha,beta,gamma,cost); switch flag case 'b'; % BOUND FUNCTION out1 = zeros(size(s)); out2 = s; case 'f'; % REWARD FUNCTION out1 = (x.^(1-gamma))/(1-gamma)-cost*x; out2 = x.^(-gamma)-cost; out3 = -gamma*x.^(-gamma-1); case 'g'; % STATE TRANSITION FUNCTION out1 = alpha*(s-x) - 0.5*beta*(s-x).^2; out2 = -alpha + beta*(s-x); out3 = zeros(size(s))-beta; end

7 Functioning Matlab code for this example is contained in the Compecon library demonstration

le demdp08.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

282

The model function le returns the values and derivatives of the bound, reward, and transition functions at arbitrary vectors of states s and actions x. Passing the ag 'b' returns the lower and upper bounds on the action xl and xu; passing the ag 'f' returns the reward function value and its rst and second derivatives with respect to the action, f, fx, and fxx; and passing the ag 'g' returns the transition function value and its rst and second derivatives with respect to the action, g, gx, and gxx.

Step 2 Enter model parameters: delta alpha beta gamma cost

= = = = =

0.9; 4.0; 1.0; 0.5; 0.2;

Here, the discount factor, growth function parameters, demand function parameter, and unit cost of harvest are speci ed, respectively.

Step 3 Specify basis functions and collocation nodes: n = 8; smin = smax = fspace snodes

6; 9; = fundefn('cheb',n,smin,smax); = funnode(fspace);

Here, the rst eight Chebychev polynomials on the interval [6; 9] and the associated standard Chebychev nodes are selected to serve as basis functions and collocation nodes.

Step 4 Pack model structure: model.func = 'mfdp08'; model.discount = delta; model.params = {alpha beta gamma cost};

Here, model is a structured variable whose elds contain the elements of the dynamic decision model. The rst eld contains the name of the model function le 'mfdp08'; the remaining elds contain the discount factor delta and model function parameters params, respectively.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

283

Step 5 Provide judicious guesses for values and actions at the collocation nodes: sstar = (alpha^2-1/delta^2)/(2*beta); xstar = sstar - (delta*alpha-1)/(delta*beta); [vlq,xlq] = lqapprox(model,snodes,sstar,xstar);

Here, the steady-state state and action are computed analytically and passed to the Compecon library routine lqapprox, which returns the linear-quadratic approximation values and actions at the collocation nodes. The linear-quadratic approximation is used to initialize the collocation algorithm.

Step 6 Solve the decision model: [c,s,v,x,resid] = dpsolve(model,fspace,snodes,vlq,xlq);

The Compecon routine dpsolve accepts as input the model structure model, basis functions fspace, collocation nodes snodes, and initial guesses for the value function vlq and optimal actions xlq. It then solves the collocation equation, returning as output the basis coeÆcients c, and the optimal values v, optimal actions x, and Bellman equation residuals resid at a re ned state grid s.

Step 7 Perform postoptimality analysis. Figure 9.4a gives optimal harvest as a

percent of resource stock computed using both Chebychev collocation and linearquadratic approximation. The Chebychev collocation approximant is upward sloping and the linear-quadratic approximant is downward sloping. Figure 9.4b gives the shadow price of the resource stock computed using both Chebychev collocation and linear-quadratic approximation. Both approximants are downward sloping, but the Chebychev approximant has a steeper slope. Figure 9.4c gives the Bellman equation residual for the Chebychev approximant. The residual possesses zeros at the collocation nodes by design and exhibits very nearly equal oscillations between the nodes. In this example, an eight degree Chebychev approximation was suÆcient to solve the Bellman equation to a relative residual error of order 2 10 10 . Figure 9.3d gives the path followed by the resource stock level over a twenty year period, beginning from a level of 6. The path was computed the Compecon library routine dpsimul: nyrs = 20; sinit = smin; [spath,xpath] = dpsimul(model,sinit,nyrs,s,x);

As seen in this gure, resource stock rises rapidly, eectively converging to its steadystate value of 4.5 within four years.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS Optimal Harvest Policy

284

Shadow Price Function

0.75

0.36 Chebychev L−Q

Chebychev L−Q 0.34

0.7

0.3

0.65

Price

Harvest as Percent of Stock

0.32

0.6

0.28

0.26

0.24 0.55 0.22

0.5

6

6.5

7

7.5

8

8.5

0.2

9

6

6.5

7

7.5

Available Stock

Approximation Residual

−9

8

x 10

8

8.5

9

Available Stock

State Path 7.5

6

4 7

Stock

Residual

2

0

−2 6.5

−4

−6

−8

6

6.5

7

7.5

8

8.5

9

6

0

2

4

6

Available Stock

8

10

12

14

16

18

20

Year

Figure 9.4: Solution to Public Renewable Resource Management Model

9.4.5 Private Nonrenewable Resource Management Consider the private nonrenewable resource management model of Section 8.3.3 assuming a constant output price and a cost of extraction c(s; x) = x2 =( + s) where and are positive constants. The collocation method calls for the analyst to select n basis functions P j and n collocation nodes si , and form the value function approximant V nj=1 cj j whose coeÆcients cj solve the collocation equation n X j =1

cj j (si ) = 0max f x xs i

n

X x2 =( + s) + Æ cj j (si j =1

x)g:

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

285

In practice, one may solve the private nonrenewable resource management model using Compecon library routines as follows:8

Step 1 Code model function le: function [out1,out2,out3] = mfdp09(flag,s,x,e,alpha,beta); switch flag case 'b'; % BOUND FUNCTION out1 = zeros(size(s)); out2 = s; case 'f'; % REWARD FUNCTION out1 = alpha*x - (x.^2)./(beta+s); out2 = alpha - 2*x./(beta+s); out3 = -2./(beta+s); case 'g'; % STATE TRANSITION FUNCTION out1 = s-x; out2 = -ones(size(s)); out3 = zeros(size(s)); end

The model function le returns the values and derivatives of the bound, reward, and transition functions at arbitrary vectors of states s and actions x. Passing the ag 'b' returns the lower and upper bounds on the action xl and xu; passing the ag 'f' returns the reward function value and its rst and second derivatives with respect to the action, f, fx, and fxx; and passing the ag 'g' returns the transition function value and its rst and second derivatives with respect to the action, g, gx, and gxx.

Step 2 Enter model parameters: delta = 0.9; alpha = 1.0; beta = 20.0;

Here, the discount factor, output price, and cost function parameter are speci ed, respectively.

Step 3 Specify basis functions and collocation nodes:

8 Functioning Matlab code for this example is contained in the Compecon library demonstration

le demdp09.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

286

n = 100; smin = 0; smax = 5; fspace = fundefn('spli',n,smin,smax); snodes = funnode(fspace);

Here, a 100 cubic spline basis on the interval [0; 5] and the corresponding standard nodes are selected to serve as basis functions and collocation nodes.

Step 4 Pack model structure: model.func = 'mfdp09'; model.discount = delta; model.params = {alpha beta};

Here, model is a structured variable whose elds contain the elements of the dynamic decision model. The rst eld contains the name of the model function le 'mfdp09'; the remaining elds contain the discount factor delta and model function parameters params, respectively.

Step 5 Provide judicious guesses for values and actions at the collocation nodes: xinit = snodes; vinit = zeros(size(snodes));

Here, since the model has no meaningful steady-state, the harvest is set equal to the stock level and the initial value function is set to zero to initialize the collocation algorithm.

Step 6 Solve the decision model: [c,s,v,x,resid] = dpsolve(model,fspace,snodes,vinit,xinit);

The Compecon routine dpsolve accepts as input the model structure model, basis functions fspace, collocation nodes snodes, and initial guesses for the value function vinit and optimal actions xinit. It then solves the collocation equation, returning as output the basis coeÆcients c, and the optimal values v, optimal actions x, and Bellman equation residuals resid at a re ned state grid s.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS Optimal Harvest Policy

287

Shadow Price Function

3

1

0.98

2.5 0.96

0.94

0.92

Price

Harvest

2

1.5

0.9

1

0.88

0.86

0.5 0.84

0

0

0.5

1

1.5

2

2.5

0.82

3

0

0.5

1

1.5

Available Stock Approximation Residual

−6

1

x 10

2

2.5

3

Available Stock State Path 3

2.5

0.5 2

0

Stock

Residual

1.5

1

−0.5

0.5

−1 0

−1.5

0

0.5

1

1.5

Available Stock

2

2.5

3

−0.5

0

2

4

6

8

10

12

14

16

18

20

Year

Figure 9.5: Solution to Private Nonrenewable Resource Management Model

Step 7 Perform postoptimality analysis. Figure 9.5a gives optimal harvest policy and the 45o line. A salient feature of the optimal policy is that, for stock levels roughly below 1, the upper bound on the extraction level is binding and the optimal policy is to extract all remaining stock. Figure 9.5b gives the shadow price of the resource stock. As seen in this gure, the shadow price exhibits an apparently discontinuous derivative or kink at the point at which the upper bound becomes binding. Figure 9.5c gives the Bellman equation residual for the cubic spline approximant. The residual exhibits a strong disturbance near the kink point, which is typical of spline and Chebychev polynomial approximations in the presence of kinks. Still, the residual produced with 100 cubic spline basis functions is small in the vicinity of the kink, on the order of 1 10 6 , and is several orders of magnitude smaller at stock levels

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

288

further removed from the kink. As seen in Figure 9.3d, if the initial stock level is 3, it will be optimal to extract the entire stock in exactly two years.

9.4.6 Optimal Monetary Policy Consider the optimal monetary policy model of Section 8.3.5 assuming a loss function 1 L(s) = (s s )> (s s ) 2 and a state transition function

g (s; x; ) = + s + x + where and are 2 1 constant vectors, is a 2 2 constant matrix, and is a 2 1 random with i.i.d. bivariate normal(0; ) shock . The collocation method calls for the analyst to select n basis functions j and n collocation nodes si , and form the Pn value function approximant V j =1 cj j whose coeÆcients cj solve the collocation equation n X j =1

cj j (si ) = max f L(si ) + Æ 0 x

m X n X k=1 j =1

wk cj j ( + s + x + k )g

where k and wk represent Gaussian quadrature nodes and weights for the normal shock. This example diers from the preceding continuous choice examples in that the state space is 2-dimensional. In practice, one may solve the optimal monetary policy model using Compecon library routines as follows:9

Step 1 Code model function le: function [out1,out2,out3] = mfdp11(flag,s,x,e,lambda,starget,a,b,c); [n ds] = size(s); switch flag case 'b'; % BOUND FUNCTION out1 = zeros(n,1); out2 = inf*ones(n,1); case 'f'; % REWARD FUNCTION starget = starget(ones(n,1),:); out1 = -0.5*((s-starget).^2)*lambda';

9 Functioning Matlab code for this example is contained in the Compecon library demonstration

le demdp11.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

289

out2 = zeros(n,1); out3 = zeros(n,1); case 'g'; % STATE TRANSITION FUNCTION out1 = a(ones(n,1),:) + s*b' + x*c + e; out2 = c(ones(n,1),:); out3 = zeros(n,ds); end

The model function le returns the values and derivatives of the bound, reward, and transition functions at arbitrary vectors of states s, actions x, and shocks e. Passing the ag 'b' returns the lower and upper bounds on the action xl and xu; passing the

ag 'f' returns the reward function value and its rst and second derivatives with respect to the action, f, fx, and fxx; and passing the ag 'g' returns the transition function value and its rst and second derivatives with respect to the action, g, gx, and gxx.

Step 2 Enter model parameters: delta = 0.9; a = [0.9 0.4]; b = [0.8 0.5; 0.2 0.6]; c = [-0.8 0.0]; lambda = [0.3 1]; starget = [0 1]; cov = 0.04*eye(2);

Here, the discount factor, transition function parameters, loss function preference weights, state targets, and shock covariance matrix are speci ed, respectively.

Step 3 Discretize shock: m = [3 3]; mu = [0 0]; [e,w] = qnwnorm(m,mu,cov);

Here, a 9-node discretization of the bivariate normal production shock is constructed by forming the Cartesian product of the three standard univariate nodes in each dimension.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

290

Step 4 Specify basis functions and collocation nodes: n = [10 10]; smin = [-15 -10]; smax = [15 10]; fspace = fundefn('spli',n,smin,smax); scoord = funnode(fspace); snodes = gridmake(scoord);

Here, a 100-function bivariate Chebychev polynomial basis on the square f(s1 ; s2 )j 15 s1 15; 10 s2 10g is constructed by forming the tensor products of the rst ten univariate Chebychev polynomials along each dimension; also, a 100-node collocation grid within the square is constructed by forming the Cartesian product of the ten standard Chebychev nodes along each dimension. Note that snodes will be a 100 by 2 matrix.

Step 5 Pack model structure: model.func = 'mfdp11'; model.discount = delta; model.e = e; model.w = w; model.params = {lambda starget a b c};

Here, model is a structured variable whose elds contain the elements of the dynamic decision model. The rst eld contains the name of the model function le 'mfdp11'; the remaining elds contain the discount factor delta, shock values e, shock probabilities w, and model function parameters params, respectively.

Step 6 Provide judicious guesses for values and actions at the collocation nodes: estar = [0 0]; sstar = starget; xstar = (sstar(1)-a(1)-b(1,:)*sstar')/c(1); [vlq,xlq] = lqapprox(model,snodes,sstar,xstar,estar);

Here, the the certainty-equivalent steady-state shock, state, and action are computed analytically and passed to the Compecon library routine lqapprox, which returns the linear-quadratic approximation values and actions at the collocation nodes. The linear-quadratic approximation is used to initialize the collocation algorithm.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

291

Step 7 Solve the decision model: [c,s,v,x,resid] = dpsolve(model,fspace,snodes,vlq,xlq);

The Compecon routine dpsolve accepts as input the model structure model, basis functions fspace, collocation nodes snodes, and initial guesses for the value function vlq and optimal actions xlq. It then solves the collocation equation, returning as output the basis coeÆcients c, and the optimal values v, optimal actions x, and Bellman equation residuals resid at a re ned state grid s. Optimal Monetary Policy

Approximation Residual

0.2

25 0.1

20

Deviation

Nominal Interest Rate

30

15 10

0

−0.1

−0.2

5 0 10

−0.3 10

15

5

15

5

10 0

10

5

0

5

0 −5

0 −5

−5

−5

−10 −10

Inflation Rate

−10

−15

−10

Inflation Rate

GDP Gap

Expected State Path

14

9

12

8

10

7

Inflation Rate

10

GDP Gap

8

6

4

6

5

4

2

3

0

2

−2

1

2

4

6

8

10

Year

12

GDP Gap

Expected State Path

16

−4 0

−15

14

16

18

20

0 0

2

4

6

8

10

12

14

16

18

20

Year

Figure 9.6: Solution to Optimal Monetary Policy Model

Step 8 Perform postoptimality analysis. Figure 9.6a gives optimal nominal interest

rate as a function of the underlying in ation rate and GDP gap. A salient feature of

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

292

the solution is that the nonnegativity constraint on the nominal interest rate is binding for low GDP gaps and in ation rates. Although the model possesses a quadratic objective and a linear state transition function, the exact solution cannot be derived via linear-quadratic approximation due to the binding constraint. Figure 9.6b gives the Bellman equation residual for the Chebychev approximant. The residual exhibits discernable turbulence along the boundary at which the nonnegativity constraint becomes binding, but is relatively small elsewhere. The residual can be reduced, but only at the expense of additional nodes along each direction. Unfortunately, doubling the basis functions and nodes in each direction quadruples the necessary computational eort due to the product rule construction of the bivariate basis and collocation grid. The Compecon library routine dpsimul was used to simulate the model 5000 times over a twenty year period starting from an initial GDP gap of 10% and in ation rate of 15%. Figure 9.6c indicates that the expected GDP gap will initially drop dramatically, overshooting its target of zero, but over time converges asymptotically to its target. Figure 9.6d, on the other hand, indicates that the expected in ation rate will drop monotonically steadily, eventually converging to its target of 1.

9.4.7 Production-Adjustment Model Consider the production-adjustment model of Section 8.3.6 assuming a linear cost of production function c(q ) = q , a stochastic constant elasticity inverse demand curve q , a quadratic adjustment cost a(q l) = 0:5(q l)2 , and an i.i.d. lognormal(0; 2) demand shock . In practice, one may solve the production-adjustment model using Compecon library routines as follows:10

Step 1 Code model function le: function [out1,out2,out3] = mfdp12(flag,s,x,e,alpha,beta,kappa); n = size(s,1); l = s(:,1); d = s(:,2); q = x; switch flag case 'b'; % BOUND FUNCTION out1 = zeros(n,1); out2 = inf*ones(n,1); case 'f'; % REWARD FUNCTION

10 Functioning Matlab code for this example is contained in the Compecon library demonstration

le demdp12.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

293

out1 = d.*q.^(1-beta) - kappa*q - 0.5*alpha*((q-l).^2); out2 = (1-beta)*d.*q.^(-beta) - kappa - alpha*(q-l); out3 = -beta*(1-beta)*d.*q.^(-beta-1) - alpha; case 'g'; % STATE TRANSITION FUNCTION out1 = [q e]; out2 = [ones(n,1) zeros(n,1)]; out3 = zeros(n,2); end

The model function le returns the values and derivatives of the bound, reward, and transition functions at arbitrary vectors of states s, actions x, and shocks e. Passing the ag 'b' returns the lower and upper bounds on the action xl and xu; passing the

ag 'f' returns the reward function value and its rst and second derivatives with respect to the action, f, fx, and fxx; and passing the ag 'g' returns the transition function value and its rst and second derivatives with respect to the action, g, gx, and gxx.

Step 2 Enter model parameters: delta beta kappa alpha sigma

= = = = =

0.9; 0.5; 0.5; 0.5; 0.4;

Here, the discount factor, demand elasticity, unit production cost, marginal production cost, and demand shock volatility are speci ed, respectively.

Step 3 Discretize shock: m = 3; [e,w] = qnwlogn(m,0,sigma^2);

Here, the lognormal demand shock is discretized using a three node Gaussian quadrature scheme.

Step 4 Specify basis functions and collocation nodes: n = [10 15]; smin = [xstar-1.0 e(1)]; smax = [xstar+3.0 e(m)];

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

294

fspace = fundefn('cheb',n,smin,smax); scoord = funnode(fspace); snodes = gridmake(scoord);

Here, a 150-function bivariate Chebychev polynomial basis is constructed by forming the tensor products of the rst ten and rst fteen univariate Chebychev polynomials along rst and second state dimension, respectively; also, a 150-node collocation grid is constructed by forming the Cartesian product of the ten and fteen standard Chebychev nodes along each dimension. Note that snodes will be a 150 by 2 matrix.

Step 5 Pack model structure: model.func = 'mfdp12'; model.discount = delta; model.e = e; model.w = w; model.params = {alpha beta kappa};

Here, model is a structured variable whose elds contain the elements of the dynamic decision model. The rst eld contains the name of the model function le 'mfdp12'; the remaining elds contain the discount factor delta, shock values e, shock probabilities w, and model function parameters params, respectively.

Step 6 Provide judicious guesses for values and actions at the collocation nodes: estar = 1; xstar = ((1-beta)/kappa)^(1/beta); sstar = [xstar 1]; [vlq,xlq] = lqapprox(model,snodes,sstar,xstar,estar);

Here, the the certainty-equivalent steady-state shock, action, and state are computed analytically and passed to the Compecon library routine lqapprox, which returns the linear-quadratic approximation values and actions at the collocation nodes. The linear-quadratic approximation is used to initialize the collocation algorithm.

Step 7 Solve the decision model: [c,s,v,x,resid] = dpsolve(model,fspace,snodes,vlq,xlq);

The Compecon routine dpsolve accepts as input the model structure model, basis functions fspace, collocation nodes snodes, and initial guesses for the value function vlq and optimal actions xlq. It then solves the collocation equation, returning as output the basis coeÆcients c, and the optimal values v, optimal actions x, and Bellman equation residuals resid at a re ned state grid s.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS Optimal Production Policy

Value Function

3.5

7.5

3

7

2.5

6.5

2

Value

Production

295

1.5

6 5.5

1

5

0.5

4.5

0 2

4 2 4

1.5

4

1.5

3

3

2

1

2

1

1 0.5

Demand Shock

0

1 0.5

Demand Shock

Lagged Production

0

Lagged Production

Expected Policy Path 1.2

Approximation Residual

1.1 −6

x 10

1

1

0.9

Production

Residual

0.5

0

−0.5

0.8

0.7

0.6

0.5 −1 2

0.4 4

1.5

3 1

Demand Shock

0.3

2

1 0.5

0

0.2 0

Lagged Production

2

4

6

8

10

12

14

16

18

20

Year

Figure 9.7: Solution to Production-Adjustment Model

Step 8 Perform postoptimality analysis. Figure 9.7a shows that optimal production

as a monotonically increasing function of the demand shock and the preceding period's production. Figure 9.7b gives the value of the rm as a function of the demand shock and the preceding period's production. Value is an increasing function of the demand shock, but a concave function of lagged production. Figure 9.7c gives the Bellman equation residual for the approximant. The residual exhibits discernable turbulence for low values of the demand shock. However, the maximum residuals are on the order of 1 10 7 times the value of the rm. The Compecon library routine dpsimul was used to simulate the model 5000 times over a twenty year period starting from an production of 0.3. Figure 9.7d indicates that production can be expected to adjust gradually toward an steady-state mean value of approximately 1.1.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

296

9.5 Dynamic Game Methods Recall from Section 8.5 that the Markov perfect equilibrium of an m-agent in nitehorizon dynamic game is characterized by a set of m simultaneous Bellman equations

Vp(s) = max fp (s; xp; x p (s)) + ÆE Vp(g (s; xp; x p (s); )) ; xp 2Xp (s) p = 1; 2; : : : ; m, whose unknowns are the m value functions Vp () and the associated optimal policies xp (), all of which are de ned on the state space S . For the sake of discussion, assume that the state space is a bounded interval of Euclidian space, S = [smin ; smax ], and that each agent p's actions are constrained to an interval on the real line, Xp(s) = [ap (s); bp (s)]. Further assume that the reward functions fp and state transition function g are twice continuously dierentiable functions of their arguments.11 To compute an approximate solution to the system of Bellman functional equations via collocation, one employs the following strategy: First, write the value function approximants as linear combinations of known basis functions 1 ; 2 ; : : : ; n whose coeÆcients cp1 ; cp2 ; : : : ; cpn, are to be determined: Vp(s)

n X j =1

cpj j (s):

Second, x the mn basis function coeÆcients cp1 ; cp2; : : : ; cpn by requiring the approximants to satisfy their respective Bellman equations, not at all possible states, but rather at n states s1 ; s2 ; : : : ; sn , called the collocation nodes. The collocation strategy replaces the m Bellman functional equations with a system of mn nonlinear equations in mn unknowns. Speci cally, to compute the value function approximants, or more precisely, to compute the mn basis coeÆcients cp1 ; cp2 ; : : : ; cpn in their basis representations, one solves the equation system X j

n X

cpj j (si ) = max ffp (si ; xpi ; x pi) + ÆE cpj j (g (si; xpi ; x pi; ))g: xpi 2Xp (si ) j =1

for p = 1; 2; : : : ; m and i = 1; 2; : : : ; n, where xpi is action taken by agent p and x pi are the actions taken by his competitors when the state is si . The nonlinear equation system may be compactly expressed in vector form as a system of simultaneous collocation equations cp = vp (cp ; x p): 11 The presentation generalizes to models with dimensional individual action spaces, but at the

expense of cumbersome additional notation that oers little additional insight.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

297

Here, cp is the n by 1 vector of basis coeÆcients of agent p's value function approximant; x p is the (m 1)n vector of his competitors actions at the state nodes; , the collocation matrix, is the n by n matrix whose typical ij th element is the j th basis function evaluated at the ith collocation node ij = j (si );

and vp , agent p's collocation function, is the function from <mn to C VW + 21 W 2 w>wVW W ; C;w s.t.

P

i wi

= 1. The FOC associated with this maximization problem are

U 0 (C ) = VW ; W VW + W 2 VW W w and

X i

wi = 1;

(10a)

1 = 0;

(10b) (10c)

where is a Lagrange multiplier introduced to handle the adding-up constraint on the wi . A bit of linear algebra applied to (10b) and (10c) will demonstrate that the 10 If prices were not geometric Brownian motion the coeÆcients and would be functions of

current prices and the Bellman's Equation would have additional terms representing derivatives of the value function with respect to prices, which would make the problem considerably harder to solve.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

352

optimal portfolio weight vector, w, can be written as a linear combination of vectors, and , that are independent of the investor's preferences:

w = + (W );

(11)

where

11 = > 1 ; 1 1

= 1

1> 1>

1 11 1

and

VW ; W VW W This has a nice economic interpretation. When asset prices are generated by geometric Brownian motion, a portfolio separation result occurs, much like in the static CAPM model. Only two portfolios are needed to satisfy all investors, regardless of their preferences. One of the portfolios has weights proportional to 1 1, the other to 1 ( ( > )1). The relative amounts held in each portfolio depend on the investor's preferences, with more of the rst portfolio being held as the degree of risk aversion rises (as (W ) decreases). This is understandable when it is noticed that the rst portfolio is the minimum risk portfolio, i.e., solves the problem (W ) =

min > ; s.t. > 1 = 1: Furthermore, the expected return on the minimum risk portfolio is >; hence the term ( >)1 can therefore be thought of as an \excess" return vector, i.e., the expected returns over the return on the minimum risk portfolio. The problem is therefore reduced to determining the two decision rule functions for consumption and investment decisions, C (W ) and (W ), that satisfy:

U 0 (C (W )) = VW (W ) and

VW (W ) : W VW W (W ) Notice that the two fund separation result is a result of the assumption that asset prices follow geometric Brownian motions and not the result of any assumption about (W ) =

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

353

preferences. Given the enormous simpli cation that it allows, it is small wonder that nancial economists like this assumption.

Example: Neoclassical Growth Model

Ramsey introduced what has become a standard starting place for studying optimal economic growth. The basic model has been re ned and extended in numerous ways. We present here simple version.11 A single (aggregate) good economy is governed by a production technology, f . The net output from the production process depends on the level of the capital stock K . That output can either be consumed at rate C or invested, thereby increasing the capital stock. A social utility function depends on the rate of consumption, U (C ); a social planner attempts to maximize the discounted stream of social utility over an in nite time horizon, using a constant discount factor . The optimization problem can be expressed in terms of K , the state variable, and C , the control variable, as follows Z 1

max e t U (C )dt; C (t) 0 subject to the state transition function K 0 = q (K ) C . This is a deterministic in nite time problem so VKK and Vt do not enter the Bellman's equation. The Bellman's equation for this problem is

V (K ) = max U (C ) + V 0 (K ) (q (K ) C ) C

The maximization problem requires that

U 0 (C ) = V 0 (K ):

(12)

We can derive an Euler equation form for this problem by eliminating the value function, thereby obtaining a dierential equation for consumption in terms of current capital stock. Applying the Envelope Theorem,

V 0 (K ) = q 0 (K )V 0 (K ) + [q (K ) C ]V 00 (K ):

(13)

Combining (12), (13) and the fact that V 00 (K ) = U 00 (C )C 0 (K ) yields

U 0 (C ) 0 (q (K ) ) = (q (K ) C )C 0 (K ): U 00 (C ) Thus the optimal decision rule C (K ) solves a rst order dierential equation. 11 We alter Ramsey's original formulation by including a discount factor in the optimization prob-

lem, as is standard in modern treatments.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

354

The boundary condition for this dierential equation is that the solution passes through the point (K ; C ) which simultaneously solves dK=dt = 0 and the Euler condition: q 0 (K ) = C = q (K ):

Example: Non-Renewable Resource Management

A rm that manages a non-renewable resource obtains a net return ow of Ax1 per unit of time, where x is the rate at which the resource is extracted. The stock of the resource is governed by dS = xdt: The extraction rate is bounded below by 0 (x 0) and constrained to equal 0 if the stock is 0 (S = 0 ) x = 0). The manager seeks to solve Z 1 1 V (S ) = max E e Ax d : x 0 The Bellman's equation for the problem is V (S ) = max Ax1 xVs : x

The boundary condition is that V (0) = 0. The rst order optimality condition is VS (S ) = (1 )Ax : Using an Euler equation approach, apply the envelope theorem to obtain VS = xVSS : We have an expression for VS from the optimality condition and this can be dierentiated with respect to S to obtain dx (1 )Ax = (1 )Ax : dS Simplifying, this yields dx = ; dS which, with the boundary condition that x = 0 when S = 0, produces the optimal control x(S ) = S and the value function 1 V (S ) = AS :

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

355

10.3 Free Boundary Problems We have already seen how boundary conditions are needed to determine the solution to dynamic models in continuous time. Many important problems in economics, however, involve boundaries in the state space which must be determined as part of the solution. Such problems are known as free boundary problems. The boundary marks the location where some discrete action is taken, generally taking the form of eecting an instantaneous change in the value of a continuous or a discrete state.12 Table 10.2 contains a classi cation of dierent free boundary problems that have appeared in the economics literature. An important distinction, both in understanding the economics and in solving the problem numerically, is whether the boundary can be crossed. If the control is such that it maintains a state variable within some region de ned by the free boundary, the problem is a barrier problem and we will solve a dierential equation in this region only. For example, the stock of a stochastic renewable resource can be harvested in such a way as to keep the stock level below some speci ed point. If the stock rises to this point, it is harvested in such a way as to maintain it at the boundary (barrier control) or to move it to some point below the boundary (impulse control).

Table 10.2: Types of Free Boundary Problems BARRIERS: Problem

Action at Boundary

Impulse control Jump from trigger to target Barrier control Move along boundary TRANSITIONAL BOUNDARIES: Problem Action at Boundary Discrete states Bang-bang

Change state Switch between control extrema

In barrier controls problems, the barrier de nes a trigger point at which, if reached, one maintains the state at the barrier by exactly osetting any movements across the

12 In the physical sciences free boundary problems are also known as Stefan problems. A commonly

used example is the location of the phase change between liquid and ice, where the state space is measured in physical space coordinates.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

356

barrier. Typically, such a control is optimal when there are variable costs associated with exerting the control. In such a situation it is only optimal to exert the control if the marginal change in the state osets the marginal cost of exerting the control. In impulse control problems, if the barrier is reached one takes an action that instantaneously moves the state to a point inside the barrier. An (s; S ) inventory control system is an example of an impulse control in which the state is the level of inventory, which is subject to random demand. When the inventory drops to the level s, an order to replenish it to level S is issued. Typically such controls are optimal when there is a xed cost associated with exerting the control; the control is exerted only when the bene t from exerting the control covers the xed cost. The other major type of free boundary problem arises when, in addition to one or more continuous state variables, there is also a state that can take on discrete set of values. In this case, boundaries represent values of the continuous states at which a change in the discrete state occurs. For example, consider a rm that can either be actively producing or can be inactive (a binary state variable). The choice of which state is optimal depends on a randomly uctuating net output price. Two boundaries exist that represent the prices at which the rm changes from active to inactive or from inactive to active (it should be clear that the latter must be above the former to prevent the rm from having to be continuously changing!). An important special case of the discrete state problem is the so-called optimal stopping problem; the exercise of an American option is perhaps the most familiar example. Stopping problems arise when the choice of one of the discrete state values is irreversible. Typically the discrete state takes on two values, active and inactive. Choosing the inactive state results in an immediate one time payout. An American put option, for example, can be exercised immediately for a reward equal to the option's exercise price less the price of the underlying asset. It is optimal to exercise when the underlying asset's price is so low that it is better to have the cash immediately and reinvest it than to wait in hopes that the price drops even lower. Another important special case is the so-called stochastic bang-bang problem. Such problems arise when it is optimal to exert a bounded continuous control at either its maximum or minimum level. Eectively, therefore, there is a binary state variable that represents which control level is currently being exerted. The free boundary determines the values of the continuous variables at which it is optimal to change the binary state. A couple points should be mentioned now and borne in mind whenever considering free boundary problems. First, it is useful to distinguish between the value function evaluated using an arbitrary boundary and the value function using the optimal choice of the boundary. The value function (the present value of the return stream) using an arbitrary barrier control is described by a second order partial differential equation subject to the appropriate boundary conditions; this is the message

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

357

of the Feynman-Kac equation (see Appendix A, Section A.5.3). The optimal choice of the boundary must then add additional restrictions that ensure its optimality. We therefore distinguish in Table 10.2 between a point, S a , on an arbitrary boundary and a point, S , on the optimal boundary. As we shall see in the next chapter, this distinction is particularly important when using a strategy to nd the free boundary that involves guessing its location, computing the value function for that guess, and then checking whether the optimality condition holds. Related to this is an understanding the number of boundary conditions that must be applied. Here are some rules that should help you avoid problems. First, any non-stochastic continuous state will have one partial derivative and will require one boundary condition. On the other hand, any stochastic state variable will have second order derivatives and will generally need two boundary conditions.13 These statements apply to arbitrary controls. For optimality we will require an additional boundary condition for each possible binary choice. The additional constraints can be derived formally by maximizing the value function for an arbitrary barrier with respect to the location of the barrier, which for single points means solving an ordinary maximization problem and for functional barriers means solving an optimal control problem. In all of these cases one can proceed as before by de ning a Bellman's Equation for the problem and solving the resulting maximization problem. The main new problem that arises lies in determining the region of the state space over which the Bellman's Equation applies and what conditions apply at the boundary of this region. We will come back to these points so, if they are not clear now, bear with us. Now let us consider each of the main types of problem and illustrate them with some examples.

10.3.1 Impulse Control Impulse and barrier control problems arise when the reward function includes the size of the change in a state variable caused by exerting some control. Such problems typically arise when there are transactions costs associated with exerting a control, in which case it may be optimal to exert the control at an in nite rate at discrete selected times. In addition, the reward function need not be continuous in S . The idea of an in nite value for the control may seem puzzling at rst and one may feel that it is unrealistic. Consider that in many applications encountered in economics the control represents the rate of change in a state variable. The state is typically a stock of some asset measured in quantity units. The control is thus a

ow rate, measured in quantity units per unit time. If the control is nite, the state 13 The exception to this rule of thumb involves processes that exhibit singularities at natural

boundaries, which can eliminate the need to specify a condition at this boundary

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

358

cannot change quickly; essentially the size of the change in the state must be small if the time interval over which the change is measured is small. In many situations, however, we would like to have the ability to change the state very quickly in relation to the usual time scale of the problem. For example, the time it takes to cut down a timber stand may be very small in relation to the time it takes for the stand to grow to harvestable size. In such situations, allowing the rate of change in the state to become in nite allows us to change the state very quickly (instantaneously). Although this makes the mathematics somewhat more delicate, it also results in simpler optimality conditions with intuitive economic interpretations. Consider the single state case in which the state variable governed by

dS = [(S ) + x]dt + (S )dz and the reward function that is subject to xed and variable costs associated with exerting the control:

f (S; S; x) =

8 > > > < > > > :

r (S ) c ( S ) F r0 (S ) r+(S ) c+ (S ) F +

if x < 0 if x = 0 if x > 0

with c (0) = c+ (0) = 0. In this formulation there are xed costs, F and F +, and variable costs, c and c+ , associated with exerting the control, both of which depend on the sign of the control. Typically, we would assume that the xed costs are nonnegative. The variable costs, however, could be negative; consider the salvage value from selling o assets. To rule out the possibility of arbitrage pro ts, when the reward is increasing in the state (rS 0), we require that F + + c+ (z ) + F + c ( z ) > 0 for any positive z ; thereby preventing in nite pro ts to be made by continuous changes in the state. With continuous time diusion processes, which are very wiggly, any strategy that involved continuous readjustment of a state variable would become in nitely expensive and could not be optimal. Instead the optimal strategy is to change the state instantly in discrete amounts, thereby incurring the costs of those states only at isolated points in time. An impulse control strategy would be optimal when there are positive xed costs (F + ; F > 0). Barrier control strategies (which we discuss in the next section) arise when the xed cost components of altering the state are zero. With impulse control, the state of the system is reset to a new position (a target) when a boundary is reached (a trigger). It may be the case that either or both the trigger and target points are endogenous. For example, in a cash management

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

359

situation, a bank manager must determine when there is enough cash-on-hand (the trigger) to warrant investing some of it in an interest bearing account and must also decide how much cash to retain (the target). Alternatively, in an inventory replacement problem, an inventory is restocked when it drops to zero (the trigger), but the restocking level (the target) must be determined (restocking occurs instantaneously so there is no reason not to let inventory fall to zero). A third possibility arises in an asset replacement problem, where the age at which an old machine is replaced by a new one must be determined (the trigger), but the target is known (the age of a new asset). In any impulse control problem, a Feynman-Kac Equation governs the behavior of the value function on a region where control is not being exerted. The boundaries of the region are determined by value matching conditions that equate the value at the trigger point with the value at the target point less the cost of making the jump. Furthermore, if the trigger is subject to choice, a smooth pasting condition is imposed that the marginal value of changing the state is equal to the marginal cost of making the change. A similar condition holds at the target point if it is subject to choice.

Example: Asset Replacement

Consider the problem of when to replace an asset that produces a physical output, y (A), where A is the state variable representing the age of the asset. The asset's value also depends on the net price of the output, P , and the net cost of replacing the asset, c. This is a deterministic problem in which the state dynamics are simply dA = dt. The reward function is y (A)P . Thus the Bellman equation is

V (A) = y (A)P + V 0 (A): This dierential equation is solved on the range A 2 [0; A ], where A is the optimal replacement age. The boundary conditions are given by the value matching condition:

V (0) = V (A ) + c and the optimality (smooth pasting) condition:

V 0 (A ) = 0 The smooth pasting condition may not be obvious, but it is intuitively reasonable if one considers that an asset which is older than A should always be immediately replaced. Once past the age of A , therefore, the value function is constant: V (A) = V (A ) = V (0) c, for A A . No optimality condition is imposed at the lower boundary (A = 0) because this boundary is not a decision variable.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

360

Before leaving the example, a potentially misleading interpretation should be discussed. Although it is not unusual to refer to V (A) as the value of an age A asset, this is not quite correct. In fact, V (A) represents the value of the current asset, together with the right to earn returns from future replacement assets. The current asset will be replaced at age A and has value equal to the discounted stream of returns it generates: Z A A

e t P y (A + t)dt;

0 but the value function is

V (A) =

Z A A

e t P y (A + t)dt + e (A A) V (A )

0 Thus the current asset at age A has value V (A) e (A A) V (A ):

Example: Timber Harvesting

The previous example examined an asset replacement problem in which the asset generated a continuous stream of net returns. In some cases, however, the returns are generated only at the replacement time. Consider a forest stand that will be clear-cut on a date set by the manager. The stand is allowed to grow naturally at a biologically determined rate according to

p

dS = (m S )dt + Sdz: The state variable here represents the biomass of the stand and the parameter m represents a biological equilibrium point. When the stand is cut, it is sold for a net return of P S . In addition, the manager incurs a cost of C to replant the stand, which now has size S = 0. The decision problem is to determine the optimal cutting/replanting stand size, using a discount rate of . The Bellman equation is

V = (m S )V 0 (S ) + 12 2 SV 00 (S ); for S 2 [0; S ], where S is determined by boundary conditions V (S ) = V (0) + P S and

V 0 (S ) = P

C value matching smooth pasting.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

361

If the stand starts at a size above S it is optimal to cut/replant immediately. Clearly the marginal value of additional timber when S > S is the net return from the immediate sale of an additional unit of timber. Hence, for S > S , V (S ) = V (S ) + p(S S ) and V 0 (S ) = P: As in the previous example, the value function refers not to the value of the timber on the stand but rather to the right to cut the timber on the land in perpetuity.

10.3.2 Barrier Control In barrier control problems it is optimal to maintain the state within a region by keeping it on the region's boundary whenever it would otherwise tend to move outside of it and to do nothing when the state is in the interior of the region. This, of course, assumes that the state is suÆciently controllable so that such a policy is feasible. Barrier control problems can be thought of as limiting cases of impulse control problems as the size of any xed costs go to zero. When this happens, the size of the jump goes to zero, so the trigger and target points become equal. This represents something of a dilemma because the value matching condition between the target and jump points becomes meaningless when these points are equal. The resolution of this dilemma is to shift the value matching condition to the rst derivative and the smooth pasting to the second derivative (the latter is sometimes referred to as a super-contact condition).

Example: Capacity Choice A rm can install capital, K , to produce an output with a net return of P . Capital produces Q(K ) units of output per unit of time, but the capital depreciates at rate Æ . The rm wants to determine V (Kt ) = max I

Z 1 t

e

h

i

P q (K ) CI d;

s.t.

dK = (I

ÆK )dt;

together with the constraint that I 0. This is an in nite horizon, deterministic control problem. The Bellman's Equation for this problem is

V (K ) = max P q (K ) CI I

(I

ÆK )V 0 (K ):

The KKT condition associated with optimal I is

C

V 0 (K ) 0; I 0 and (V 0 (K ) C )I = 0:

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

362

This suggests that the rate of investment should be 0 when the marginal value of capital is less than C and that the rate should be suÆciently high (in nite) to ensure that the marginal value of capital never falls below C . We assume that capital exhibits positive but declining marginal productivity. The optimal control is speci ed by a value K such that investment is 0 when K > K (implying low marginal value of capital) and is suÆcient high to ensure that K does not fall below K . If K starts below K , the investment policy will be to invest at an in nite rate so as to move instantly to K , incurring a cost of (K K )C in the process. If K starts at K , the investment rate should be just suÆcient to counteract the eect of depreciation. Summarizing, the optimal investment policy is

I=

8 > > > < > > > :

1

for K < K for K = K : for K > K

ÆK 0

The value function for any arbitrary value of K can now be determined. To do so, rst de ne the function T (K; K ) to represent the time it takes for the capital stock to reach K is it is current equal to K . Clearly T = 0 if K K . In the absence of investment, the capital stock evolves according to Kt+h = e Æh Kt ; hence T = ln(K=K )=Æ for K > K . The value function is 8

K e 0 It is clear that value matching holds; i.e. the value function is continuous. Not so obvious is the fact that the derivative of the value function is also continuous. The left hand derivative is clearly equal to C and a few simple computations will show that the right hand derivative is also.14 This illustrates the point made above that the usual smooth-pasting condition (i.e., the continuity of the rst derivative) is not an optimality condition in barrier control problems. To determine the optimal choice of K , notice that we can use the Bellman equation to express the value function for K > K : 1 V (K ; K ) = [P q (K ) ÆKVK (K ; K )] :

14 For K > K V 0 (K ) =

Z

0

T

e

P q 0 (e

Æ

K )d + e

T

P q (e

ÆT

K)

e

T

V (K )

dT : dK

Using dT=dK = 1=(ÆK ) and T (K ; K ) = 0 and simplifying yields the desired result.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

363

Setting the derivative of this expression with respect to K to 0 ÆK VK (K ; K ) = VKK (K; K ); and noting that VK (K ; K ) = C implies that VKK (K ; K ) = VKK (K ; K ), demonstrates that the appropriate optimality condition is to nd K such that

VKK (K ) = 0; implying continuity of the second derivative. To complete the problem we apply the Envelope Theorem to the Bellman equation to note that

VK = P q 0(K ) ÆVK

ÆKVKK :

Using the fact that VK (K ) = C and VKK (K ) = 0 yields the condition satis ed by the optimal K : P 0 C= q (K ): +Æ This is the same expression one obtains by setting the derivatives in (14) equal to 0 and solving for K = K .15

10.3.3 Discrete State/Control Problems We turn now to problems involving transitional boundaries. In such problems, controls are not exerted on a continuous state variable to force it to remain within some region. Instead, the boundary typically represents the values of the state at which a decision is made to change from one discrete state to another. In the simplest form of these problems, a termination decision is taken. So-called optional stopping problems include the exercise of American style options and asset abandonment. More complicated problems arise when projects can be activated and deactivated. The problem 15 We should express a note of caution here. When the depreciation rate is 0, the second derivative

condition does not apply and, in fact, the second derivative is discontinuous at the optimal K . The intuition is clear, however. When Æ = 0 the capital stock stays the same unless actively moved. Since disinvestment is not allowed (I 0), if the marginal value of capital is less than the cost of capital, no change in the capital stock is warranted. However, if the marginal value of capital is less than C , then the capital stock should be immediately increased to the point where the present value of the marginal unit of capital equals the cost of capital: C = P q 0 (K )=:

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

364

then becomes one of determining the value of the project if active, given that one can deactivate it, together with the value of the project if inactive, given that it can be activated. The solution involves two boundaries, one which determines when the project should be activated (given that it is currently inactive), the other when it should be deactivated (given that it is currently active). The hallmark of transitional boundary problems is that there is a distinct value function on either side of the boundary and there are conditions that must apply to both of these functions at the boundary. Thus the boundary and the value functions on both sides must all be simultaneously determined. For arbitrary speci cations of the boundary, we require that the two value functions, net of switching costs, are equal at the boundary (value matching) and for the optimal boundary, we require that their derivatives are equal at the boundary (smooth-pasting or high contact).

Optimal Stopping Problems The optimal stopping problem is in many ways the simplest of the free boundary problems and arises in situations involving a once and for all decision. For example, suppose a rm is attempting to decide whether a certain project should be undertaken. The value of the project depends on a stochastic return that the project, once developed, will generate. The state variable can therefore be taken to be the present value of the developed project. Furthermore, the rm must invest a speci ed amount to develop the project. In this simple framework, the state space is partitioned into a region in which no investment takes place (when the present value of the developed project is low) and a region in which the project would be undertaken immediately. The boundary between these two areas represents the value of the state, that, if reached from below, would trigger the investment. It is important to emphasize that optimal stopping problems, although they have a binary control, dier from other binary control problems in that one value of the control pays out an immediate reward, after which no further decisions are made. The one time nature of the control makes the problem quite dierent from and, actually, easier to solve than problems with binary controls that can be turned on and o. Stopping problems in continuous time are characterized by a random state governed by

dS = (S )dt + (S )dz; a reward stream f (S ) that is paid so long as the process is allowed to continue and a payout function R(S ) that is received when the process is stopped (for now we consider only in nite time discounted time autonomous problems; this will be relaxed presently).

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

365

Another way to view the stopping problem is as a problem of choosing an optimal time to stop a process. This leads to the following formal statement of the problem "Z # t (S ) V (S ) = max E e f (S )d + e t (S ) R(S ) : t (S ) 0 This value function is described by the dierential equation V (S ) = f (S ) + (S )VS (S ) + 21 2 (S )VSS (S ) (15) The optimal control problem consists of nding the boundary between the regions on which the process should be stopped and those on which it should be allowed to continue. For the present, assume that there is a single such switching point, S , with S < S indicating that the process should be allowed to continue. Thus the dierential equation is satis ed on [S; S ], where S is a (known) lower bound on the state. Any speci c choice of a control consists of a choice of the stopping point, say S . At this point the value function, to be continuous, must equal the reward

V (S a ) = R(S a ); (the value-matching condition). The optimal choice of S a is determined by the smooth pasting condition

VS (S ) = R0 (S ); the optimal choice makes the derivative of the value function equal the derivative of the reward function at the boundary between the continuation and stopping regions. Intuitively, the value matching and smooth pasting conditions are indierence relations; at S the decision maker is indierent between continuing and stopping. The value function must, therefore, equal the reward and the marginal value of an additional unit of the state variable must be equal regardless of whether the process is stopped or allowed to continue. This is the simplest of the optimal stopping problems. We can make them more complex by allowing time to enter the problem either through non-autonomous rewards, state dynamics or stopping payment or by imposing a nite time horizon. In the following example we examine a nite horizon problem.

Example: Exercising an American Put Option An American put option, if exercised, pays K P , where K is the exercise or strike price. P is the random price of the underlying asset, which evolves according to dP = (P )dt + (P )dz:

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

366

The option pays nothing when it is being held, so f (P ) = 0. Let T denote the option's expiration date, meaning that it must be exercised on or before t = T (if at all). In general, the option is written on a traded asset so we may use the form of the Bellman's Equation that is discounted at the risk-free rate and with mean function replaced by rP ÆP (see Section 10.2.2):

ÆP ) VP + 21 2 (P )VP P on the continuation region, where Æ represents the income ow (dividend, convenience yield, etc.) from the underlying asset. Notice that the constraint that t T means that the value function is a function of time and so Vt must be included in the Bellman's Equation. The solution involves determining the optimal exercise boundary, P (t). Unlike the previous problem, in which the optimal stopping boundary was a single point, the boundary here is a function of time. For puts, P (t) is a lower bound so the continuation region on which the Bellman's Equation is de ned is [P ; 1). The boundary conditions for the put option are rV = Vt + (rP

V (P; T ) = max(K P; 0) (terminal condition) V (P ; t) = K P (value matching) VP (P ; t) = 1 (smooth-pasting) and,

V (1; t) = 0:

Example: Machine Abandonment

Consider a situation in which a machine produces an output worth P per unit time, where

dP = P dt + P dz; i.e., that P is a geometric Brownian motion process. The machine has an operating cost of c per unit time. If the machine is shut down, it must be totally abandoned and thus is lost. Furthermore, at time T , the machine must be abandoned. At issue is the optimal abandonment policy for an agent who maximizes the ow of net returns from the machine discounted at rate . For the nite time case de ne as equal to the time remaining until the machine must be abandoned, so = T t and d = dt. The optimal policy can be de ned in terms of a function, P ( ); for P > P ( ) it is optimal to keep the machine running, whereas for P < P ( ) it is optimal to abandon it.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

367

The current value of the operating machine satis es the Bellman's equation V = P c V + P VP + 21 2 P 2 VP P : and boundary conditions

V (P; 0) = 0 VP (1; ) = (1 e V (P ; ) = 0 VP (P ; ) = 0

)=(

terminal condition ) natural boundary condition value matching condition smooth pasting condition

The rst boundary condition states that the machine is worthless when it must be abandoned. The second condition is derived by considering the expected value of an in nitely-lived machine that is never abandoned:

V (P; ) =

P

c

1 e

(the derivation of this result is left as an exercise). An alternative upper boundary condition is that VP P (1; ) = 0. The remaining two conditions are the value matching and smooth pasting conditions at P ( ).

General Transitional Boundaries An optimal stopping problem exhibits complete irreversability; an inactivated (exercised) option cannot be reactivated. Optimal stopping problems can put into a more general framework by viewing them as having a binary state variable representing the active/inactive states. In an optimal stopping problem, the cost of moving from the inactive to the active state is eectively in nite, thus precluding this possibility. More generally, however, it may be possible to move back and forth between states. In general, suppose that there is a state variable, D, that can take on integer values from 1 to n, as well as a continuous state variable (possibly vector-valued) governed by

dS = (S )dt + (S )dz: The control variable is one that allows any of the n discrete state to be chosen; hence x(S; D) takes on values in the set f1; : : : ; ng. In addition, there is a cost to switching from D = i to D = j of F ij . A decision rule de nes the n sets i as the values of S such that S 2 i ) x(S; i) = i. i is the set of values of S for which a decision rule speci es that the

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

368

discrete state remain unchanged. The boundaries of the i represent states at which it is optimal to change the value of D. It is important to note, however, that the presence of xed transition costs makes it possible that the i are overlapping sets ( i \ j 6= ;). The solution can be expressed as a set of n functions, V i (S ), representing the value function for each of the n values of the discrete state. From a computational point of view, it is only necessary to de ne V i (S ) over the points in i , and to determine the set of switching points S ij , for each (i; j ). The Bellman equation is i (S ); rV i (S ) = f (S; i) + (S )VSi (S ) + 12 2 (S )VSS

for S 2 i . In addition, at any points, S ij on the boundary of i at which a switch from i to j is eected, it must be true that

V i (S ij ) = V j (S ij ; j ) F ij to ensure that no arbitrage opportunities exist. Furthermore, if the switch point is optimal, the smooth pasting condition also holds

VSi (S ij ) = VSj (S ij ):

Example: Entry/Exit

Consider a rm that can either be not producing at all or be actively producing q units of a good per period at a cost of c per unit. In addition to the binary state Æ (Æ = 0 for inactive, Æ = 1 for active), there is also an exogenous stochastic state representing the return per unit of output, P , which is a geometric Brownian motion process:

Pt = (P )dt + (P )dz: We assume there are xed costs of activating and deactivating of I and E , with I + E 0 (to avoid arbitrage opportunities). The value function is

V (P; Æ ) = E

Z 1

t Æ (P

e c)dt the discounted costs of switching states; 0 where Æ = 1 if active, 0 if inactive. For positive transition costs, it is reasonable that such switches should be made infrequently. Furthermore it is intuitively reasonable that the optimal control is to activate when P is suÆciently high, P = Ph , and to deactivate when the price is suf ciently low, P = Pl . It should be clear that Pl < Ph , otherwise in nite transactions costs would be incurred. The value function can therefore be thought of as a pair of

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

369

functions, one for when the rm is active, V a , and one for when it is inactive, V i . The former is de ned on the interval [Pl ; 1), the latter on the interval [0; Ph]. On the interior of these regions the value functions satisfy the Feynman-Kac equations

V a = P c + (P )VPa + 2 (P )VPaP : V i = (P )VPi + 2 (P )VPi P

(16)

At the upper boundary point, Ph, the rm will change from being inactive to active at a cost of I . Value matching requires that the value functions dier by the switching cost: V i (Ph) = V a (Ph) I . Similarly at the point Pl the rm changes from an active state to an inactive one; hence V i (Pl ) E = V a (Pl ). Value matching holds for arbitrary choices of Pl and Ph . For the optimal choices the smooth pasting conditions must also be satis ed:

VPi (Pl ) = VPa (Pl ) and

VPi (Ph ) = VPa (Ph ): In this problem, the exit is irreversible in the sense that reentry is as expensive as initial investment. A re nement of this approach is to allow for temporary suspension of production, with a per unit time maintenance change. Temporary suspension is generally preferable to complete exit (so long as the maintenance charge is not prohibitive). The discrete state for this problem takes on 3 values; its solution is left as an exercise.

10.3.4 Stochastic Bang-Bang Problems Bang-bang control problems arise when both the reward function and the state transition dynamics are linear in the control and the control is bounded. In such cases it is optimal to set the control at either its upper or lower bound. The control problem thus becomes one of dividing the state space into a set of points at which the control is at its upper bound and a set at which it is at its lower bound. Equivalently, the problem is to nd the boundary between the two sets. If there is no cost to switching the control from the lower to upper bound, we are in precisely the same situation that we discussed in the last section when the switching costs go to zero. The optimal value function and control is found in a similar fashion: de ne a Feynman-Kac Equation on each side of the boundary and require that the value functions on either side of the boundary are equal up to their second derivative.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

370

The general bang-bang problem has reward function of the form

f0 (S ) + f1 (S )x and state dynamics of the form

dS = [g0 (S ) + g1 (S )x]dt + (S )dz: Furthermore the control is constrained to lie on a given interval:

xa x xb : The Bellman's equation for this problem is

V = max f0 (S ) + f1 (S )x + [g0 (S ) + g1 (S )x]VS + 21 2 (S )VSS x subject to the control constraint. The Karush-Kuhn-Tucker conditions for this problem indicate that x=

8 < :

xa if f1 (S ) + g1 (S )VS (S ) > 0 xb if f1 (S ) + g1 (S )VS (S ) < 0

This suggests that there is a point, S , at which

f1 (S ) + g1 (S )VS (S ) = 0:

(17)

Assuming that VS is decreasing in S , this suggests that we must solve for two functions, one for S < S that solves a V a = f0 (S ) + f1 (S )xa + [g0 (S ) + g1 (S )xa ]VSa + 12 2 (S )VSS (18) and the other for S > S that solves b : V b = f0 (S ) + f1 (S )xb + [g0 (S ) + g1 (S )xb ]VSb + 21 2 (S )VSS (19) We will need three side conditions at S to completely specify the problem and to nd the optimal location of S , namely that

V a (S ) = V b (S ) VSa (S ) = VSb (S ) f1 (S ) + g1 (S )VS (S ) = 0:

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

371

Combining these conditions with (18) and (19) we see that a (S ) = V b (S ); VSS SS

i.e., with the optimal choice of S the value function is continuous up to its second derivative.

Example: Harvesting a Renewable Resource

Consider a manager of a renewable biological resource who must determine the optimal harvesting strategy. The state variable, the stock of the resource, is stochastic,

uctuating according to

dS = [S (1 S ) hS ]dt + Sdz; where h, the control, is the proportional rate at which the resource is harvested. Assume that the per unit return is p and that 0 h C . The manager seeks to solve

V (S ) = max E h

Z 1

e

t phSdt

:

0 In the notation of general problem, xa = 0, xb = C , f0 (S ) = 0, f1 (S ) = pS , g0 (S ) = S (1 S ) and g1 (S ) = S . The Bellman equation for this problem is

V = max phS + (S (1 S ) hS ) VS + 12 2 S 2 VSS : h The assumptions the stock dynamics imply that V (0) = 0 (once the stock reaches zero it never recovers and hence the resource is worthless). At high levels of the stock, the marginal value of an additional unit to the stock becomes constant and hence VSS (1) = 0. The rst order conditions for this problem suggest that it is optimal to set h = C if VS < p and set h = 0 if VS > p. The interpretation of these conditions is straightforward: only harvest when the value of a harvested unit of the resource is greater than an unharvested one and then harvest at maximum rate. Thus the problem becomes one of nding the sets S 0 = fS : VS > pg and

S C = fS : VS < pg

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

372

where

V

S (1 S )VS

V

(S (1 S )

1 2 S 2 VSS = 0 2

and

CS ) VS

1 2 S 2 VSS 2

on S 0

pCS = 0 on S C

The solution must also satisfy the boundary conditions at 0 and 1 and the continuity conditions at any points S such that VS (S ) = p. The fact that S (1 S ) hS is concave in S implies that S will be a single point, with S 0 = [0; S ) and S C = (S ; 1).

Example: Production with a Learning Curve

More complicated bang-bang problems arise when there are two state variables. The free boundary is then a curve, which typically must be approximated. Consider the case of a rm that has developed a new production technique. Initially production costs are relatively high but decrease as the rm gains more experience with the process. It therefore has an incentive to produce more than it otherwise might due to the future cost reductions it thereby achieves. To make this concrete, suppose that marginal and average costs are constant at any point in time but decline at an exponential rate in cumulative production until a minimum marginal cost level is achieved. The problem facing the rm is to determine the production rule that maximizes the present value of returns (price less cost times output) over an in nite horizon: Z 1

e

rt (P

C (Q)) x dt; 0 where r is the risk-free interest rate and the two state variables are P , the output price, and Q, the cumulative production to date. The state transition equations are max x

dP = P dt + P dz and

dQ = x dt; where x is the production rate, which is constrained to lie of the interval [0; xc ]. The price equation should be interpreted as a risk-neutral process. The cost function is given by

C (Q) =

8 < :

ce ce

Q

Qm

if Q < Qm ; = c if Q Qm

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

373

once Q Qm , the per unit production cost is a constant but for Q < Qm it declines exponentially. The Bellman equation for this problem is rV = max (P C (Q)) x + xVQ + P VP + 12 2 P 2 VP P x s.t. 0 x xc . The problem thus is of the stochastic bang-bang variety with the optimality conditions given by:

P P

C (Q) + VQ < 0 C (Q) + VQ > 0

) x=0 ) x = xc:

Substituting the optimal production rate into the Bellman Equation and rearranging yields the partial dierential equation rV (P; Q) = P VP (P; Q) + 21 2 P 2 VP P + max(0; P C (Q) + VQ(P; Q))xc : The boundary conditions for this problem require that

V (0; Q) = 0 VP (1; Q) = xc =Æ and that V , VP , and VQ be continuous. The rst boundary condition re ects the fact that 0 is an absorbing state for P ; hence is P reaches 0, no revenue will ever be generated and hence the rm has no value. The second condition is derived from computing the expected revenue if the rm always produces at maximum capacity, as it would if the price were to get arbitrarily large (i.e., if the probability that the price falls below marginal cost becomes arbitrarily small). The derivative of the expected revenue is xc =Æ . As illustrated in Figure 10.1, the (Q; P ) state space for this problem is divided by a curve P (Q) that de nes a low price region in which the rm is inactive and a high price region in which it is active. Furthermore, for Q > Qm the location of P (Q) is equal to c because, once the marginal cost is at its minimum level, there is nothing to be gained from production when the price is less than the marginal production cost. For Q > Qm the problem is simpli ed by the fact that VQ = 0. Thus V is a function of P alone and the value of the rm satis es rV (P ) = P VP (P ) + 12 2 P 2 VP P + max(0; P C (Q))xc : For Q < Qm , on the other hand, VQ 6= 0 and the location of the boundary P (Q) must be determined simultaneously with the value function.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

374

Sequential Learning: Optimal Activation Boundary 50 Qm 45

Production Region:

40

Production

V(P,Q) must be 35

Region:

computed numerically

V known

P

30 *

25

P

20

15 Non−Production Region:

10

A(Q) computed from

Non−Production

value matching condition

5

Region: V known

0

0

5

10

15

20

25

Q

Figure 10.1 A third boundary condition V (P; Qm ) = V (P ) (de ned below) is a \terminal" condition in Q. Once Qm units have been produced the rm has reached its minimum marginal cost. Further production decisions do not depend on Q nor does the value of the rm, V . An explicit solution can be derived for Q > Qm : 8

assets. The fraction of wealth held in the riskless asset is 1 i wi = 1 w 1. a) Show that the wealth process can be follows

dW = [W (r + w>( r1)) C ]dt + w>dz: W b) Write the Bellman's Equation for this problem and the associated rst order condition. c) Show that it is optimal to hold a portfolio consisting of the risk-free asset and a mutual fund with weights proportional to 1 ( r1). d) Derive expressions for w>( r1) and w>w and use them to concentrate the Bellman equation with respect to w. 1 C e) Suppose that U (C ) = 1 . Verify that the optimal consumption rate is proportional to the wealth level and nd the constant of proportionality. 10.8. Portfolio Choice Continued Continuing the previous problem, de ne (W ) = V 0 (W )=V 00 (W ). Show that C (W ) and (W ) satisfy a system of rst order dierential equations. Use this result to verify that C is aÆne in W and is a constant when U (C ) = e C . 10.9. Stochastic Nonrenewable Resource Management Suppose that the resource stock discussed on page 354 evolved according to

dS = xdt + Sdz: Verify that the optimal control has the form

x(S ) = S ; and, in so doing, determine the values of and . Also obtain an expression for the value function. You should check that your answer in the limiting case that = 0 is the same as that given on page 354.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

380

10.10. Nonrenewable Resources with Stochastic Prices As in the example on page 354, a resource is extracted at rate x, yielding a ow of returns Ax1 . The stock of the resource is governed by dS = xdt. Here, however, we treat A as a random shock process due to randomness in the price of the resource governed by

dA = (A)dt + (A)dz: The rm would like to maximize the expected present value of returns to extraction, using a discount rate of . a) State the rm's optimization problem. b) State the associated Bellman's equation. c) State the rst order optimality condition and solve for the optimal extraction rate (as a function of the value function and its derivatives). 10.11. Timber Lease A government timber lease allows a timber company to cut timber for T years on a stand with B units of biomass. The price of cut timber is governed by

p

dp = (p p)dt + pdW: With a cutting rate of x and a cutting cost of Cx2 =2, discuss how the company can decide what to pay for the lease, given a current price of p and a discount rate of (assume that the company sells timber as it is cut). Hint: introduce a remaining stand size, S , with dS = xdt (S is bounded below by 0) and set up the dynamic programming problem. 10.12. Timber Harvesting with Deterministic Growth Suppose that the timber harvesting problem discussed on page 360 is nonstochastic. The Bellman equation can then be rewritten in the form

V : m S Verify that the solution is of the form V0 =

V = k(m S )

= ;

where k is a constant of integration to be determined by the boundary conditions. There are two unknowns to be determined, k and S . Solve for k in terms of S and derive an optimality condition for S as a function of parameters.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

381

10.13. Fishery Management A monopolist manager of a shery faces a state transition function

dS = [S (M

S ) x]dt + 2 (S )dW:

The price is constant and the cost function has a constant marginal cost that is inversely proportional to the stock level. In addition, a xed cost of F is incurred if any shing activity takes place. The reward function can thus be written

p

C x F Æx>0 : S

This is an impulse control problem with two endogenous values of the state, Q and R, with Q < R. When S R, the stock of sh is harvested down to Q. Express the Bellman equation for S R and the boundary conditions that determine the location of Q and R (assume a discount rate of ).

V (S ) = S (M

S )VS (S ) +

2 (S ) V (S ); for S 2 [0; R]: 2 SS

V (R) V (Q) = p(R Q) C ln(R=Q) F: Vs(R) = p C=R Vs(Q) = p C=Q: 10.14. Capital Investment Consider an investment situation in which a rm can add to its capital stock, K , at a cost of C per unit. The capital produces output at rate q (K ) and the net return on that output is P . Hence the reward function facing the rm is

f (K; P; I ) = P q (K ) CI: K is clearly a controllable state, with dK = Idt:

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

382

P , on the other hand, is stochastic and is assumed to be governed by dP = P dt + P dz; (geometric Brownian motion). Using a discount rate of , the Bellman equation for this problem is

V (K; P ) = max P q (K ) CI + IVK (K; P ) + P VP (K; P ) + 21 2 P 2 VP P (K; P ): I There are, however, no constraints on how fast the rm can add capital and hence it is reasonable to suppose that, when it invests, it does so at an in nite rate, thereby keeping its investment costs to a minimum. The optimal policy, therefore, is to add capital whenever the price is high enough and to do so in such a way that the capital stock price remains on or above a curve K (P ). If K > K (P ), no investment takes place and the value function therefore satis es

V (K; P ) = P q (K ) + P VP (K; P ) + 12 2 P 2 VP P (K; P ): This is a simpler expression because, for a given K , it can be solved more or less directly. It is easily veri ed that the solution has the form

V (K; P ) = A1 (K )P 1 + A2 (K )P 2 +

P q (K )

where the i solves 12 2 ( 1) + = 0. It can be shown, for > > 0, that 2 < 0 < 1 < 1 . For the assumed process for P , 0 is an absorbing barrier so the term associated with the negative root must be forced to equal zero by setting A2 (K ) = 0 (we can drop the subscripts on A1 (K ) and 1 ). At the barrier, the marginal value of capital must just equal the investment cost:

VK (K (P ); P ) = C:

(20)

Consider now the situation in which the rm nds itself with K < K (P ) (for whatever reason). The optimal policy is immediately to invest enough to bring the capital stock to the barrier. The value of the rm for states below the

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

383

barrier, therefore, is equal to the value at the barrier (for the same P ) less the cost of the new capital:

V (K; P ) = V (K (P ); P ) (K (P ) K )C: This suggests that the marginal value of capital equals C when K < K (P ) and hence does not depend on the current price. Thus, in addition to (20), it must be the case that

VKP (K (P ); P ) = 0:

(21)

Use the barrier conditions (20) and (21) to obtain explicit expressions for the optimal trigger price P (K ) and the marginal value of capital, A0 (K ). Notice that to determine A(K ) and therefore to completely determine the value function, we must solve a dierential equation. The optimal policy, however, does not depend on knowing V , and, furthermore, we have enough information now to determine the marginal value of capital for any value of the state (K; P ). Write a program to compute and plot the optimal trigger price curve are displayed in using the parameters

c

= = = =

0 0:2 0:05 1

and the following two alternative speci cations for q (K ):

q (K ) = ln(K + 1) p q (K ) = K: 10.15. Cash Management Consider the manager of a cash account subject to random deposits and withdrawals. In the absence of active management the account is described by absolute Brownian motion

dS = dt + dz:

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

384

The manager must maintain a positive cash balance. When the account hits 0, the manager must draw funds from an interest bearing account. To increase the cash account by z units, the manager bears a cost of f + cz , i.e., there are both xed and proportional variable costs of control. Similarly, the manager can place funds in the interest bearing account by withdrawing an amount z from the cash account, incurring costs of F + Cz . Suppose the manager uses a discount rate of and the interest bearing account generates interest at rate r. It is clear that the manager will want to adjust the account only at discrete times so as to minimize the adjustment costs. A control policy can therefore be described as a choice of three cash levels, S1 S2 S3 , where S1 is the amount of the addition to the fund when it hits 0, S3 is the trigger level for withdrawing funds (adding them to the interest bearing account) and S2 is the target level (i.e., S3 S2 units are withdrawn when the fund hits S3 ). The value function associated with this problem solves the Bellman equation16

V (S ) = V 0 (S ) + 21 2 V 00 (S ); for S 2 [0; S3 ] with the side conditions that

V (0) = V (S1 ) f

(r= + c)S1

and

V (S3 ) = V (S2 ) F + (r= C )(S3

S2 ):

Furthermore, an optimal policy satis es

V 0 (S1 ) = (r= + c) and

V 0 (S3 ) = V 0 (S2 ) = (r= C ):

16 Although it is not necessary to solve the problem, it is useful to understand why these conditions

are appropriate. The value function here is interpreted as the present value of the current cash position, which does not depend on how much money is in the interest bearing account at the present moment. Cash pays no current ows and hence the Bellman equation is homogeneous (no reward term). The cost of withdrawing funds from the interest bearing account equals the control cost plus the opportunity cost of the lost interest, which is equal to r= times the amount withdrawn. The cost of adding funds to the interest bearing account equals the control cost less the present value of the interest earned on the funds put into the account (r= times the amount of these funds).

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

385

The Bellman equation can be solved explicitly:

V (S ) = A exp(S ) + B exp( S ); where and are chosen to solve the dierential equation and A and B are chosen to satisfy the side conditions. Write a MATLAB procedure that accepts the parameters , , , r, f , F , c, and C and returns the parameters A, B , , , S1 , S2 , and S3 . Also determine how the program needs to be modi ed if the proportional costs (c and C ) are zero. Check your code using the following parameter values: = 0, = 0:5, = 0:4, r = 0:5, f = 1, F = 0:5, c = 0:1, and C = 0:1. You should obtain the result that S1 = 0:7408, S2 = 0:8442, and S3 = 2:2216. 10.16. Entry/Suspension/Exit The Entry/Exit problem discussed beginning on page 368 can be extended to allow for temporary suspension of production. Suppose that a maintenance fee of m is needed to keep equipment potentially operative. In the simple entry/exit problem there were two switching costs, I and E . Now there are 6 possible switching costs, which will generically be called F ij . With D = 1 representing the active production state, D = 2 the temporarily suspended state and D = 3 the exited state, de ne the Bellman equations and boundary conditions satis ed by the solution. 10.17. Non-Renewable Resource Management The demand for a nonrenewable resource is given by

p = D(q ) = q ; where q is the extraction rate. For simplicity, assume the resource can be extracted at zero cost. The total stock of the resource is denoted by S (with S (0) = S0 ), and is governed by the transition function

dS = qdt: a) For the social planner's problem, with the reward function being the social surplus, state the Bellman's equation and the optimality condition, using discount rate . Use the optimality condition to nd the concentrated Bellman's equation. b) Guess that V (S ) = S . Verify that this is correct and, in doing so, determine and .

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

386

c) Determine the time value, T , at which the resource is exhausted. d) Solve the problem using an optimal control (Hamiltonian) approach and verify that the solutions are the same. 10.18. Renewable Resource Management with Adjustment Costs Consider an extension to the renewable resource problem discussed on page 371. Suppose that the harvest rate is still constrained to lie on [0; C ] but that it cannot be adjusted instantaneously. Instead assume that the rate of adjustment in the harvest rate, x, must lie on [a; b], with a < 0 < b, with the proviso that x 0 is h = 0 and x 0 is h = C . This problem can be addressed by de ning h to be a second state variable with a deterministic state transition equation:

dh = xdt: The optimal control for this problem is de ned by two regions, one in which x = a and one in which x = b. The boundary between these regions is a curve in the space [0; 1) [0; C ]. Write the PDEs that must be satis ed by the value functions in each region and the value-matching and smooth pasting conditions that must hold at the boundaries. 10.19. Optimal Sales from an Inventory Consider a situation in which an agent has an inventory of S0 units of a good in inventory, all of which must be sold within T periods. It costs k dollars per unit of inventory per period to store the good. In this problem there is a single control, the sales rate q , and two state variables, the price P and the inventory level S . The price is an exogenously given Ito process:

dP = (P; t)dt + (P; t)dz: The amount in storage evolves according to

dS = qdt: Furthermore it is assumed that both the state and the control must be nonnegative. The latter assumes that the agent cannot purchase additional amounts to replenish the inventory, so that sales are irreversible.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

387

The problem can be written as

V (S; P; t) = max Et q(S;P;t)

Z T t

e

rt (qP

kS ) dt

subject to the above constraints. What is Bellman's equation for this problem? Treat the problem as an optimal stopping problem so q = 0 when the price is low and q = 1 when the price is high. At or above the stopping boundary all inventory is sold instantaneously. State the Bellman's equation for the regions above and below the stopping boundary. State the value-matching and smooth-pasting conditions that hold at the boundary. 10.20. Learning-By-Doing with Deterministic Price Suppose in the sequential learning that the price is deterministic ( = 0) and the r Æ . In this case, once production is initiated, it is never stopped. Use this to derive an explicit expression for V (P; Q), where P P (Q). In this case, because production occurs at all times,

V (P; Q) =

Z 1

0

e

r (P

C (Q ))d;

where Pt solves the homogeneous rst order dierential equation

dPt = (r dt

Æ )P

and Z 1

0

e

r C (Q

)d

=

Z Qm Q

0

e

r C (Q

Q)d + c

Z 1 Qm Q

e

r d:

Also show that, for P < P , the value function can be written in the form f (P; P (Q))V (P (Q); Q). Combining these two results, determine the optimal activation boundary in the deterministic case. Verify that your answer satis es the Bellman equation.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

388

Appendix A Dynamic Programming and Optimal Control Theory Many economists are more familiar with optimal control theory than with dynamic programming. This appendix provides a brief discussion of the relationship between the two approaches. As stated previously, optimal control theory is not naturally applied to stochastic problems but it is used extensively in deterministic ones. The Bellman equation in the deterministic case is

V = max f (S; x) + Vt + g (S; x)VS ; x where x is evaluated at its optimal level. Suppose we totally dierentiate the marginal value function with respect to time: dVS dS = VSt + VSS = VSt + VSS g (S; x): dt dt Now apply the Envelope Theorem to the Bellman equation to determine that

VS = fS (S; x) + VtS + g (S; x)VSS + VS gS (S; x): Combining these expressions and rearranging yields dVS = VS fS VS gS : (22) dt This can be put in a more familiar form by de ning = VS . Then (22), combined with the FOC for the maximization problem and the state transition equation can be written as the following system 0 = fx (S; x) + gx (S; x)

d = fS (S; x) gS (S; x) dt and

dS = g (S; x): dt These relationships are recognizable as the Hamiltonian conditions from optimal control theory, with the costate variable representing the shadow price of the state variable (expressed in current value terms).17 17 See Kamien and Schwartz, pp. 151-152 for further discussion.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

389

The message here is that dynamic programming and optimal control theory are just two approaches to arrive at the same solution. It is important to recognize the distinction between the two approaches, however. Optimal control theory leads to three equations, two of which are ordinary dierential equations in time. Optimal control theory therefore leads to expressions for the time paths of the state, control and costate variables as functions of time: S (t), x(t) and (t). Dynamic programming leads to expressions for the control and the value function (or its derivative, the costate variable) as functions of time and the state. Thus dynamic programming leads to decision rules rather than time paths. In the stochastic case, it is precisely the decision rules that are of interest, because the future time path, even when the optimal control is used, will always be uncertain. For deterministic problems, however, DP involves solving partial dierential equations, which tend to present more challenges than ordinary dierential equations.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

390

Appendix B Deriving the Boundary Conditions for Resetting Problems It is instructive to view the resetting problem from another perspective. In a simple resetting problem an asset is replaced at a discrete set of times when S = S , at which point a reward, f (S ) is obtained. Let us de ne (S; S ) to be the (random) time until the state rst hits S , given that it is now equal to S . The rst time the state hits S a reward worth f (S )e (S;S ) (in current units of account) will be generated and the state is reset to 0. The time elapsing after a resetting until the state next hits S depends on a random variable that has the same distributional properties as (0; S ) and is independent of previous hitting times (by the Markov property). The expected discounted rewards (i.e., the value function) can be therefore be written as 1 (S;S ) X i V (S ; S ) = f (S )E e E e (0;S )

=

f (S )E e (S;S )

1 E [e

(0;S ) ]

i=0

:

To simplify the notation, let (S; S ) = E e (S;S ) ; so the value function is f (S ) (S; S ) V (S ; S ) = : 1 (0; S ) From the de nition of it is clear that (S ; S ) = 0 so (S ; S ) = 1. Hence the boundary condition that

f (S ) : 1 (0; S ) Combining this with the lower boundary condition f (S ) (0; S ) V (0; S ) = 1 (0; S ) leads to the value matching condition that V (S ; S ) =

V (S ; S ) = V (0; S ) + f (S ): Notice that value matching does not indicate anything about the optimality of the choice of S . One way to obtain an optimality condition is to set the derivative

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

391

of V (S; S ) with respect to S equal to zero. After suitable rearrangement the FOC is, for every S , @ (S; S ) (S; S ) @ (0; S ) 0 f (S ) (S; S ) + f (S ) + = 0: (23) @S 1 (0; S ) @S In order to show that this is equivalent to the smooth pasting condition we will use two properties of . First, (S ; S ) is identically equal to 1, so @ (S ; S )=@S = 0. Combined with the fact that dS = 1; dS S =S this implies d (S ; S ) @ (S ; S ) @ (S ; S ) = + =0 dS @S @S and hence that @ (S ; S ) @ (S ; S ) = : @S @S The second fact, a result of the Markov assumption, is that

(S; S + dS ) = (S; S ) (S ; S + dS ): taking limits as dS ! 0 we see that @ (S; S ) @ (S ; S ) = (S; S ) : @S @S If we evaluate (23) at S = S and rearrange, it is straightforward to see that @ (S ; S ) (S ; S ) @ (0; S ) 0 + f (S ) = f (S ) @S 1 (0; S ) @S (0; S ) @ (S ; S ) = f (S ) 1 + 1 (0; S ) @S f (S ) @ (S ; S ) = 1 (0; S ) @S f (S ) @ (S ; S ) = 1 (0; S ) @S @V (S ; S ) = @S which is the desired result.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

392

Appendix C Deterministic Bang-Bang Problems The general form for a deterministic bang-bang type problem has a reward function

f0 (S ) + f1 (S )x state dynamics

dS = [g0 (S ) + g1 (S )x]dt and control constraint

xa x xb : Suppose we use a control, not necessarily optimal, with S as a switching point, e.g., set x = xa for S < S and x = xb for S > S .18 At S = S we choose x in such a way that dS=dt = 0. Summarizing, de ne

x(S; S a ) =

8 > > >

S a

> > > :

with xa < g0 (S a )=g1 (S a ) < xb . The value function satis es the dierential equation h i 1 V (S; S a ) = f0 (S ) + f1 (S )x(S; S a ) + g0 (S ) + g1 (S )x(S; S a ) VS (S; S a ) ; (24) which, evaluated at S = S , yields

V (S a ; S a )

1 = f (S a ) 0

f1

g (S (S a ) 0

a)

g1 (S a )

:

(25)

In spite of the discontinuity of the control at S , the value function is continuous, as is readily apparent by writing it as

V (S; S a ) =

Z 1

0

e

t (f

0 (S ) + f1 (S )x(S; S a )) dt;

and noting that as S approaches S from below (above), the amount of time during which the control is set at xa (xb ) goes to 0. 18 This assumes that the state is growing when xa is used and is shrinking when xb is used. It is

a simple matter to reverse these inequalities.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

393

The continuity of V can be used to demonstrate the continuity of VS (S; S ) at S = S , and to thereby determine its value:19 f1 (S a ) a a : (26) VS (S ; S ) = g1 (S a ) So far, however, we have only considered the value function for the control S . To choose the control optimally, we must pick S to satisfy

VS a (S; S a ) = 0: For S 6= S a we can dierentiate (24) to see that h i VS a (S; S a ) = 1 f1 (S ) + g1 (S )VS (S; S a ) xS a (S; S a )

+ g1

(S )x(S; S a )V

SS a

(S; S a ):

(27)

However, except at S = S , xS (S; S ) and VSS a (S; S a ) are zero and hence we only need to set this derivative to zero at S = S . (27) is not well de ned at S = S because the derivative xS (S; S ) is unde ned at this point. Instead we use the relationship dV (S a ; S a ) = VS (S a ; S a ) + VS a (S a ; S a ): dS a Rearranging this and using (25) and (26) we get dV (S a ; S a ) a a a VS (S a ; S a ) VS (S ; S ) = a dS a ) g (S a ) f1 (S a ) d f ( S 0 0 g1 (S a ) 1 f1 (S a ) + : = dS a g1 (S a ) 19 To determine the limit from below, note that continuity of V implies that

1 lima [f0 (S ) + f1(S )xa + (g0 (S ) + g1 (S )xa ) VS (S; S a )] %S 1 = f0 (S a ) + f1 (S a )xa + (g0 (S a ) + g1 (S a )xa ) lima VS (S; S a ) S %S a a f1 (S )g0 (S ) 1 f (S a ) V (S a ; S a ): = 0 g1 (S a ) Rearranging, we see this expression implies that f1 (S a )g0 (S a ) a a a a (g0 (S ) + g1 (S )xa ) lima V (S; S ) = f1 (S )xa + S %S g1 (S a ) a f1 (S ) a a = g (S ) + g1 (S )xa : g1 (S a ) 0 The same exercise can be applied to solving for the limit from above. lima V (S; S a ) = %S

S

S

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

394

Thus the optimal switching points are found by solving for the roots of this expression. It is possible that there are multiple roots, leading to a situation in which VS may be discontinuous at a root; this root represents an unstable equilibrium at which x is unde ned.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

395

Bibliographic Notes Arbitrage methods for solving nancial asset pricing problems originated with Black and Scholes and Merton. The literature is now vast. A good introductory level discussion in found in Hull. For a more challenging discussion, see DuÆe. The mathematical foundations for modern asset pricing theory are discussed at an introductory level in Hull and Neftci. See also Shimko. Discussions of exotic option pricing models are found in Hull and Wilmott. Goldman et al. contains the original derivation of the boundary condition for lookback options. AÆne diusion models are discussed in DuÆe and Kan, Dai and Singleton and Fackler. Introductory level treatments of stochastic control problems are available in Dixit and Dixit and Pindyck. These books contain numerous examples as well as links to other references. A more rigorous treatment in found in Fleming and Rishel. The renewable resource harvesting problem is from Pindyck, the optimal investment from Cox et al., the portfolio choice example from Merton (1969) and Merton (1971). Boundary conditions associated with stochastic processes are discussed by Feller, who devised a classi cation scheme for diusion processes with singular boundaries (see discussion by Bharucha-Reid, sec. 3.3, and Karlin and Taylor (1981), Chap. 15.). Kamien and Schwartz is a classic text on solving dynamic optimization problems in economics; its primary focus is on deterministic problems solved via calculus of variations and use of Hamiltonian methods but contains a brief treatment of dynamic programming and control of Ito processes (Chapters 20 and 21). Other useful treatments of deterministic problems are found in Dorfman and Chiang. Malliaris and Brock contains an overview of Ito processes and stochastic control, with numerous examples in economics and nance. DuÆe contains a brief introductory treatment of stochastic control, with a detailed discussion of the portfolio choice problem rst posed in Merton (1969) and Merton (1971). A standard advanced treatment of stochastic control is Fleming and Rishel. Free boundary problems are increasingly common in economics. Dixit (1991), Dixit (1993a) and Dixit and Pindyck contain useful discussions of these problems. Several of the examples are discussed in these sources. Dixit (1993b) provides a good introduction to stochastic control, with an emphasis on free boundary problems. Dumas discusses optimality conditions; see also the articles in Lund and Oksendal. Homan and Sprekels and Antonsev et al. are proceedings of conferences on free boundary problems with an emphasis on problems arising in physical sciences. The original solution to the timber harvesting problem with replanting is attributed to Martin Faustmann, who discussed it in an article published in 1849. Irving Fisher discussed the related problem with abandonment in The Theory of Interest. For further discussion see Ganey, Hershleifer. Recently, ?? discussed the

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

396

stochastic version of the problem. The entry/exit example originates with Brennan and Schwartz and McDonald and Siegel. Numerous authors have discussed renewable resource management problems; see especially Mangel. The stochastic bang-bang problem is discussed most fully in Ludwig and Ludwig and Varrah, where detailed proofs and a discussion of the multiple equilibria situation can be found. The proof in the appendix to this chapter is modeled after a similar proof in Ludwig. The learning-by-doing example is from Majd and Pindyck and is also discussed in Dixit and Pindyck.

Chapter 11 Continuous Time Models: Solution Methods In the previous chapter we saw how continuous time economic models, whether deterministic or stochastic, result in solution functions that satisfy dierential equations. Ordinary dierential equations (ODEs) arise in in nite horizon single state models or in deterministic problems solved in terms of time paths. Partial dierential equations (PDEs) arise in models with multiple state variables or in nite horizon control problems. From a numerical point of view the distinction between ODEs and PDEs is less important than the distinction between problems which can be solved in a recursive or evolutionary fashion or those that require the entire solution be computed simultaneously because the solution at one point (in time and/or space) depends on the solution everywhere else. This is the distinction between initial value problems (IVPs) and boundary value problems (BVPs) that we discussed in Sections 5.7 and 6.8.3. With an IVP, the solution is known at some point or points and the solution near these points can then be (approximately) determined. This, in turn, allows the solution at still other point to be approximated and so forth. When possible, it is usually faster to use such recursive solution techniques. Numerous methods have been developed for solving PDEs. We concentrate on a particular approach that encompasses a number of the more common methods and which builds nicely on the material already covered in this book. Speci cally, the true but unknown solution will be replaced with a convenient approximating function, the parameters of which will be determined using collocation. For initial value type problems (IVPs), this approach will be combined with a recursive algorithm. We will also discuss free boundary problems. The basic approach for such problems is to solve the model taking the free boundary as given and then use the optimality condition to identify the location of the boundary. 397

CHAPTER 11. CONTINUOUS TIME - METHODS

398

There are a number of methods for solving PDEs and stochastic control problems that we do not discuss here. These include binary and trinomial tree methods, simulation methods and methods that discretize control problems and solve the related discrete problem. Although all of these methods have their place, we feel that providing a general framework that works to solve a wide variety of problems and builds on general methods developed in previous chapters is of more value than an encyclopedic account of existing approaches. Much of what is discussed here should look and feel familiar to readers that have persevered up to this point.1 We do, however, include some references to other approaches in the bibliographical notes at the end of the chapter.

11.1 Solving Arbitrage-based Valuation Problems In the previous chapter it was shown that nancial assets often satisfy an arbitrage condition in the form of the PDE r(S )V = Æ (S ) + Vt + VSS (S ) + 21 trace( (S ) (S )>VSS ): The speci c asset depends on the boundary conditions. For an asset that has a single payout at time T , the only boundary condition is of the form V (S; T ) = R(S ) and, as there are no dividends, Æ = 0. For zero-coupon default-free bonds the boundary condition is R(S ) = 1. For futures, European call options and European put options written on an underlying asset with price p = P (S ), the boundary conditions are, respectively, R(S ) = P (S ) and R(S ) = max(0; P (S ) K ) and R(S ) = max(0; K P (S )), where K is the option's strike price. Asset pricing problems of this kind are more easily expressed in terms of time-tomaturity rather than calendar time; let = T t. We will work with V (S; ) rather than V (S; t), necessitating a change of sign of the time derivative: V = Vt . The problem, of course, is that the functional form of V is unknown. Suppose, however, it is approximated with a function of the form V (S; ) (S )c( ), where is a suitable n-dimensional family of approximating functions and c( ) is an n-vector of time varying coeÆcients. When the state variable is one-dimensional, the arbitrage condition can be used to form a residual equation of the form2 h

i

(S )c0 ( ) (S )0(S ) + 12 2 (S )00 (S ) r(S )(S ) c( ) = (S )c( ):

(1)

1 It would be useful to at least be familiar with the material in Chapter 6. 2 For multi-dimensional states the principle is the same but the implementation is a bit messier.

We discuss this in Appendix 11.A.

CHAPTER 11. CONTINUOUS TIME - METHODS

399

A collocation approach to determining the c( ) is to select a set of n values for S , si , and to solve the residual equation with equality at these values. The residual function can then be written in the form c0 ( ) = Bc( ); where and B are both n n matrices. This is a rst order system of ordinary dierential equations in , with the known solution c( ) = exp( 1 B )c0 ; where c0 satis es the boundary condition R(S ) evaluated at the n values of the si (note: the exponential is a matrix exponential which can be computed using the Matlab function expm). Before illustrating this approach, a few additional comments are in order. It may be desirable to impose additional boundary conditions. This would require rede ning and B using fewer than n nodes and to concatenate to these any additional equations needed to impose the boundary conditions. Generally, this is not needed if the behavior at the boundaries is regular enough. The issue becomes more critical when free boundary problems are encountered. Another issue is especially important in option pricing problems, for which the terminal boundary is not smooth but rather has a kink at the strike price K . This suggests that the use of a polynomial approximation may not be appropriate. Instead a cubic spline, possibly with extra nodes at S = K , or a piece-wise linear approximation with nite dierence derivatives may be in order.

Example: Pricing Bonds

The CIR (Cox-Ingersoll-Ross) bond pricing model assumes that the risk-neutral process for the short interest rate is given by

p

dr = ( r)dt + rdz: Expressing the value of a bond in terms of time-to-maturity ( ), a bond paying 1 unit of account at maturity, has value V (r; ) that solves

V = ( r)Vr + 21 2 rVrr rV; with initial condition V (r; 0) = 1. To solve this model, rst choose a family of approximating functions with basis (r) and n collocation nodes, ri . Letting the basis functions and their rst two derivatives at these points be de ned as the n n matrices 0 , 1 and 2 , a system of collocation equations is given by 0 c0 ( ) = [( r)1 + 21 2 r2 r0 ]c( ) = Bc( ):

CHAPTER 11. CONTINUOUS TIME - METHODS

400

The term r0 is an abuse of notation; it indicates multiplying the n 1 vector r by an n n matrix 0 . Such a term is more properly written as diag(r)0 and can be obtained in Matlab using element-by-element multiplication as r(:,ones(n,1)).*Phi0

(see code below). The same comments also apply to the rst and second order terms. The following function solves the CIR bond pricing problem. function c=cirbond(fspace,tau,kappa,alpha,sigma) % Define nodes and basis r=funnode(fspace); Phi0=funbas(fspace,r,0); Phi1=funbas(fspace,r,1); Phi2=funbas(fspace,r,2); % Evaluate parameters m=kappa*(alpha-r); s=0.5*sigma.^2*r; % Define and solve the linear differential equation in the coefficients u=ones(size(r,1),1); B=m(:,u).*Phi1+s(:,u).*Phi2-r(:,u).*Phi0; B=Phi0\B; c0=Phi0\u; c=expm(full(tau*B))*c0;

The function's input arguments include a function de nition structure fspace indicating the family of approximating functions desired, the time to maturity, , and the model parameters, , and . The function returns the coeÆcient vector c . A script le, demfin01.m, demonstrates the use of the procedure. It uses a Chebyshev polynomial approximation of degree n = 20 on the interval [0; 2]. The solution function for a 30-year bond with parameter values = 0:1, = 0:05 and = 0:1 is plotted in Figure 11.1. Two points are in order concerning the procedure. First, Matlab's matrix exponential function expm requires that its argument be a full rather than a sparse matrix. Some basis functions (e.g., spline and piecewise linear) are stored as sparse matrices, so this ensures that the code will work regardless of the family of functions used. Second, the procedure uses the standard nodes for a given approximating family of functions. This typically requires upper and lower bounds to be speci ed. For the process used in the bond pricing example, a natural lower bound of 0 can be used. The upper bound is trickier, because the natural upper bound is 1. Knowledge of the underlying nature of the problem, however, should suggest an upper bound for the rate of interest. We have used 2, which should more than suÆce for countries that are not experiencing hyper-in ation.

CHAPTER 11. CONTINUOUS TIME - METHODS

401

Zero−Coupon Bond Price 0.45

0.4

0.35

V(r)

0.3

0.25

0.2

0.15

0.1

0.05

0

0.05

0.1

0.15

0.2

0.25

r

Figure 11.1 More generally, one should use an upper bound that ensures the result is not sensitive to the choice in regions of the state space that are important. In practice, this may necessitate some experimentation. A useful rule of thumb is that the computed value of V (S ) is not sensitive to the choice of S if the probability that ST = S, given St = S , is negligible. For in nite horizon problems with steady state probability distributions, one would like the steady state probability of S to be negligible. For this example, a known solution to the bond pricing problem exists (see exercise 10.2 on p. 376). The closed form solution can be used to compute the approximation error function, which is shown in Figure 11.2. The example uses a Chebyshev polynomial basis of degree n = 20; it is evident that this is more than suÆcient to obtain a high degree of accuracy.

11.1.1 Extensions and Re nements The approach to solving the asset pricing problems just described replaces the original arbitrage condition with one of the form c0 ( ) = Bc( );

with c(0) = V0 . The known solution c( ) = exp( 1 B ) 1 V0 can be put in recursive form c( + ) = exp( 1 B )c( ) = Ac( ):

CHAPTER 11. CONTINUOUS TIME - METHODS Zero−Coupon Bond Approximation Errors

−10

3

402

x 10

2

1

0

−1

−2

−3

−4

−5

0

0.05

0.1

0.15

0.2

0.25

r

Figure 11.2 The n n matrix A need only be computed once and the recursive relationship may then be used to compute solution values for a whole grid of evenly spaced values of . In the approach taken above, the existence of a known solution to the collocation dierential equation is due to the linearity of the arbitrage condition in V and its partial derivatives. If linearity does not hold, we will still be able to express the system in the form c0 (t) = B (c(t)), which can be solved using any convenient initial value solver such as the Runge-Kutta algorithm described in Section 5.7 or any of the suite of Matlab ODE solvers. This approach has been called the extended method of lines. The name comes from a technique called the method of lines, which treats = In and uses nite dierence approximations for the rst and second derivatives in S . The values contained in the c(t) vector are then simply the n values of V (si ; t). The extended method of lines simply extends this approach by allowing for arbitrary basis functions. We should point out that the system of ODEs in the extended method of lines is often \sti". This is a term that is diÆcult to de ne precisely and a full discussion is beyond the scope of this book. SuÆce it to say, a sti ODE is one that operates on very dierent time scales. The practical import of this is that ordinary evolutionary solvers such as Runge-Kutta and its re nements must take very small time steps to solve sti problems. Fortunately, so-called implicit methods for solving sti problems

CHAPTER 11. CONTINUOUS TIME - METHODS

403

do exist. The Matlab ODE suite provides two sti solvers, ode15s and ode23s. It is also possible to use nite dierence approximations for ; indeed, this is perhaps the most common approach to solving PDEs for nancial assets. Expressed in terms of time-to-maturity ( ), a rst order approximation with a forward dierence (in ) transforms (1) to

c( + ) c( ) = (S )c( ); or, equivalently, (S )

(S )c( + ) = [(S ) + (S )]c( ): Expressing this in terms of basis matrices evaluated at n values of S leads to c( + ) = [In + 1 B ]c( ): This provides an evolutionary rule for updating c( ), given the initial values c(0). [In + 1 B ] is a rst order Taylor approximation (in ) of exp( 1 B ). Hence the rst order dierencing approach leads to errors of O(2 ). A backwards (in ) dierencing scheme can also be used

(S )

c( ) c(

)

= (S )c( );

leading to

c(

) = [In

1 B ]c( )

or

c( + ) = [In 1 B ] 1 c( ): [In 1 B ] 1 is also a rst order Taylor approximation (in ) of exp( 1 B ) so this method also has errors of O(2 ). Although it may seem like the forward and backwards approaches are essentially the same, there are two signi cant dierences. First, the backwards approach de nes c( ) implicitly and the update requires a linear solve using the matrix [In 1 B ]. The forward approach is explicit and requires no linear solve. This point is relatively unimportant when the coeÆcients of the dierential equation are constant in because the inversion would need to be carried out only once. The point becomes more signi cant when the coeÆcients are time varying. As we shall see, this can happen even when the state process has constant (in time) coeÆcients, especially in free boundary problems.

CHAPTER 11. CONTINUOUS TIME - METHODS

404

The need for a linear solve would seem to make the backward (implicit) approach less desirable. It is possible, however, that the explicit forward approach is unstable. Both approaches replace the dierential system of equations with a system of dierence equations of the form x + = Ax : It is well known that such a system is explosive if any of the eigenvalues of A are greater than 1 in absolute value. In applications of the kind found in nancial applications, the matrix A = [In + 1 B ] can be assured of having small eigenvalues only by making small enough. On the other hand, the implicit method leads to a dierence equation for which A = [In 1 B ] 1 , which can be shown to be stable for any . Practically speaking, this means that the explicit may not be faster than the implicit method and may produce garbage if is not chosen properly. If the matrix A is explosive, small errors in the approximation will be magni ed as the recursion progresses, causing the computed solution to bear no resemblance to the the true solution.

A Matlab Asset Pricing Function: FINSOLVE Due to the common structure of the arbitrage pricing equation across a large class of nancial assets, it is possible to write general procedures for asset pricing. Such a procedure, finsolve, for solving an arbitrage condition for an asset that pays no dividends is shown in below. The function requires ve inputs, model, fspace, alg, snodes and N. The rst input, model, is a structure variable with the following elds: func the name of the problem de nition le T the time to maturity of the asset params a cell array of additional parameters to be passed to model.func A template for the function de nition le is: out1=func(flag,S,t,additional parameters); switch flag case 'rho' out1 = instantaneous risk-free interest rate case 'mu' out1 = drift on the state process case 'sigma' out1 = volatility on the state process case 'V0' out1 = exercise value of the asset end

CHAPTER 11. CONTINUOUS TIME - METHODS

405

The function uses the modi ed method of lines by default if alg is unspeci ed but explicit (forward) or implicit (backward) nite dierences can also be used to represent the derivative in by specifying the alg argument to be either 'implicit' or 'explicit' (the default is 'lines'). In addition, a method known as the CrankNicholson method, which averages the implicit and explicit methods, can be obtained by specifying 'CN'. function [c,V,A]=finsolve(model,fspace,alg,s,N) if ~exist('alg','var') | isempty(alg), alg='lines'; end if ~exist('N','var') | isempty(N), N=1; end probfile=model.func; T=model.T; n=prod(fspace.n); % Compute collocation matrix mu=feval(probfile,'mu',s,[],model.params{:}); sigma=feval(probfile,'sigma',S,[],model.params{:}); rho=feval(probfile,'rho',S,[],model.params{:}); V0=feval(probfile,'V0',S,[],model.params{:}); n=fspace.n; Phi0=funbas(fspace,s,0); % compute basis matrices Phi1=funbas(fspace,s,1); Phi2=funbas(fspace,s,2); v=0.5*sigma.*sigma; u=ones(n,1); B=mu(:,u).*Phi1+v(:,u).*Phi2-rho(:,u).*Phi0; B=funfitxy(fspace,Phi0,B); c0=funfitxy(fspace,Phi0,V0); Delta=T/N; switch method case 'lines' A=expm(full(Delta*B)); case 'explicit' A=eye(n)+Delta*B; case 'implicit' A=inv(eye(n)-Delta*B); case 'CN'

CHAPTER 11. CONTINUOUS TIME - METHODS

406

A=(inv(eye(n)-Delta*B) + eye(n)+Delta*B)/2; otherwise error('Method option is invalid') end c=zeros(n,N+1); c(:,1)=c0; for i=2:N+1 c(:,i)=A*c(:,i-1); end

The next section uses this function to solve the Black-Scholes option pricing model (the Matlab le demfin01 optionally uses finsolve to solve the CIR bond pricing example).

Example: Black-Scholes Option Pricing Formula

In Section 10.1, the Black-Scholes option pricing formula was introduced. The assumption underlying this formula is that the price of a dividend protected stock has risk-neutral dynamics given by

dS = rSdt + Sdz: The arbitrage condition is V = rSVS + 12 2 S 2 VSS rV with the initial condition V (S; 0) = max(S K; 0). A script le using the finsolve function is given below (see demfin02) . The family of piece-wise linear functions with nite dierence approximations for the derivatives (with pre x lin) is used. 50 evenly spaced nodal values on [0; 2K ] are used, along with 75 time steps using the implicit (backward in ) method. Notice that the function finsolve returns an n N + 1 matrix of coeÆcients; the rst column contains coeÆcients that approximate the terminal value. If only the values for timeto-maturity T are desired, all but the last column of the output can be discarded (hence the c=c(:,end); line). The approximation can be evaluated at arbitrary values of S using funeval(c,fspace,S). The delta and gamma of the option can also be evaluated using funeval. % Define parameters r=.05; delta=0; sigma=0.2; K=1; T=1; put=0;

CHAPTER 11. CONTINUOUS TIME - METHODS

407

clear model model.func='pfin02'; model.T=T; model.params={r,delta,sigma,K,put}; n=50; fspace=fundefn('lin',n,log(K/3),log(3*K)); s=funnode(fspace); % Call solution algorithm c=finsolve(model,fspace,'implicit',s,75); c=c(:,end);

The problem de nition le for this example follows: function out1=pfin02(flag,S,t,r,delta,sigma,K,put); n=size(S,1); switch flag case 'rho' out1=r+zeros(n,1); case 'mu' out1= (r-delta-0.5*sigma.^2); case 'sigma' out1=sigma; case 'V0' if put out1=max(0,K-exp(S)); else out1=max(0,exp(S)-K); end end

As a closed form solution exists for this problem, we can plot the approximation errors produced the method (the procedure BlackSch is available in the CompEcon toolbox). These are shown in Figure 11.3. The maximum absolute error is 5:44 10 4. It is simple to experiment with the alternate methods by changing the alg argument to the finsolve function. The family of approximating functions can also be changed easily by changing the input to the fundef function. The approximation errors in Table 11.1 were obtained in this manner. The approximation errors for all of these methods are roughly equivalent, with a slight preference for the cubic spline. Note, however, that the explicit approach

CHAPTER 11. CONTINUOUS TIME - METHODS

408

Table 11.1: Option Pricing Approximation Errors Method Function Family Lines Implicit Explicit Piecewise-linear 4.85 5.44 5.31 Cubic Splines 2.89 2.31 3.20 Maximum absolute errors on [0; 2K ] times 10 4 . Explicit cubic spline uses 250 time steps; other methods use 50 steps. Call Option Approximation Errors

−3

2

x 10

1.5

1

0.5

0

−0.5

−1 −1.5

−1

−0.5

0

0.5

1

1.5

S

Figure 11.3 using the cubic spline basis is explosive with under 200 time steps and the table gives approximation errors using 250 time steps. It should also be noted that a polynomial approximation does a very poor job in this problem due to its inability to adequately represent the initial condition, which has a discontinuity at K in its rst derivative, and, more generally, because of the high degree of curvature near S = K .

11.2 Solving Stochastic Control Problems In the previous chapter we saw that for problems of the form

V (S ) = max x(S )

Z 1 t

e

f (S; x)d;

s.t. dS = g (S; x)dt + (S )dz;

CHAPTER 11. CONTINUOUS TIME - METHODS

409

Bellman's equation takes the form

V (S ) = max f (S; x) + g (S; x)V 0 (S ) + 21 2 (S )V 00 (S ); x(S ) possibly subject to boundary conditions. When the functional form of the solution is unknown, the basic strategy for solving such problems will be essentially the same as in the discrete time case. The value function will be approximated using V (S ) (S )c, where c is an n-vector of coef cients. For in nite horizon problems, c can be found using either a value function and a policy function iteration. Given a guess of the value of c, the optimal value of the control can be solved (in principle) for a set of nodal values of S . (si )c = max f (si ; xi ) + g (si ; xi )0 (si )c + 12 2 (si )00 (si )c: xi This leads to the rst order conditions

fx (si ; xi ) + gx (si ; xi )0 (si )c = 0; which may admit a closed form solution, xi = x (si ; c). If there are no relevant boundary conditions, n values of S are used to form the n n basis matrices 0 , 1 and 2 . The three vectors de ned by fi = f (si ; xi ), mi = g (si; xi ) and vi = 0:5 2 (si ) are also computed. A function iteration algorithm can then be expressed as 1 1 0 f + [m1 + v 2 ] c c (as noted earlier, terms like m1 are an abuse of notation and signify diag(m)1 ). Policy function iteration uses c = [0 m1 v 2 ] 1 f: If there are relevant boundary conditions, the number of nodal values of S can be less than n by the number of additional conditions. Generally boundary conditions are linear in the value function and its derivatives and hence are linear in the approximation coeÆcients. These conditions can, therefore, be appended to the collocation conditions from the Bellman's Equation and c can be updated in essentially the same manner. This approach will be used extensively for solving free boundary in the next section. An alternative when one can solve explicitly for the optimal control (in terms of the value function) is to substitute the control out of the Bellman Equation. This results in (generally) a nonlinear dierential equation in S , which can be solved directly

CHAPTER 11. CONTINUOUS TIME - METHODS

410

using collocation. If the dierential equation is nonlinear, however, the collocation equations are also nonlinear and hence must be solved using a root nding algorithm. A general solver routine for stochastic control problems with continuous control variables can be developed along the same lines as the solver for the discrete time case (discussed beginning on p. ??). The method starts with an initial guess of the coeÆcients of an approximation of the value function. It then computes the optimal control given this guess. The value function coeÆcients are then updated using either policy or function iteration. This iterative process occurs until a convergence criterion is met. There are, in fact, some distinct computational advantages to using continuous time models because of three related facts. First, the Bellman equation is not stochastic; there is no need to perform numerical integration to compute an expectation. Second, to implement a Newton solution to the optimization problem, the rst order condition, fx (s; x) + Vs (s)gx(s; x) = 0, and its derivative need only be evaluated at nodal values of the state. Third, the rst order condition is relatively simple and can often be solved explicitly in the form x = x(s; Vs ), thereby eliminating entirely the need to perform use numerical optimization methods to determine the conditional optimal control. Even if no explicit solution is available, the computation of second derivative of the conditional value function is easier.3 In the discrete time case

vxx = fxx + Vsgxx + gx>Vss gx: In the continuous time case, the last of these terms does not appear because the value of the state at which V is evaluated is independent of x. A general solver for continuous time stochastic control problems is provided by scsolve. This solver requires that the user specify a model structure and problem de nition le as well as a family of approximating a functions, a set of collocation nodes and initial values for the value function at the collocation nodes. Optionally, an initial value for the optimal control may be passed. The model structure should 3 If the variance term is a function of x, the computation of the rst and second derivatives

must account for this.

vx = fx + Vs gx + vec(Vss )> x

and vxx = fxx + Vs gxx + x > (Id Vss )x + vec(Vss )> xx :

Here x is d2 p and x is d2 p p. The matrix product vec(Vss )> xx multiplies a 1 d2 matrix by a d2 p p array and returns a p p array. In Matlab this type of matrix multiplication is accomplished by reshape(A*reshape(B,d*d,p*p),p,p).

CHAPTER 11. CONTINUOUS TIME - METHODS

411

contain the following elds: func the name of the problem de nition le params a cell array of additional parameters to be passed to model.func For many continuous time problems, a solution to the rst order conditions (as a function of S and VS ) can be obtained in closed form. If this is the case, the problem de nition le should return these values when a flag value of x is passed. A template for the problem de nition le is: function out1=probdef(flag,s,x,Vs,additional parameters) switch flag case 'x' out1 = optimal value of the control case 'f' out1 = reward function case 'g' out1 = drift term in state transition equation case 'sigma' out1 = diffusion term in state transition equation case 'rho' out1 = discount rate end

A simpli ed (one-dimensional state and action) version of the solver is provided below. This version assumes that the optimal control can be explicitly calculated. % SCSOLVE1 Solves stochastic control problems % Simplified to handle the single state, single control case function cv=scsolve1(model,fspace,snodes,v0); maxiters=100; tol=sqrt(eps); % Compute part of collocation matrix that does not depend on x u=ones(1,fspace.n); rho=feval(scfile,'rho',s,[],[],varargin{:}); Phi0=funbas(fspace,s,0); B=rho(:,u).*Phi0; sigma=feval(scfile,'sigma',s,[],[],varargin{:}); sigma=0.5*sigma.*sigma; B=B-sigma(:,u).*funbas(fspace,s,2); % The part of the collocation matrix that does depend on x Phi1=funbas(fspace,s,1);

CHAPTER 11. CONTINUOUS TIME - METHODS

412

% Initialize coefficient and control vectors if isempty(v0) c=zeros(fspace.n,1); v0=zeros(fspace.n,1); else c=Phi0\v0; end v=v0; % Policy function iteration loop for i=1:maxiters Vs=Phi1*c; x=feval(scfile,'x',s,[],Vs,varargin{:}); f=feval(scfile,'f',s,x,[],varargin{:}); g=feval(scfile,'g',s,x,[],varargin{:}); c=(B-g(:,u).*Phi1)\f; v0=v; v=Phi0*c; e=max(abs(v-v0)); if e=maxiters, % print warning message disp(['Algorithm did not converge. Maximum error: ' num2str(e)]); end

If no explicit solution for the optimal control exists, the problem de nition le must return derivative information that can be used to numerically solve for the optimal control. In this case the a template for the problem de nition le is: function [out1,out2,out3]=probdef(flag,s,x,Vs,additional parameters) switch flag case 'f' out1 = reward function out2 = derivative of the reward function with respect to x out3 = second derivative of the reward function with respect to x case 'g' out1 = drift term in state transition equation out2 = derivative of the drift function with respect to x out3 = second derivative of the drift function with respect to x case 'sigma' out1 = diffusion term in state transition equation case 'rho'

CHAPTER 11. CONTINUOUS TIME - METHODS

413

out1 = discount rate end

Example: Renewable Resource Management

The problem of optimally managing a renewable resource was discussed beginning on page 345. There are a total of 9 parameters in the model, , , K , b, , c, , and . The problem de nition le for this example is provided below. It is complicated by the need to handle separately the cases in which = 1 or = 0 in order to avoid division by 0. out1=psc01(flag,s,x,Vs,alpha,beta,K,b,eta,C,gamma,sigma,rho) switch flag case 'x' Cost=C*s.^(-gamma); out1=b*(Cost+Vs).^(-eta); case 'f' Cost=C*s.^(-gamma); if eta~=1 % handle demand elasticity 1 factor1=1-1/eta; % case separately to avoid factor0=b.^(1/eta)/factor1; % division by 0; see iteration loop out1=factor0*x.^factor1-Cost.*x; else % demand elasticity = 1 out1=b*log(x)-Cost.*x; end case 'g' if beta~=0 % need to handle beta=0 Growth=alpha/beta*s.*(1-(s/K).^beta); % case separately else % to avoid division by 0 Growth=alpha*s.*log(K./s); end out1=Growth-x; case 'sigma' out1=sigma*s; case 'rho' out1=rho+zeros(size(s,1),1); end

Notice that an explicit expression for the optimal control is used so there is no need to provide derivative information.

CHAPTER 11. CONTINUOUS TIME - METHODS

414

A script le using scsolve to obtain a solution is provided below. The parameter values used are = 0:5, = 1, K = 1, b = 1, = 0:5, c = 0:1, = 2, = 0:05, and = 0:1. The natural state space is S 2 [0; 1): As discussed below, an approximation is feasible only over a bounded interval. The demonstration uses a piecewise linear approximation with 75 breakpoints, evenly spaced on the interval [0:2; 1:2]. % Set parameter values beta=1; eta=0.5; gam=2; alpha=0.5; K=1; b=1; C=5; rho=0.05; sigma=0.1; beta=1; eta=0.5; gam=2; % Define model variable model.func='psc01'; model.params={alpha,beta,K,b,eta,C,gam,sigma,rho}; % Define the approximating family and nodes lo=0.2; hi=1.2; n=75; fspace=fundefn('plin',n,lo,hi); s=funnode(fspace); % Call the stochastic control solver cv=scsolve(model,fspace,s);

An explicit solution exists for the parameter values used in the demonstration, as displayed in Table 10.1 on page 347. The demonstration le plots the relative error functions over the range of approximation for the marginal value function and optimal control (i.e., 1 V^ =V and 1 x^=x). The resulting plot is displayed in Figure 11.4. It can be seen that the errors in both functions are quite small, except at the upper end of the range of approximation. As with all problems involving an unbounded state space, a range of approximation must be selected. For in nite horizon problems, the general rule of thumb is that the range should include events that the stationary (long-run) distribution places a non-negligible probability of occurrence. In this case, there is little probability that the resource stock, optimally harvested, will ever be close to the biological carrying capacity of K . It is also never optimal to let the stock get too small.4 The renewable resource problem has a natural lower bound on S of 0. It turns out, however, that 0 is a poor choice for the lower bound of the approximation because the value function goes to 1 and the marginal value function to 1 as S ! 0. Such behavior is extremely hard to approximate with splines or polynomials. Inclusion 4 For the parameters values used in the example, the long run distribution has a known closed

form. It can be shown that the probability of values of S less that 0.2 or greater than 0.8 are eectively 0.

CHAPTER 11. CONTINUOUS TIME - METHODS Renewable Resource Approximation Errors

−3

6

415

x 10

Marginal Value Function Optimal Control (x100) 4

2

0

−2

−4

−6

−8

−10

−12

−14 0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

1.1

1.2

S

Figure 11.4 of basis functions that exhibit such behavior is possible but requires more work. It is also unnecessary, because the approximation works well with a smaller range of approximation. In practice, of course, we may not know the stationary distribution or how large the errors are. There are several methods to address whether the approximation choices are good ones. First, check whether the approximation provides reasonable results. Second, check the residual function at inter-nodal values of S . Third, check whether increasing the range of approximation changes the value of the approximating function in a signi cant manner. Before leaving this example, a technique for improving the accuracy of a solution will be demonstrated. For a number of reasons, a piecewise linear approximation with nite dierence derivatives is a fairly robust choice of approximating functions. It is a shape preserving choice, in the sense that an approximation to a monotonic and/or convex function will also be monotonic and/or convex. This makes it far more likely that the iterations will converge from arbitrary starting values. The piecewise linear approximation, however, requires a large number of collocation nodes to obtain accurate approximations. It may therefore be useful to obtain a rough solution with a piecewise linear approximation and use that approximation as a starting point for a second, more accurate approximation. The following code fragment could be appended to the script le on page 414 to obtain a polynomial approximation on the same interval.

CHAPTER 11. CONTINUOUS TIME - METHODS

416

s2=linspace(lo,hi,101)'; fspace2=fundefn('cheb',35,lo,hi); cv2=scsolve(model,fspace,s2,funeval(cv,fspace,s2));

This code fragment de nes a new family of approximating functions and uses the previously computed solution to provide starting values. The polynomial approximation with 35 collocation nodes produces an approximation with a relative error of under 10 10 except at the upper end of the range of approximation (above 0.9).

Example: Optimal Growth

The neoclassical optimal growth model, discussed beginning on page 353, solves Z 1

max e t U (C )dt; C (t) 0 subject to the state transition function K 0 = q (K ) C . This problem could be solved using the scsolve function; we leave this as an exercise (page 452). The optimal control (C ) satis es the Euler condition

U 0 (C ) 0 (q (K ) ) = (q (K ) C )C 0 (K ); U 00 (C ) a rst order dierential equation. The solution C (K ) passes through the steady state point (K ; C ) which simultaneously solves dK=dt = 0 and the Euler condition:

q 0 (K ) = C = q (K ): Our solution approach requires that three functions be de ned. The rst is q (K ), the second is s(K ) = q 0 (K ) , which measures the excess marginal productivity over the discount rate and the third is the absolute risk aversion function, r(C ) = U 00 (C )=U 0 (C ). The steady state capital stock solves s(K ) = 0. The optimal control can be approximated on the interval [a; b] with a function (K )c. The Euler condition is used to form the residual function

s(K ) : r((K )c) This equation can be solved at a set of nodal values, ki , simultaneously with the boundary condition that (K )c C = 0. 0 e(K ) = q (K )

(K )c 0 (K )c

CHAPTER 11. CONTINUOUS TIME - METHODS

417

To make the problem concrete, de ne

q (K ) = ln(K + 1) ÆK; implying that

s(K ) = q 0 (K ) =

K +1

Æ

:

The steady state capital stock is therefore K = 1. As the units in which K Æ+ is denominated are arbitrary, it is convenient to set K = 1 by de ning = 2(Æ + ). Furthermore, let the utility function be of the constant relative risk aversion (CRRA) form, U (C ) = (C 1 1)=(1 ), which implies that r(C ) = =C: The relative risk aversion parameter, , takes on values between 0 and 1, with 0 implying risk neutrality and 1 resulting in logarithmic utility. Speci c parameter values are = 0:05, Æ = 0:02, = 2( + Æ ) = 0:14 and = 0:5. A script le to solve the problem is displayed in Code Box 1. The code uses \inline" functions to de ne q (K ), s(K ) and r(C ) at the beginning of the le. These three functions can be thought of as the parameters de ning the model and can be changed without altering the rest of the code to explore the implications of alternative parameters. The next step is to determine the steady state values. We pass s(K ) to root nding algorithm broyden to obtain K . This is a bit gratuitous in this example given that we already know that K = 1, but it illustrates how K can be found if s(K ) = 0 cannot be solved directly. Given the model parameters, the steady state consumption rate is C = 0:077 or 7:7% of the capital stock. The next step is to set up the collocation problem. We use a Chebyshev polynomial approximation of degree n = 20. To impose the boundary condition, it is necessary, however, to solve the Euler equation at n 1 nodes and impose the additional restriction that (K )c = C . In practice, it turns out that it is useful to impose the additional restriction that no consumption can occur when the capital stock is 0: C (0) = 0. Thus, we use n 2 collocation nodes on the interval [0; 2K ] for the Euler equation, plus the two boundary conditions. The Euler equation nodes used are simply the Chebyshev nodes for degree n 2. These n 2 nodes are then appended to 0 and K and the basis matrices for the function and its derivative are computed (0 and 1 ). An initial coeÆcient vector is t to the straight line through (0; 0) and (K ; C ) using the funfitxy procedure. To solve the collocation problem, we will need to pass a residual function to a root nding algorithm. The residual function is de ned in a separate le shown in Code Box 2. The residual le takes values of c, the approximation coeÆcient vector, and returns the collocation residual vector. A number of precomputed values are

CHAPTER 11. CONTINUOUS TIME - METHODS Code Box 11.1: Neoclassical Growth Model % DEMSC03 Neo-classical Optimal Growth Problem (cont. time) % Define Problem Parameters % q(K)=alpha*log(K+1) - delta*K q=inline('0.14*log(K+1) - 0.02*K','K'); % s(K)=q'(K)-rho s=inline('0.14./(K+1) - 0.02 - 0.05','K'); % r(C)=-U''(C)/U'(C) r=inline('0.5./C','C'); % Find steady state solution Kstar=broyden(s,1); Cstar=q(Kstar); disp('Steady State Capital and Consumption') disp([Kstar Cstar]) % Define nodes and basis matrices n=20; a=0; b=2*Kstar; cdef=fundef({'cheb',n-2,a,b}); K=[0;Kstar;funnode(cdef)]; cdef=fundef({'cheb',n,a,b}); Phi0=funbas(cdef,K,0); Phi1=funbas(cdef,K,1); svals=s(K); qvals=q(K); % Get initial value of C, linear in K k=linspace(cdef.a,cdef.b,301)'; c=funfitxy(cdef,k,Cstar/Kstar*k); c=broyden('fsc03',c,[],r,svals,qvals,Phi0,Phi1,Cstar); % Plot optimal control function figure(1) C=funeval(c,cdef,k); C(1)=0; plot(k,C,Kstar,Cstar,'*') title('Optimal Consumption Rule') xlabel('K') ylabel('C') % Plot residual function figure(2) dC=funeval(c,cdef,k,1); warning off % avoid divide by zero warning e=(q(k)-C).*dC-s(k)./r(C); warning on plot(k,e) title('Growth Model Residual Function') xlabel('K') prtfigs(mfilename)

418

CHAPTER 11. CONTINUOUS TIME - METHODS

419

passed to this function as auxiliary parameters. These include the basis matrices, 0 and 1 , the steady state control, C , and the risk aversion function r(C ). The values of q (K ) and s(K ) are also needed to compute the residual function. Unlike the values of r(C ), however, these do not change with c, so they can be precomputed and passed as vectors rather than \inline" functions. The residual function rst computes the residuals for the Euler equation and then alters the rst two values to impose the boundary conditions at K = 0 and K = K .

Code Box 11.2: Residual Function for Neoclassical Growth Model % FSC03 Residual function for neoclassical optimal growth problem % See DEMSC03 for usage function e=fsc03(c,r,svals,qvals,Phi0,Phi1,Cstar) C=Phi0*c; dC=Phi1*c; warning off e=(qvals-C).*dC-svals./feval(r,C); warning on e(1)=C(1); e(2)=C(2)-Cstar;

After using broyden to nd the coeÆcient vector for the optimal consumption function, the demonstration le then produces a plot of this function, which is shown in Figure 11.5. The steady state equilibrium point (K ; C ) is marked with a \*". The demonstration code also plots the residual function de ned by the Euler equation. This provides an estimate of the error of the approximation. As seen in Figure 11.6 the residual function is relatively small, even with a degree 20 approximation.

11.3 Free Boundary Problems Many of the problems discussed in the previous chapter involved free boundaries which represent endogenously determined state values at which some action is taken. In their most simple form, with a single state variable in an in nite horizon situation, these problems involve solving a second order linear dierential equation of the form (S )V (S ) = f (S ) + (S )V 0 (S ) + 12 2 (S )V 00 (S ); (2) where this equation holds on some interval [a; b]. The usual boundary value problem takes both a and b as known and requires boundary conditions such as V (a) = ga and V (b) = gb to be met, where ga and gb are known values. As discussed in Section 6.8.3

CHAPTER 11. CONTINUOUS TIME - METHODS

420

Optimal Consumption Rule 0.2

0.18

0.16

0.14

C

0.12

0.1

0.08

0.06

0.04

0.02

0

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

1.6

1.8

2

K

Figure 11.5 Growth Model Residual Function

−4

1

x 10

0.8

0.6

0.4

0.2

0

−0.2

−0.4

−0.6

−0.8

−1

0

0.2

0.4

0.6

0.8

1

1.2

K

Figure 11.6

1.4

CHAPTER 11. CONTINUOUS TIME - METHODS

421

(page 164), one can approximate the solution using a function parameterized by an n-vector c, V (S ) (S )c, with c is chosen so that (S )c satis es (2) at n 2 points and satis es the boundary conditions. This yields n equations in the n unknown parameters. In the free boundary problem one or both of the boundary locations a and b are unknown and must be determined by satisfying some additional conditions. Suppose, for example that the location of the upper boundary, b, is unknown but is known to satisfy V 0 (b) = hb , where hb is a known constant. Thus there are three boundary conditions and one additional parameter, b, implying that one must solve n + 1 equation in n + 1 unknowns. If both boundaries are free, with V 0 (a) = ha , the problem becomes one with n + 2 equations and n + 2 parameters. A general strategy treats the solution interval [a; b] as known, nds an approximate solution on this interval using the dierential equations along with V (a) = ga and V (b) = gb . This allows the residual functions V 0 (a) ha and V 0 (b) hb to be de ned. These are passed to a root nding algorithm to determine the location of the free boundaries. A problem with this method, however, is that the approximating functions we use typically de ne the function in terms of its boundaries. Here, however, the interval on which the approximating function is to be de ned is unknown. Fortunately, this problem is easily addressed using a change in variable. To illustrate, consider rst the case in which b is unknown and, for simplicity, a = 0. De ne

y = S=b; so the dierential equation is de ned on y 2 [0; 1]. De ne the function v (y ) such that

V (S ) = v (y ): Using the chain rule it can be seen that

V 0 (S ) = v 0 (y ) and

dy v 0 (y ) = dS b

2 d2 y v 00 (y ) v 0 (y ) dy 0 00 00 + v (y ) 2 = : V (S ) = v (y ) dS dS b2

Inserting these de nitions into (2) demonstrates that the original problem is equivalent to (by ) 0 2 (by ) 00 (by )v (y ) = f (by ) + v (y ) + v (y ); (3) b 2b

CHAPTER 11. CONTINUOUS TIME - METHODS

422

for y 2 [0; 1], with

v (0) = ga ; v (1) = gb ;

(4)

v 0 (1) = bhb :

(5)

and An approximation, v (y ; b) = (y )c(b) can be found for arbitrary values of b using (3) and (4). The optimal choice of b can then be determined using a root nding algorithm to solve (5) using 0 (1)c(b) bhb = 0. More complicated problems will use a similar strategy, but may need to handle multiple value functions, multiple boundaries and/or boundaries that are curves or surfaces in the state space rather than isolated points. After illustrating the basic approach in the simplest of cases, we discuss ways to handle the complications. Before proceeding, we should point out that there is a vast and growing literature on free boundary problems. Our goal here is rather modest. We want to present a framework that can solve such problems, while building on the methods already developed in this book. As such, we are not attempting to provide the most eÆcient approaches to speci c problems, but rather ones that will provide useful answers without a lot of special coding. We also make no attempt to provide general solvers for these models but rather demonstrate by example how they can be solved.

Example: Asset Replacement

The in nite time horizon resetting problem with a single state variable is perhaps the simplest example of a free boundary problem to solve. Recall the asset replacement problem (page 359) in which an asset's productivity depends on its age, A, yielding a net return of Q(A)P . The Bellman equation is

V (A) = Q(A)P + V 0 (A); and applies on the range A 2 [0; A ], where A is the optimal replacement age. The asset can be replaced by paying a xed cost C. The boundary conditions are given by the value matching condition:

V (0) = V (A ) + C and the optimality (smooth pasting) condition:

V 0 (A ) = 0:

CHAPTER 11. CONTINUOUS TIME - METHODS

423

We rst transform the problem in terms of y = A=A , de ning v (y ) = V (A) and, therefore, v 0 (y ) = V 0 (A)A . Thus, the Bellman's equation can be expressed in terms of y :

v (y ) = Q(A y )P + v 0 (y )=A with boundary conditions v (0) v (1) = C and v 0 (1) = 0. We approximate the value function using v (y ) (y )c, for y 2 [0; 1], where c is an n-vector of coeÆcients. Then the Bellman's equation can be expressed as the residual function [(y ) 0 (y )=A]c = Q(A y )P: The Bellman equation is solved with equality at n 1 nodal points on [0; 1] simultaneously with the value-matching condition [(0) (1)]c = C . This is a linear system in c and hence can be solved directly. The system of n 1 collocation equations plus the value-matching condition provides a value of c that is conditional on the choice of the free boundary A . This choice is optimal when 0 (1)c(A ) = 0; this is a single equation in a single unknown and is easily solved using a nonlinear root nding algorithm. The method is demonstrated below for the case in which Q(A) = 1 + 0:05A 0:003A2 , P = 2, C = 3 and = 0:1. % DEMFB01 Asset Replacement Demonstration % Define parameters Q=inline('1+.05*A-.003*A.^2','A'); P=2; C=3; rho=0.1; % Define nodes and basis matrices n=15; cdef=fundefn('cheb',n-1,0,1); y=funnode(cdef); cdef=fundefn('cheb',n,0,1); rPhi0=funbas(cdef,y); Phi1=funbas(cdef,y,1); phiVM=funbas(cdef,0)-funbas(cdef,1); phiSP=funbas(cdef,1,1); % Call rootfinder Astar=100; % initial guess

% % % %

rho*phi(y) phi'(y) phi(0)-phi(1) for value matching phi'(1) for smooth pasting

CHAPTER 11. CONTINUOUS TIME - METHODS

424

Astar=broyden('ffb01',Astar,[],Q,P,C,y,rPhi0,Phi1,phiVM,phiSP); [e,c]=ffb01(Astar,Q,P,C,y,rPhi0,Phi1,phiVM,phiSP);

The nodal values of y are de ned as the standard Chebyshev nodes for degree n 1 rather then for degree n, to accommodate the addition of the value-matching condition. Furthermore, in addition to the basis matrices for the Bellman's equation (0 and 1 ), we precompute basis vectors (1 n) for the value-matching and smoothpasting conditions. The latter vectors are de ned as V M = (0) (1) and SP = 0 (1), respectively. After setting A to an initial guess of 100, broyden is called to solve for the optimal A . This requires that a separate residual function le be de ned: function [e,c]=ReplaceRes(Astar,Q,P,C,y,rPhi0,Phi1,phiVM,phiSP) B=[rPhi0-Phi1./Astar;phiVM]; b=[feval(Q,Astar*y)*P;C]; c=B\b; e=phiSP*c;

The residual function rst determines c(A ) by solving 2 3 2 3 (y1) 0 (y1 )=A Q(A y1 )P 6 7 6 7 6 7c = 6 7 4 (yn 1 ) 0 (yn 1 )=A 5 4 Q(A yn 1 )P 5 : (0) (1) C It then returns the value e = 0 (1)c(A ). It will also return the computed value of c, which can then be used to evaluate v (y ) and hence V (A). A plot of V (A) is shown in Figure 11.7. The value-matching condition appears in the gure as the dierence of C = 3 between V (0) and V (A ) (A 17:64). The smooth-pasting condition appears as the 0 slope of V at A .

Example: Investment Timing

In the previous example, a state variable was controlled in such a way as to keep it within a region of the state space bounded by a free boundary. In other problems, the state can wander outside of the region de ned by the free boundary but the problem is either known or has no meaning outside of the region. In such case the value function need only be approximated on the region of interest, using appropriate boundary conditions to de ne both the value function and the boundary itself. From a computational perspective such problems require no new considerations. To illustrate, consider a simple irreversible investment problem in which an investment of I will generate a return stream with present value of S , where S is described by the Ito process dS = (m S )Sdt + Sdz:

CHAPTER 11. CONTINUOUS TIME - METHODS

425

Asset Replacement Value Function 2.5

2

1.5

V

1

0.5

0

−0.5

−1

0

5

10

15

20

25

30

35

A

Figure 11.7 This process can be shown to have a mean reverting rate of return, with long-run mean m (see Appendix A, Section A.5.2). When the investment is made, it has net value S I . Prior to making the investment, however, the value of the right to make such an investment is V (S ), which is the solution to the following dierential equation 1 2 S 2 V 00 (S ) + (m S )SV 0 (S ) rV (S ) = 0; 2 where r is the risk-free interest rate. The lower boundary, S = 0, is associated with an investment value of 0, because once the process S goes to 0, it stays equal to 0 forever; hence V (0) = 0. The upper boundary is de ned as the value, S , at which investment actually occurs. At this value two conditions must be met. The value matching condition states that at S the value of investing and not investing are equal: V (S ) = S I . The smooth-pasting optimality condition requires that V 0 (S ) = 1. Applying the change of variables (z = S=S ) yields the equivalent problem 1 2 z 2 v 00 (z ) + (m zS )zv 0 (z ) rv (z ) = 0; (6) 2 on the interval [0; 1], with v (0) = 0, v (1) = S I , and v 0 (1) = S . To solve the problem we use an approximation of the form v (z ) (z )c. Chebyshev polynomials are a natural choice for this problem because v (z ) should be relatively smooth. The parameter vector c and the optimal investment trigger S are selected to satisfy (6)

CHAPTER 11. CONTINUOUS TIME - METHODS

426

at n 2 appropriately chosen nodes on the interior of [0; 1] (e.g., the roots of the order n 2 Chebyshev polynomial) and to satisfy the three boundary conditions. To make this a bit more explicit, given a guess of S , de ne the n 2 n matrix B Bij = 12 2 zi2 00j (zi ) + (m zi S )zi 0j (zi ) rj (zi ) for i = 1; : : : ; n 2. Then concatenate the basis functions for the boundary conditions to the bottom of this matrix: Bn 1;j = j (0) and Bn;j = j (1). This produces an n n matrix. The coeÆcients, conditional on the guess of S , are given by

c(S ) = B 1

0n 1 : S I

Given c we can de ne a residual function in one dimension to solve for S using the smooth-pasting condition:

e(S ) = S

0 (1)c(S ):

This approach works well in some cases but this example has one additional problem that must be addressed. For some parameter values, the approximate solution obtained becomes unstable, exhibiting wide oscillations at low values of z . The solution value for S , however, remains reasonable. The problem, therefore, seems due to the approximation having trouble satisfying the lower boundary. It can be shown that, for some parameter values, the derivative of v becomes unbounded as S approaches 0: lim V 0 (S ) = 1:

S &0

This type of behavior cannot be well approximated by polynomials, the derivatives of which (at every order) are bounded on a bounded domain. Fortunately this problem can be easily addressed by simply eliminating the lower boundary constraint and evaluating (6) at n 1 rather than n 2 nodes. This causes some error at very small values of z (or S ) but does not cause signi cant problems at higher values of z . The economic context of the problem places far more importance on the values of z near 1, which de nes the location of S and hence determines the optimal investment rule. Matlab code solving the problem using function approximation is displayed in Code Boxes 3 and 4. This particular problem has a partially known solution. It can be shown that the solution can be written as

V (S ) = AS H (S ; ; );

CHAPTER 11. CONTINUOUS TIME - METHODS Code Box 11.3: Solution Function for Optimal Investment Problem % % % % % % % % % % % % % %

OPTINVEST Solves the optimal investment problem with mean-reverting return Finds the optimal investment rule for a project that has return process dS=alpha(m-S)dt + sigma*SdW USAGE [e,vstar,V,dV]=OptInvest(v,r,alpha,m,sigma,I,n); INPUTS r : interest rate alpha, m, sigma : return process paramters I : fixed investment cost n : number of nodes used for Chebyshev collocation OUTPUTS Sstar : the trigger return level (invest if S>=Sstar) c : coefficients for value function approximation fspace : function family definition structure

function [Sstar,c,fspace]=optinvest(r,alpha,m,sigma,I,n) if nargin 0. Denoting these regions Sl and Su , the value function must satisfy V (g0 + g1 xl ) VS 12 2 VSS (f0 + f1 xl ) = 0 on Sl V (g0 + g1 xu ) VS 21 2 VSS (f0 + f1 xu ) = 0 on Su and value-matching and smooth pasting at points where f1 = g1 VS (plus any additional boundary conditions at S = a and S = b). For concreteness suppose that there is a single point S such that f1 (S ) = g1 (S )VS (S ) and that Sl consists of points less than S and Su of points greater than S (usually the context of the problem will suÆce to determine the general nature of these sets). The numerical problem is to nd this S and the value function V (S ). To solve this we will use two functions, one on Sl , the other on Su that approximately satisfy the Bellman equations and the boundary conditions and also that, for any guess of S , satisfy value matching and smooth pasting at this guess.

CHAPTER 11. CONTINUOUS TIME - METHODS

431

Let the approximations be de ned by i(S )ci , for i = l; u and de ne the function Bi (S ) as Bi (S ) = i (S ) [g0 (S ) + g1 (S )xi ] 0i (S ) 21 2 (S )00i (S ) The ci can be determined by making

Bi (S )ci

[f0 (S ) + f1 (S )xi ] = 0

at a selected set of collocation nodes, together with the boundary conditions and

l (S )cl 0l (S )cl

u (S )cu = 0 (value matching) 0u (S )cu = 0 (smooth pasting).

Determining the ci for some guess of S , therefore, amounts to solving a system of linear equations (assuming any additional boundary conditions are linear in V ). Once the ci are determined, the residual

r(S ) = f1 (S ) + g1 (S )0l (S )cl can be computed. The optimal value of S is then chosen to make r(S ) = 0.

Example: Optimal Fish Harvest

In the optimal sh harvesting problem (page 345) the value function solves the coupled PDE (1 S=K )VS + 12 2 S 2 VSS for S < S V = S P HS + (S (1 S=K ) HS ) VS + 21 2 S 2 VSS for S > S with S determined by P = VS (S ) and continuity of V and VS at S . For simplicity, we impose the scale normalization P = K = 1 (by choosing units for money and sh quantity). To solve this problem we rst transform the state variable by setting

y = ln(S ) ln(S ): This transformation has two eects: rst, it simpli es the dierential equation by making the coeÆcients constant or linear in S , and, second, it places the boundary between the two solution functions at y = 0. The transformation necessitates rewriting the value function in terms of y , say as v (y ). The transformation implies that

S = S ey ; SVS (S ) = vy (y )

CHAPTER 11. CONTINUOUS TIME - METHODS

432

and

S 2 VSS (S ) = vyy (y ) vy (y ): The transformed Bellman equation with the scale normalizations is 1 2 1 2 vy y v y 0 y 2 yy 2

It will be useful to rewrite this to isolate the S terms 1 2 vy 1 2 vyy + S ey vy = 0 v for y < 0 21 2 2 1 2 y y v 2 H vy 2 vyy + S e vy = S He for y > 0 : The two functions are coupled by imposing continuity of v and vy at y = 0. Technically there are also boundary conditions as y goes to 1 and 1 , but we will ignore these for the time being. Now let's approximate the two functions using l (y )cl and u(y )cu, where the i are ni -element basis vectors and the ci are the coeÆcients associated with these bases. For a speci c guess of S , the Bellman equation can be written

Dl (y )cl + S [ey 0l (y )] cl = 0 for y < 0 0 y 0 y [Du (y ) + Hu(y )] cu + S [e u (y )] cu = S He for y > 0 : where Di (y ) = i (y ) 12 2 0i(y ) 21 2 00i (y ). Evaluating this expression at a set of nodes, yl 2 [a; 0], and yu 2 [0; b], where a and b are arbitrary upper and lower bounds, with a < 0 and b > 0. The boundary conditions at y = 0 for a given S are l (0)cl

u (0)cu = 0

0l (0)cl

0u (0)cu = 0:

and If we choose yl and yu to have nl 1 and nu 1 elements, respectively, this yields the nl + nu system of linear equations: 02 B6 B6 @4

Bl 0 l (0) 0l (0)

0 Bu u (0) 0u (0)

which has the form (B + S D)c = S f:

3

2

7 6 7 + S 6 5 4

Dl 0 0 Du 0 0 0 0

31 7C 7C 5A

cl cu

2 6

=6 4

0 S Heyu 0 0

3

7 7: 5

CHAPTER 11. CONTINUOUS TIME - METHODS

433

The unknowns here are S (a scalar) and c (an n0 + n1 vector). The matrices B , D and f do not depend on either S or c and therefore can be prede ned. Furthermore, this system of equations is linear in c and hence can be easily solved for a given S , thereby obtaining an approximation to the value function, v . We can therefore view c as a function of S : c(S ) = (B + S D) 1 S f: (7) The optimal S is then determined by solving the (non-linear) equation

S

0l (0)cl (S ) = 0:

(8)

A Matlab implementation is displayed in Code Box 5. The procedure fishh de nes the approximating functions and precomputes the matrices needed to evaluate (7) and (8). The actual evaluation of these equations is performed by the auxiliary procedure fishhr displayed in Code Box 6, which is passed to the root nding algorithm broyden by fishh. A script le which computes and plots results is given in Code Box 7; this was used to produce Figures 11.10-11.13. Fish Harvesting: Value Function 1.4

1.2

1

V

0.8

0.6

0.4

0.2

0

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

S

Figure 11.10 The procedure fishh allows additional constraints to be imposed at the lower and upper bounds of the approximating interval (a and b). By setting nbl to 2, the additional constraint that vl00 (a) = 0 is imposed. Similarly, by setting nbu to 2, the additional constraint that vu00 (b) = 0 is imposed. Although neither is necessary to

CHAPTER 11. CONTINUOUS TIME - METHODS Code Box 11.5: Collocation File for Fish Harvesting Problem % FISHH Solution function for fish harvesting problem % See DEMFB03 for demonstration function [sstar,cl,cdefl,cu,cdefu]=fishh(rho,alpha,sigma,H) % Set up basis matrices a=log(0.005); % lower bound b=log(10); % upper bound nl=25; nu=15; % number of nodes for functions nbl=2; nbu=1; % number of boundary constraints on functions cdefl=fundef({'cheb',nl-nbl,a,0}); cdefu=fundef({'cheb',nu-nbu,0,b}); yl=funnode(cdefl); yu=funnode(cdefu); cdefl=fundef({'cheb',nl,a,0}); cdefu=fundef({'cheb',nu,0,b}); eyl=exp(yl); eyu=exp(yu); Dl=funbas(cdefl,yl,1); Du=funbas(cdefu,yu,1); B=rho*funbas(cdefl,yl)... -(alpha-0.5*sigma.^2)*Dl... -(0.5*sigma.^2)*funbas(cdefl,yl,2); temp=rho*funbas(cdefu,yu)... -(alpha-0.5*sigma.^2-H)*Du... -(0.5*sigma.^2)*funbas(cdefu,yu,2); B=[B zeros(nl-nbl,nu);zeros(nu-nbu,nl) temp]; % Add boundary constraints B=[B; ... funbas(cdefl,0) -funbas(cdefu,0); ... % V continuous at y=0 funbas(cdefl,0,1) -funbas(cdefu,0,1)]; % Vx continuous at y=0 if nbl==2; B=[B;funbas(cdefl,a,2) zeros(1,nu)]; end % lower boundary if nbu==2; B=[B;zeros(1,nl) funbas(cdefu,b,2)]; end % upper boundary % Basis for Vy D=[alpha*eyl*ones(1,nl).*Dl zeros(nl-nbl,nu); ... zeros(nu-nbu,nl) alpha*eyu*ones(1,nu).*Du; ... zeros(nbl+nbu,nl+nu)]; % RHS of DE residual function f=[zeros(nl-nbl,1);H*eyu;zeros(nbl+nbu,1)]; % Basis for residual function (Vy(0)=S*) phil10=funbas(cdefl,0,1); % find the cutoff stock level sstar=broyden('fishhr',0.5*(1-rho/alpha),[],B,D,f,phil10,nl); % Break apart the coefficient vector and create structures to return c=(B+sstar*D)\(sstar*f); cl=c(1:nl); cu=c(nl+1:end);

434

CHAPTER 11. CONTINUOUS TIME - METHODS

435

Code Box 11.6: Residual File for Fish Harvesting Problem % FISHHR residual function for fish harvesting problem % Used by FISHH function [e,c]=fishhr(sstar,B,D,f,phil10,nl) c=(B+sstar*D)\(sstar*f); e=sstar-phil10*c(1:nl);

Fish Harvesting: Marginal Value Function 5

4.5

4

3.5

V’

3

2.5

2

1.5

1

0.5

0

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

S

Figure 11.11 obtain useful results, the former is eective in enforcing sensible behavior in the value function and its derivatives for low stock levels. Figure 11.10 illustrates a numerical approximation to the value function for the problem with = 0:05, = 0:1, = 0:2 and H = 1. Figures 11.11 and 11.12 display the rst and second derivatives of the value function. S is indicated in these plots with an \*". Notice that the value function is continuous up to its second derivative, but that V 00 exhibits a kink at S = S . This indicates why it is a good idea to break the value function apart and approximate it on each region separately, and pasting the two approximations together at the cut-o stock level. It also allows us to use the high degree of accuracy that polynomial approximations provide. Evidence of the quality of the approximation is provided by the plot of the residual function, shown

CHAPTER 11. CONTINUOUS TIME - METHODS Code Box 11.7: Script File for Fish Harvesting Problem % DEMFB03 Demo for fish harvesting problem rho=0.05; alpha=0.1; sigma=0.2; H=1; [sstar,cl,cdefl,cu,cdefu]=fishh(rho,alpha,sigma,H); % CODE TO GENERATE PLOTS a=cdefl.a; b=cdefu.b; N=101; yl=linspace(a,0,N)'; yu=linspace(0,log(1/sstar),N)'; s=sstar*exp([yl;yu]); figure(1) v=[funeval(cl,cdefl,yl);funeval(cu,cdefu,yu)]; plot(s,v,sstar,v(N),'*'); title('Fish Harvesting: Value Function'); xlabel('S'); ylabel('V'); figure(2) v1=[funeval(cl,cdefl,yl,1);funeval(cu,cdefu,yu,1)]; plot(s,v1./s,sstar,v1(N)./sstar,'*'); title('Fish Harvesting: Marginal Value Function'); xlabel('S'); ylabel('V'''); axis([0 1 0 5]); figure(3) v2=[funeval(cl,cdefl,yl,2);funeval(cu,cdefu,yu,2)]-v1; plot(s,v2./(s.^2),sstar,v2(N)./sstar.^2,'*'); title('Fish Harvesting: Curvature of Value Function'); xlabel('S'); ylabel('V"'); axis([0 1 -1 0]); figure(4) e=rho*v-(alpha-alpha*s).*v1-(0.5*sigma.^2)*v2; e=e+(H*(v1-s)).*(s>=sstar); plot([yl;yu],e) title('Fish Harvesting: Residual Function'); xlabel('y') ylabel('e') prtfigs(mfilename)

436

CHAPTER 11. CONTINUOUS TIME - METHODS

437

Fish Harvesting: Curvature of Value Function 0

−0.1

−0.2

−0.3

V"

−0.4

−0.5

−0.6

−0.7

−0.8

−0.9

−1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

S

Figure 11.12 Fish Harvesting: Residual Function

−9

1

x 10

0

−1

−2

e

−3

−4

−5

−6

−7

−8

−9 −6

−5

−4

−3

−2

−1

0

1

2

y

Figure 11.13 in Figure 11.13. One could, of course, approximate the entire value function with, say, a cubic spline, so long as you ensured that y=0 was a node (see problem 7 on

CHAPTER 11. CONTINUOUS TIME - METHODS

438

page 454). This would avoid the need to de ne two functions and thus has something to recommend it. However, it would require more nodes to achieve the same level of accuracy.

Example: Entry-Exit

In stochastic bang-bang problems, the state space is divided into a region in which the control is set to it highest possible value and another region where it is set to its lowest possible value. In other problems with transitional boundaries, the state space may not be partitioned in this way. Instead, multiple free boundaries may need to be determined. In the entry-exit problem (page 368), a rm is either active or inactive. The two value functions satisfy V a = P C + (P )VPa + 2 (P )VPaP for P 2 [Pl ; 1) : (9) V i = (P )VPi + 2 (P )VPi P for P 2 [0; Ph] with

and

V i (Ph ) = V a (Ph ) I V i (Pl ) E = V a (Pl ) VPi (Pl ) = VPa (Pl ) VPi (Ph ) = VPa (Ph ):

When P is a geometric Brownian motion process, i.e.,

dP = P dt + P dz; the solution is known for arbitrary levels of Pl and Ph. The general form of the solution is

V a = Aa1 P 1 + Aa2 P 2 + P=( ) C= V i = Ai1 P 1 + Ai2 P 2 where the four A terms will be pinned down by the boundary conditions and the i solve 1 2 ( 1) + = 0: 2 It can be shown that, for > 0, one of the is negative and the other is greater than one; de ne 1 > 1 and 2 < 0. (It is easy to verify that these solutions solve (9)). Two of the unknown constants can be eliminated by considering the boundary conditions at P = 0 and P = 1. At P = 0 only V i is de ned and the geometric

CHAPTER 11. CONTINUOUS TIME - METHODS

439

Brownian motion process is absorbed; hence V i (0) = 0, which requires that Ai2 = 0. For large P , only V a is de ned and the probability of deactivation becomes vanishingly small; hence the value function would approach P=( ) C=, requiring that Aa1 = 0. We still have two unknown constants to determine, Ai1 and Aa2 (we shall henceforth refer to these as A1 and A2 , as there is no possible confusion concerning which function they belong to). The value matching conditions require that,

V a (Ph ) I = A2 Ph 2 + Ph =( ) C= I = A1 Ph 1 = V i (Ph ) and

V a (Pl ) = A2 Pl 2 + Pl =( ) C= = A1 Pl 1

E = V i (Pl ) E:

The optimality conditions on Pl and Ph are that the derivatives of V a and V i are equal at the two boundary locations: V a (P ) = 2 A2 P 2 1 + 1=( ) = 1 A1 P 1 1 = V i (P ) P

P

at P = Pl and P = Ph . Taken together, the value matching and smooth pasting conditions yield a system of four equations in four unknowns, A1 , A2 , Pl and Ph . This is a simple root- nding problem (the toolbox function entex2.m solves this problem). For general processes, we will have to approximate the value functions. We rst de ne two transformed variables that will make the boundaries of the approximating functions simple. Let y a = P=Pl and y i = P=Ph. The value functions can then be approximated using V j (P ) = v j (y j ) j (y j )cj for j = a; i, with v a de ned on [1; ya] and v i on [0; 1] (the choice of ya, the upper bound on y a is discussed below). Given the linearity of the Bellman's Equation and the boundary conditions, it will again be the case that the coeÆcient vectors ci and ca , for given values of the boundary points, satisfy a system of linear equations. Our strategy will be write a procedure that is passed trial values of P = [Pl ; Ph], computes ci and ca for these free boundary points and then returns the dierence in marginal value functions at the two boundary points: 2

3

vyi (1) vya (Ph=Pl ) + 6 7 Ph Pl 6 7 r(P ) = 6 i 7: a 4 vy (Pl =Ph ) vy (1) 5 Ph Pl At the optimal choice of P , r(P ) = 0. The procedure that returns the residuals can be passed to a root nding algorithm to determine P .

CHAPTER 11. CONTINUOUS TIME - METHODS

440

To see how the coeÆcient values can be determined, rst write the Bellman's equation in terms of the y j and v j : i (y i ) (Phy i )vyi (y i) 2 (Phy i)vyy i i v (y ) = 0: Ph 2Ph2 and

(Pl y a )vya (y a) Pl

v a (y a)

a (y a ) 2 (Pl y a )vyy = Pl y a 2 2Pl

C:

Suppose the approximating functions have degree ni and na , respectively. We will evaluate the Bellman's Equation at ni 2 values of y i and na 2 values of y a. The addition of the two end point conditions (v i (0) = 0 and vyy (y a ) = 0) and the two value-matching conditions yields a system of ni + na linear equations in the same number of unknowns. Speci cally, the linear system is 2 6 6 6 6 6 6 4

i (0) 0 Di 0 i (1) (Ph =Pl )a (Ph=Pl ) i (Pl =Ph) (Pl =Ph) a (1) 0 Da 0 a 00 (y a)

where

Di = i0

(PhY i ) i 1 Ph

2 (PhY i ) i 2 2Ph2

Da

(Pl Y a ) a 1 Pl

2 (Pl Y a ) i 2 : 2Pl2

and = a 0

3

2

7 7 7 ci 7 7 ca = 7 5

6 6 6 6 6 6 4

0 0 I E C1 0

3

2

7 6 7 6 7 6 7 + Pl 6 7 6 7 6 5 4

0 0 0 0 Ya 0

3

7 7 7 7; 7 7 5

The system is of the form Bc = b0 + Pl b1 , where b0 and b1 do not depend on Pl and Ph and hence can be precomputed. Furthermore, all of the basis matrices used in B except for i(Pl =Ph ) and a (Ph=Pl ) can be precomputed. The drift and diusion terms and are evaluated at points that may depend on Pl and Ph and hence must be computed each time the residual function is evaluated. The user must supply a speci c function to evaluate these terms. Once the drift, diusion and discount rates are known, the Di and Da matrices can be computed and the matrix B can be formed.

CHAPTER 11. CONTINUOUS TIME - METHODS

441

The residuals themselves can be written in the form Rc: # " Ph a 0 (P =P ) i i 0 (1) c : h l Pl r(P ) = Pl i 0 0 a ca (1) Ph (Pl =Ph ) The procedure for computing the residuals is found in the toolbox function entexres. Most of the inputs to this function are precomputed basis and other parameter matrices, including b0 , b1 and elements of B and R. A procedure that solves the entry/exit problem is provided in the toolbox function entex. This procedure takes as inputs the problem parameters and approximation information. It then precomputes basis matrices and the other coeÆcients used by the residual function entexres, and passes entexres to the root nding algorithm broyden to nd Pl and Ph . entex returns the value of P , the value function coeÆcient vectors (ci and ca) and their associated function de nition structures (fspacei and fspacea). In addition, a procedure must be de ned that accepts values of P (along with additional parameters as needed) and returns values of , and for a speci ed model.6 An example of such a le for geometric Brownian motion with a constant discount rate is given by: function [r,m,s]=gbm(P,rho,mu,sigma) n=size(P,1); r=rho+zeros(n,1); m=mu*P; s=sigma*P;

The le demfb04.m demonstrates the use of this approach for the geometric Brownian motion case and compares the resulting solution to the (essentially) closed form solution discussed above. Figure 11.14 shows the value functions for the inactive and active states. Figures 11.15 and 11.16 show, respectively, the approximation errors and the residual functions for the collocation approximation relative to the \closed form" solution. An important point to note about this problem concerns the choice of the upper bound for v a . Even though the optimal boundary values are Pl = 0:41815 and Ph = 2:1996, it is necessary to set the upper bound for y a to a rather large number. Intuitively the reason for this stems from the non-stationarity of the geometric Brownian motion process coupled with the in nite time horizon. Together, these imply that the probability of getting a large value of P , even when starting at a relatively low current value, is non-negligible over time horizons that contribute to the present value. We should expect, therefore, that relatively larger values of the upper bound will be needed as shrinks. 6 Although applications of this model generally treat as a xed constant, the approach taken

here provides the exibility to make it depend on P if desired.

CHAPTER 11. CONTINUOUS TIME - METHODS

442

Value Functions for Entry/Exit Problem 50 Inactive Active

40

30

20

10

0

−10

0

0.5

1

1.5

2

2.5

3

2.5

3

P

Figure 11.14

Errors in Approximate Value Functions

−5

x 10

8

6

4

2

0

0

0.5

1

1.5

P

Figure 11.15

2

CHAPTER 11. CONTINUOUS TIME - METHODS Residual Functions

−5

4

443

x 10

3

2

1

0

−1

−2

−3

0

0.5

1

1.5

2

2.5

3

P

Figure 11.16

11.3.2 Finite Horizon Problems Thus far we have discussed single state, in nite horizon free boundary problems. Somewhat greater diÆculties arise in nite horizon problems. The location of the free boundaries in such problems are not isolated points but are functions of time. For example, when an American put option is near to expiration, it is optimal to exercise it at higher prices of the underlying asset than when it is far from expiration. In nite time problems, we know the value function at the terminal date. This means that we can employ evolutionary methods that work their way backwards in time from the end point. We present two ways of handling such problems. The rst implicitly assumes that the control can be exercised only at discrete points in time. Although simple, this method approximates the free boundary with a step function. To obtain a smoother approximation of the boundary, without requiring a dense set of state variable nodes, we use an explicit nite dierence approximation for the time derivative, while simultaneously solving for the free boundary. The two approaches are described in the following two examples.

Example: Pricing American Options

In Section 11.1 we solved problems of valuing European style options using the extended method of lines, which approximates the value of an option using V (S; )

CHAPTER 11. CONTINUOUS TIME - METHODS

444

(S )c( ). By evaluating (S ) at a set of n nodal values, we derived a dierential equation of the form c0 ( ) = 1 Bc( ): which is solved by

c( + ) = Ac( ); where A = exp( 1 B ) and c(0) equals the terminal payout, R(S ), evaluated at the nodal state values. The most commonly used strategy for pricing American style options solves the closely related problem of determining the value of an option that can be exercised only at a discrete set of dates. Clearly, as the time between dates shrinks, the value of this option converges to the value of one that can be exercised at any time before expiration. Between exercise dates, the option is eectively European and hence can be approximated using7 c^( + ) = Ac( ): The value of (S )^c( + ) can then be compared to the value of immediate exercise, R(S ), and the value function set to the maximum of the two:

V (S; + ) max(R(S ); (S )^c( + )): The coeÆcient vector is updated to approximate this function, i.e., c( + ) = 1 max(R; ^c( + )): The function finsolve described in Section 11.1 requires only minor modi cation to implement this approach to pricing American style assets. First, add an additional eld to the model variable, model.american, which takes values of 0 or 1. Then, change the main iteration loop to the following: for i=2:N+1 c(:,i)=A*c(:,i-1); if model.american c(:,i)=iPhi*max(V0,Phi*c(:,i)); end end

7 Commonly used nite dierence and binomial tree methods discretize the time derivatives,

replacing c0 ( + ) with c( + ) c( ) =.

CHAPTER 11. CONTINUOUS TIME - METHODS

445

The le demfin04.m demonstrates the use of this feature and produces Figures 11.17-11.19. It closely follows the code described on page 406, but two dierences are noteworthy. First, a closed form solution does not exist for the American put option, even when the underlying price is geometric Brownian motion. To assess the quality of the approximation, we have computed a dierent approximation due to Baron-Adesi and Whaley (see bibliographic notes), which is implemented in the toolbox function baw. The dierences between the approximations are plotted in Figure 11.18. The other distinction lies in the determination of the optimal exercise boundary, which is plotted in Figure 11.19. This is obtained by determining which nodal points that are less than or equal to K are associated with an option that is equal to its intrinsic value of K S . The exercise boundary is taken to be the highest such nodal value of S . This provides a step function approximation to the early exercise boundary. Unfortunately, this approximation can only be re ned by increasing the number of nodal values so they are fairly dense in the region where early exercise may occur (just below the strike price). Such a dense set of nodal values is rarely needed to improve the accuracy of the value function, however. On the positive side, the method of nding an approximation to the value of an option with a discrete set of exercise dates has two overriding advantages. It is very simple and it extends in an obvious way to multiple state situations. On its negative side, it does not produce a smooth representation of the optimal exercise boundary. If a smooth approximation is needed or desired, the approach described in the next example can be used.

Example: Sequential Learning

In the sequential learning problem on page 372, the cumulative production, Q, acts like a time variable. There is a known terminal condition at Q = Qm and the solution can be obtained in an evolutionary fashion by working backwards in Q from Qm . Identifying the location of the free boundary, however, is somewhat more involved than with the American option pricing problem. Recall that the problem involved solving rV = P c(Q) + VQ + (r Æ )P VP + 12 2 P 2 VP P on [P (Q); 1) [0; Qm ], where P (Q) is a free boundary to be determined. The boundary conditions are8 P (Q)VP (P (Q); Q) = V (P (Q); Q) and P (Q)VP P (P (Q); Q) = ( 1)VP (P (Q); Q); 8 We ignore the limiting condition as P ! 1.

CHAPTER 11. CONTINUOUS TIME - METHODS

446

Put Option Premium 1 American European Optimal Exercise Boundary

0.9

0.8

0.7

V(S)

0.6

0.5

0.4

0.3

0.2

0.1

0

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

1.6

1.8

2

S

Figure 11.17 Put Option Approximation Errors

−4

6

x 10

4

2

0

−2

−4

−6

−8

0

0.2

0.4

0.6

0.8

1

1.2

S

Figure 11.18 where is the positive solution to 1 2 ( 1) + (r Æ ) r = 0: 2

1.4

CHAPTER 11. CONTINUOUS TIME - METHODS

447

Early Exercise Boundary 1

0.98

0.96

0.94

S

*

0.92

0.9

0.88

0.86

0.84

0.82

0.8

0

0.1

0.2

0.3

0.4

0.5

τ

0.6

0.7

0.8

0.9

1

Figure 11.19 Also a terminal condition at Q = Qm is known and, for states below the free boundary, the value function is known up to a constant:

V (P; Q) = A(Q)P : The diÆculty with free boundaries is the unknown shape of the space over which the dierential equation must hold. To get around this problem, we use a transformation method that regularizes the boundary; speci cally,

y = ln(P ) ln(P (Q)) with v (y; Q) = V (P; Q). The PDE must be solved for values of P on [P (Q); 1), which translates into values on y on [0; 1) (in practice we will truncate y ). Given this transformation it is straightforward to verify the following relationships between the original and the transformed problem:

vy (y; Q) = P VP (P; Q) vyy vy = P 2 VP P (P; Q) and

VQ = vQ

P 0 (Q) v: P (Q) y

CHAPTER 11. CONTINUOUS TIME - METHODS

448

Substituting these expressions into the Bellman equation and the boundary conditions yields: rv = P ey C (Q) + vQ + (r Æ 21 2 P 0 =P )vy + 21 2 vyy ;

vy (0; Q) v (0; Q) = 0 and

vyy (0; Q) vy (0; Q) = 0: We can approximate v (y; Q) with the function (y )c(Q), where c(Q) : [0; Qm ] !

Qm beta1=0.5-(r-delta)/sigma.^2 + sqrt((0.5-(r-delta)/sigma.^2).^2+2*r/sigma.^2); beta2=0.5-(r-delta)/sigma.^2 - sqrt((0.5-(r-delta)/sigma.^2).^2+2*r/sigma.^2); % Impose value matching and smooth pasting at P=cbar temp=[ cbar.^beta1 -(cbar.^beta2) ; ... beta1*cbar.^(beta1-1) -beta2*cbar.^(beta2-1)]; temp=temp\[cbar/delta-cbar/r ; 1/delta]; A1=temp(1); A2=temp(2); % Define the approximating functions and nodal values Delta=Qm/N; Q=linspace(0,Qm,N+1); cdef=fundef({'cheb',n-1,0,hi}); y=funnode(cdef); cdef=fundef({'cheb',n,0,hi}); % Set up collocation matrices D=funbasx(cdef,y,[0;1;2]); Phi0=D.vals{1}; Phi1=D.vals{2}; D=r*Phi0-(r-delta-0.5*sigma^2)*Phi1-0.5*sigma.^2*D.vals{3}; phi=funbasx(cdef,0,[0;1;2]); B=[ Phi0 zeros(n-1,1); phi.vals{2}-beta1*phi.vals{1} 0 ; phi.vals{3}-(beta1)*phi.vals{2} 0 ]; A=[Phi0-Phi1-Delta*D Delta*exp(y); zeros(2,n+1) ]; % Compute cost function values gamma=log(C/cbar)/Qm; Cost=Delta*cbar*exp(gamma*(Qm-Q)); Cfactor=[ones(n-1,1);0;0]; % Initialize at terminal boundary p=[cbar;cbar*exp(y)]; c=zeros(n+1,N+1); c(1:n,N+1)=[phi.vals{1};Phi0]\(A2*p.^beta2+p/delta-cbar/r); c(end,N+1)=cbar; % Iterate backwards in Q for i=N+1:-1:2 B(1:n-1,end)=Phi1*c(1:n,i)/(-c(end,i)); c(:,i-1)=B\(A*c(:,i)-Cost(i)*Cfactor); end % Extract Pstar pstar=c(end,:)'; c(end,:)=[];

CHAPTER 11. CONTINUOUS TIME - METHODS

451

Sequential Learning: Value Function 500

450

400

350 Q=Q =20

V(P,Q)

300

m

250

Q=0

200

150

100

50

0

0

5

10

15

20

25

P

Figure 11.20

30

35

40

CHAPTER 11. CONTINUOUS TIME - METHODS

452

Exercises 11.1. A Generalized Term Structure Model A one factor model that encompasses many term-structure models appearing in the literature is based on the process for the short interest rate (under the risk neutral measure) given by:

dr = [1 + 2 r + 3 r log(r)]dt + [ 1 + 2 r] dW: State the PDE satis ed by a zero-coupon bond maturing in periods, along with the associated boundary condition. Write a function analogous to cirbond on p. 400 for this case. The function should have the following input/output format: c=Bond(fspace,alpha1,alpha2,alpha3,beta1,beta2,nu,tau)

Notice that this function returns the coeÆcients of a function of r de ned by the function de nition structure variable fspace. Verify that your function reproduces correctly the results obtained using CIRBOND, which is a special case of the generalized model. To do this, use the parameters = 30, = :1, = :05 and = 0:2. 11.2. Bond Option Pricing Consider an option that gives its holder the right, in o periods, to buy a bond that pays 1 unit of account b periods after the option expires, at a strike price of K . Using the model for the short rate described in the previous exercise, write a Matlab function that computes the value of such an option.The function should have the following input/output format:

c=BondOption(fspace,alpha1,alpha2,alpha3,beta1,beta2,nu,K,tauo,taub)

Determine the value of an option for the CIR model with K = 1, o = 1, b = 0:25, = :1, = :05 and = 0:2.

11.3. Neoclassical Optimal Growth Use scsolve to solve the neoclassical optimal growth model, discussed beginning on page 416: Z 1

max e t U (C )dt; C (t) 0 subject to the state transition function K 0 = q (K )

q (K ) = ln(K + 1) ÆK

C , where

CHAPTER 11. CONTINUOUS TIME - METHODS

453

and

U (C ) = (C 1

1)=(1 )

using the parameter values = 0:05, Æ = 0:02, = 2( + Æ ) = 0:14 and = 0:5. Compare your results to those obtained using the Euler equation approach. 11.4. Cow Replacement Convert the discrete time and state cow replacement problem on page ?? to a continuous time and continuous state problem and solve the problem. 11.5. Asset Replacement with Stochastic Quality In the asset replacement problem discussed on pages 359 and 422, the productivity of the asset depended only on its age. Suppose instead that the output of the machine is governed by q

dQ = Qdt + Q(Q Q )dz; where Q is the productivity of a new asset. Notice that the process is singular at Q = 0 and Q = Q . At Q = Q the drift rate is negative, so productivity is decreasing, whereas Q = 0 is an absorbing barrier. The income ow rate from the asset is P Q, for some constant P , the replacement cost of the asset is C and the discount rate is . Intuitively, there is some value Q = at which it is optimal to replace the asset. a) State the Bellman's equation and boundary conditions for this problem (be sure to consider what happens if = 0). What is the value function for Q < ? b) Write a Matlab le that has the following input/output format: [beta,c,fspace]=Replace(mu,sigma,rho,P,C,Qbar,n)

where c and fspace are the coeÆcients and the function de nition structure de ning the value function on the interval [ ; Q ], and n is the degree of the approximation. You may assume an interior solution ( > 0). c) Call the function you wrote with the line [beta,c,fspace]=Replace(0.02,0.05,0.1,1,2,1,50);

Plot the value function on the interval [0; Q ] (not on [ ; Q ]) and mark the point ( ; V ( )) with a \*". 11.6. Timber Harvesting

CHAPTER 11. CONTINUOUS TIME - METHODS

454

a) Solve the timber harvesting example from page 360 with the parameters = 0:1, m = 1, 0, P = 1, C = 0:15 and = 0:08. Plot the value function, indicating the location of the free boundary with an \*". b) Resolve the problem under the assumption that the land will be abandoned and the replanting cost will not be incurred. Add this result to the plot generated for part (a). 11.7. Fish Harvesting Using Cubic Splines Modify the code in the sh harvesting example (page 431) to compute the value function using a single cubic spline approximation with a double breakpoint at y = 0. Plot the value function and its 1st and 2nd derivatives as functions of S (not y ) and the residual function for the dierential equation as a function of y . 11.8. Fish Harvesting - Unbounded Eort a) Consider the sh harvesting problem (page 431) under the assumption that the control is not bounded (H ! 1), making the problem of the barrier control type. Write a program to solve for the value function and the optimal stock level that triggers harvesting. Use the same parameter values as in the bounded eort model ( = 0:1, = 0:05, = 0:2). b) Compute and plot the optimal trigger stock level as a function of the maximal harvest rate (H ), using the above values for other parameters. Demonstrate that the limiting value as H ! 1 computed in part (a) is correct. 11.9. Cost Uncertainty Consider the problem of determining an investment strategy when a project takes time to complete and completion costs are uncertain. The cost uncertainty takes two forms. The rst, technical uncertainty, arises because of unforeseen technical problems that develop as the project progresses. Technical uncertainty is assumed to be diversi able and hence the market price of risk is zero. The second type of uncertainty is factor cost uncertainty, which is assumed to have market price of risk . De ne K to be the expected remaining cost to complete a project that is worth V upon completion. The dynamics of K are given by

p

dK = Idt + IKdz + Kdw; where I , the control, is the current investment rate and dz and dw are independent Weiner processes. The project cannot be completed immediately because I is constrained by 0 I k. Given the assumptions about the market price

CHAPTER 11. CONTINUOUS TIME - METHODS

455

of risk, we convert the K process to its risk neutral form and use the risk free interest rate, r, to discount the future. Thus we act \as if"

p

dK = (I + K )dt + IKdz + Kdw and solve

F (K ) = max E e I (t)

rT V

Z T

0

e

rt I (t)dt

;

where T is the (uncertain) completion time given by K (T ) = 0. The Bellman equation for this problem is

rF = max I I

(I + K )F 0 (K ) + 21 ( 2 IK + 2 K 2 )F 00 (K );

with boundary conditions

F (0) = V F (1) = 0: The optimal control is of the bang-bang type:

I=

0 if K > K k if K < K

where K solves 1 2 00 2 KF (K )

F 0 (K ) 1 = 0:

Notice that technical uncertainty increases with the level of investment. This is a case in which the variance of the process is in uenced by the control. Although we have not dealt with this explicitly, it raises no new problems. a) Solve F up to an unknown constant for K > K . b) Use the result in (a) to obtain a boundary condition at K = K by utilizing the continuity of F and F 0 . c) Solve the deterministic problem ( = = 0) and show that K = k ln(1 + rV=k)=r. d) Write the Bellman equation for K < K and transform it from the domain [0; K ] to [0; 1] using z = K=K : Also transform the boundary conditions.

CHAPTER 11. CONTINUOUS TIME - METHODS

456

e) Write a computer program using Chebyshev collocation to solve for F and K using the following parameters:

V r k

= = = = = =

10 0:05 0 2 0:5 0:25:

g) What alterations are needed to handle the case when = 0 and why are they needed. 11.10. Investment with Time-to-Build Constraints Consider an investment project which, upon completion, will have a random value V and will generate a return ow of ÆV . The value of the completed project evolves, under the risk neutral measure, according to

dV = (r

Æ )V dt + V dz;

where r is the risk free rate of return. The amount of investment needed to complete the project is K , which is a completely controlled process:

dK = Idt; where the investment rate is constrained by 0 I k. In this situation it is optimal to either be investing at the maximum rate or not at all. Let the value of the investment opportunity in these two cases by denoted F (V; K ) and f (V; K ), respectively. These functions are governed by the following laws of motion: 1 2 2 2 V FV V + (r

Æ )V FV

rF

1 2 2 2 V fV V + (r

Æ )V fV

rf = 0;

kFK

and

k=0

CHAPTER 11. CONTINUOUS TIME - METHODS

457

subject to the boundary conditions

F (V; 0) = V lim FV (V; K ) = e

ÆK=k

V !1

f (0; K ) = 0 f (V ; K ) = F (V ; K ) fV (V ; K ) = FV (V ; K ): V is the value of the completed project needed to make a positive investment. It can be shown that f (V ) = A(K )V , where 1 = 2

r Æ + 2

s

1 2

r

2

Æ 2

2r + 2:

(10)

and A(K ) is a function that must be determined by the boundary conditions. This may be eliminated by combining the free boundary conditions to yield

F (V ; K ) = V FV (V ; K ): Summarizing, the problem is to solve the following partial dierential equation for given values of , r, Æ and k: 1 2 2 2 V FV V + (r

Æ )V FV

rF

kFK

k = 0;

subject to

F (V; 0) = V lim FV (V; K ) = e V !1

ÆK=k

F (V ; K ) = V FV (V ; K ); where is given by (10). This is a PDE in V and K , with an initial condition for K = 0, a limiting boundary condition for large V and a lower free boundary for V that is a function of K . The problem as stated is solved by

F = Ve

Æ=kK

K

CHAPTER 11. CONTINUOUS TIME - METHODS

458

with optimal cuto boundary

V (K ) =

K

1

eÆ=kK :

However, the optimal solution must, in addition, satisfy

FK (V ; K ) = 1: Write Matlab code to solve the time-to-build problem for the following parameter values:

Æ=0 r = 0:02 = 0:2 k=1 11.11. Sequential Learning Continued Review the sequential learning model discussed on pages 372 and 445. Note that the Bellman equation provides an expression for VQ when P > P . For P < P , the value function has the form A(Q)P 1 and so VQ (P; Q) = A0 (Q)P 1 . a) Derive an expression for VQ for P > P . b) Show that VQ is continuous at P = P for > 0. c) Use this fact to determine A0 (Q). d) Plot VQ as a function of P for Q = 0 using the parameters r = Æ = 0:05 and for the values =0.1, 0.2, 0.3, 0.4 and 0.5. e) When = 0, VQ is discontinuous at P = P . This case was discussed in Problem 20 in Chapter 10. Add this case to the plot from part (d).

CHAPTER 11. CONTINUOUS TIME - METHODS

459

Appendix A Basis Matrices for Multivariate Models The basic PDE used in control problems arising in economics and nance takes the form r(S )V = Æ (S ) + Vt + VSS (S ) + 21 trace( (S ) (S )>VSS ): Generically, S is a d-dimensional vector, VS is (1 d), (S ) is d 1, VSS is d d, and (S ) is d d. The rst derivative term can be computed (for a single S vector) using

VS (S ) (S )>0 (S )c where

2

3

01 (S1 ) 2 (S2 ) : : : d (Sd ) 6 1 (S1 ) 0 (S2 ) : : : d (Sd ) 7 2 7: 0 (S ) = 6 4 5 ::: 0 1 (S1 ) 2 (S2 ) : : : d (Sd ) The second derivative term can be computed using 1 trace( (S ) (S )>VSS ) 1 vec( (S ) (S )>)>00 (S )c 2 2 where 2 00 3 1 (S1 ) 2 (S2 ) : : : d (Sd ) 6 01 (S1 ) 02 (S2 ) : : : d (Sd ) 7 6 7 6 7 ::: 6 0 7 6 (S1 ) 2 (S2 ) : : : 0 (Sd ) 7 1 d 6 0 7 6 (S1 ) 0 (S2 ) : : : d (Sd ) 7 2 6 1 7 6 1 (S1 ) 00 (S2 ) : : : d (Sd ) 7 2 6 7 7: : : : 00 (S ) = 6 6 7 6 1 (S1 ) 0 (S2 ) : : : 0 (Sd ) 7 2 d 6 7 6 7 : : : 6 7 0 0 6 (S1 ) 2 (S2 ) : : : (Sd ) 7 d 6 1 7 6 1 (S1 ) 0 (S2 ) : : : 0 (Sd ) 7 2 d 6 7 4 5 ::: 00 1 (S1 ) 2 (S2 ) : : : d (Sd ) It would be even more eÆcient to avoid the double computations arising from symmetry by using the vech operator: 1 trace( (S ) (S )>VSS ) vech( (S ) (S )>)>^00 (S )c 2

CHAPTER 11. CONTINUOUS TIME - METHODS where

^00 (S ) =

2 6 6 6 6 6 6 6 6 6 6 6 6 4

1 00 2 0 1 (S1 ) 0 2 (S2 ) : : : d (Sd ) 1 (S1 ) 2 (S2 ) : : : d (Sd )

:::

7 7 7 7 0 d (Sd ) 7 7 d (Sd ) 7 7: 7 7 0 d (Sd ) 7 7 5

01 (S1 ) 2 (S2 ) : : :

1 (S1 ) 1 00 (S2 ) : : :

2 2

:::

1 (S1 ) 0 (S2 ) : : :

2

3

::: 1 (S1 ) 2 (S2 ) : : : 12 00d (Sd )

460

CHAPTER 11. CONTINUOUS TIME - METHODS

461

Bibliographic Notes A standard reference on solving PDEs is Ames. It contains a good discussion of stability and convergence analysis; the section on parabolic PDEs is especially relevant for economic applications. Golub and Ortega contains a useful introductory treatment the extended method-of-lines for solving PDEs (Section 8.4), which they call a semidiscrete method. Most treatments of PDEs begin with a discussion of nite dierence methods and may then proceed to nite element and weighted residual methods. The approach we have taken reverses this order by starting with a weighted residual approach (collocation) and demonstrating that nite dierence methods can be viewed as a special case with a speci c choice of basis functions. We have not discussed nite element methods explicitly, but the same remarks apply to them. Piecewise linear cubic splines bases are common examples of nite element methods. The investment under uncertainty with mean reversion in the risk neutral return process is due to Dixit and Pindyck (pp. 161-163). We have simpli ed the notation by taking as given the risk-neutral process for the value of the completed investment. Numerous references containing discussions of numerical techniques for solving nancial asset models now exist. Hull contains a good overview of commonly used techniques. See also DuÆe and Wilmott. In addition to nite dierence methods, binomial and trinomial trees and Monte Carlo methods are the most commonly used approaches. Tree approaches represent state dynamics using a branching process. Although the conceptual framework seems dierent from the PDE approach, tree methods are computationally closely related to explicit nite dierence methods for solving PDEs. If the solution to an asset pricing model for a given initial value of the state is the only output required from a solution, trees have an advantage over nite dierence methods because they require evaluation of far fewer nodal points. If the entire solution function and/or derivatives with respect to the state variable and to time are desired, this advantage disappears. Furthermore, the extended method of lines is quite competitive with tree methods and far more simple to implement. Monte Carlo techniques are increasingly being used, especially in situations with a high dimensional state space. The essential approach simulates paths for the state variable using the risk-neutral state process. Many assets can then be priced as the average value of the returns to the asset evaluated along each sample path. This approach is both simple to implement and avoids the need for special treatment of boundary conditions with exotic assets. Numerous re nements exist to increase the eÆciency of the approach, including the use of variance reduction techniques such as antithetic and control variates, as well as the use of quasi-random numbers (low discrepancy sequences). Monte Carlo approaches have been applied to the calculation of American style assets with early exercise features but this requires more work.

CHAPTER 11. CONTINUOUS TIME - METHODS

462

Other approaches to solving stochastic control problems include discretization methods; see, e.g., Kushner and Dupuis. Several of the exercises are based on problems in the literature. The generalized model of the short interest rate appears in DuÆe, pp. 131-133. The sh harvesting problem with adjustment costs was developed by Ludwig and Ludwig and Varrah. The cost uncertainty model is discussed in Dixit and Pindyck, pp. 345-351. The time-to-build exercise is from Majd and Pindyck and is also discussed in Dixit and Pindyck (pp. 328-339).

Appendix A Mathematical Background A.1 Normed Linear Spaces A linear space or vector space is a nonempty set X endowed with two operations, vector addition + and scalar multiplication , that satisfy

x + y = y + x for all x; y 2 X

(x + y ) + z = x + (y + z ) for all x; y; z 2 X there is a 2 X such that x + = x for all x 2 X for each x 2 X there is a y 2 X such that x + y = ( ) x = ( x) for all ; 2 < and x 2 X

(x + y ) = x + y for all 2 < and x; y 2 X ( + ) x = x + y for all ; 2 < and x 2 X 1 x = x for all x 2 X .

The elements of X are called vectors. A normed linear space is a linear space endowed with a real-valued function jj jj on X , called a norm, which measures the size of vectors. By de nition, a norm must satisfy

jjxjj 0 for all x 2 X ; jjxjj = 0 if and only if x = ; jj xjj = jj jjxjj for all 2 < and x 2 X ; 463

APPENDIX A. MATHEMATICAL BACKGROUND

464

jjx + yjj jjxjj + jjyjj for all x; y 2 X . Every norm on a linear space induces a metric that measures the distance d(x; y ) between arbitrary vectors x and y . The induced metric is de ned via the relation d(x; y ) = jjx y jj. It meets all the conditions we normally expect a distance function to satisfy:

d(x; y) = d(y; x) 0 for all x; y 2 X ; d(x; y) = 0 if and only if x = y 2 X ; d(x; y) d(x; z) + d(z; y) for all x; y; z 2 X . Norms and metrics play a critical role in numerical analysis. In many numerical applications, we do not solve a model exactly, but rather compute an approximation via some iterative scheme. The iterative scheme is usually terminated when the change in successive iterates becomes acceptably small, as measured by the norm of the change. The accuracy of the approximation or approximation error is measured by the metric distance between the nal approximant and the true solution. Of course, in all meaningful applications, the distance between the approximant and true solution is unknown because the true solution is unknown. However, in many theoretical and practical applications, it is possible to compute upper bounds on the approximation error, thus giving a level of con dence in the approximation. In this book we will work almost exclusively with three classes of normed linear spaces. The rst normed linear space is the familiar fxx (x0 )(x x0 ) + o(jjx x0 jj2 ) where o(t) denotes a term with the property that limt !0 (o(t)=t) = 0. The Intermediate Value Theorem asserts that if a continuous real-valued function attains two values, then it must attain all values in between. More precisely, if f continuous on a convex set S 2 B, A>=B, A

and

Paul L. Fackler North Carolina State University

Contents Preface

xii

1 Introduction

1

2 Computer Basics and Linear Equations

8

1.1 Some Apparently Simple Questions . . . . . . . . . . . . . . . . . . . 1.2 An Alternative Analytic Framework . . . . . . . . . . . . . . . . . . . Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Computer Arithmetic . . . . . . . . . . . . . 2.2 Data Storage . . . . . . . . . . . . . . . . . 2.3 Linear Equations and the L-U Factorization 2.4 Gaussian Elimination . . . . . . . . . . . . . 2.5 Rounding Error . . . . . . . . . . . . . . . . 2.6 Ill Conditioning . . . . . . . . . . . . . . . . 2.7 Special Linear Equations . . . . . . . . . . . 2.8 Iterative Methods . . . . . . . . . . . . . . . Exercises . . . . . . . . . . . . . . . . . . . . . . . Bibliographic Notes . . . . . . . . . . . . . . . . .

3 Nonlinear Equations

3.1 Bisection Method . . . . . . . . . 3.2 Function Iteration . . . . . . . . . 3.3 Newton's Method . . . . . . . . . 3.4 Quasi-Newton Methods . . . . . . 3.5 Problems With Newton Methods 3.6 Choosing a Solution Method . . . 3.7 Complementarity Problems . . . 3.8 Complementarity Methods . . . . Exercises . . . . . . . . . . . . . . . . . Bibliographic Notes . . . . . . . . . . . i

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

1 3 5

8 12 13 17 19 20 22 23 25 28

30

31 33 35 39 43 46 48 51 55 62

CONTENTS

ii

4 Finite-Dimensional Optimization 4.1 Derivative-Free Methods . 4.2 Newton-Raphson Method 4.3 Quasi-Newton Methods . . 4.4 Line Search Methods . . . 4.5 Special Cases . . . . . . . 4.6 Constrained Optimization Exercises . . . . . . . . . . . . . Bibliographic Notes . . . . . . .

. . . . . . . .

. . . . . . . .

5 Integration and Dierentiation

. . . . . . . .

5.1 Newton-Cotes Methods . . . . . 5.2 Gaussian Quadrature . . . . . . 5.3 Monte Carlo Integration . . . . 5.4 Quasi-Monte Carlo Integration . 5.5 An Integration Toolbox . . . . . 5.6 Numerical Dierentiation . . . . 5.7 Initial Value Problems . . . . . Exercises . . . . . . . . . . . . . . . . Bibliographic Notes . . . . . . . . . .

6 Function Approximation 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

Interpolation Principles . . . . . . . . Polynomial Interpolation . . . . . . . Piecewise Polynomial Splines . . . . Piecewise-Linear Basis Functions . . Multidimensional Interpolation . . . Choosing an Approximation Method An Approximation Toolkit . . . . . . Solving Functional Equations . . . . 6.8.1 Cournot Oligopoly . . . . . . 6.8.2 Function Inverses . . . . . . . 6.8.3 Boundary Value Problems . . Exercises . . . . . . . . . . . . . . . . . . . Bibliographic Notes . . . . . . . . . . . . .

7 Discrete State Models

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

63

64 68 70 74 77 79 83 93

94

95 97 100 102 104 107 114 121 126

127

128 131 137 143 145 149 150 158 159 162 164 172 176

177

7.1 Discrete Dynamic Programming . . . . . . . . . . . . . . . . . . . . . 178 7.2 Economic Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 7.2.1 Mine Management . . . . . . . . . . . . . . . . . . . . . . . . 180

CONTENTS 7.2.2 Asset Replacement - I . . . . . . . . 7.2.3 Asset Replacement - II . . . . . . . . 7.2.4 Option Pricing . . . . . . . . . . . . 7.2.5 Job Search . . . . . . . . . . . . . . . 7.2.6 Optimal Irrigation . . . . . . . . . . 7.2.7 Optimal Growth . . . . . . . . . . . 7.2.8 Renewable Resource Problem . . . . 7.2.9 Bioeconomic Model . . . . . . . . . . 7.3 Solution Algorithms . . . . . . . . . . . . . . 7.4 Dynamic Simulation Analysis . . . . . . . . 7.5 A Discrete Dynamic Programming Toolbox . 7.6 Numerical Examples . . . . . . . . . . . . . 7.6.1 Mine Management . . . . . . . . . . 7.6.2 Asset Replacement - I . . . . . . . . 7.6.3 Asset Replacement - II . . . . . . . . 7.6.4 Option Pricing . . . . . . . . . . . . 7.6.5 Job Search . . . . . . . . . . . . . . . 7.6.6 Optimal Irrigation . . . . . . . . . . 7.6.7 Optimal Growth . . . . . . . . . . . 7.6.8 Renewable Resource Problem . . . . 7.6.9 Bioeconomic Model . . . . . . . . . . Exercises . . . . . . . . . . . . . . . . . . . . . . .

8 Continuous State Models: Theory

iii . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

8.1 Continuous State Dynamic Programming . . . . . . . 8.2 Continuous State Discrete Choice Models . . . . . . . 8.2.1 Asset Replacement . . . . . . . . . . . . . . . 8.2.2 Timber Cutting . . . . . . . . . . . . . . . . . 8.2.3 American Option Pricing . . . . . . . . . . . . 8.2.4 Industry Entry and Exit . . . . . . . . . . . . 8.2.5 Job Search . . . . . . . . . . . . . . . . . . . . 8.3 Continuous State Continuous Choice Models . . . . . 8.3.1 Optimal Economic Growth . . . . . . . . . . . 8.3.2 Public Renewable Resource Management . . . 8.3.3 Private Nonrenewable Resource Management . 8.3.4 Optimal Water Management . . . . . . . . . . 8.3.5 Optimal Monetary Policy . . . . . . . . . . . 8.3.6 Production-Adjustment Model . . . . . . . . . 8.3.7 Production-Inventory Model . . . . . . . . . . 8.3.8 Optimal Feeding . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

181 182 183 184 185 186 187 188 189 193 195 198 198 201 202 202 204 206 208 208 208 210

218

219 221 221 222 222 223 224 225 227 229 230 231 233 234 235 236

CONTENTS 8.4 Linear-Quadratic Control . . . . . . 8.5 Dynamic Games . . . . . . . . . . . 8.5.1 Capital-Production Game . 8.5.2 Risk-Sharing Game . . . . . 8.5.3 Marketing Board Game . . 8.6 Rational Expectations Models . . . 8.6.1 Asset Pricing Model . . . . 8.6.2 Competitive Storage . . . . 8.6.3 Government Price Controls Exercises . . . . . . . . . . . . . . . . . .

iv . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

9 Continuous State Models: Methods 9.1 9.2 9.3 9.4

Traditional Solution Methods . . . . . . . . . . . . . The Collocation Method . . . . . . . . . . . . . . . . Postoptimality Analysis . . . . . . . . . . . . . . . . Computational Examples . . . . . . . . . . . . . . . . 9.4.1 Asset Replacement . . . . . . . . . . . . . . . 9.4.2 Timber Cutting . . . . . . . . . . . . . . . . . 9.4.3 Optimal Economic Growth . . . . . . . . . . . 9.4.4 Public Renewable Resource Management . . . 9.4.5 Private Nonrenewable Resource Management . 9.4.6 Optimal Monetary Policy . . . . . . . . . . . 9.4.7 Production-Adjustment Model . . . . . . . . . 9.5 Dynamic Game Methods . . . . . . . . . . . . . . . . 9.5.1 Capital-Production Game . . . . . . . . . . . 9.5.2 Income Redistribution Game . . . . . . . . . . 9.6 Rational Expectations Methods . . . . . . . . . . . . 9.6.1 Asset Pricing Model . . . . . . . . . . . . . . 9.6.2 Competitive Storage . . . . . . . . . . . . . . 9.7 Comparison of Solution Methods . . . . . . . . . . . Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10 Continuous Time - Theory & Examples 10.1 Arbitrage Based Asset Valuation . 10.2 Stochastic Control . . . . . . . . . 10.2.1 Boundary Conditions . . . . 10.2.2 Choice of the Discount Rate 10.2.3 Euler Equation Methods . . 10.2.4 Examples . . . . . . . . . . 10.3 Free Boundary Problems . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

237 239 240 241 241 242 244 245 247 249

257

258 260 269 271 271 274 276 281 284 288 292 296 301 305 309 313 315 320 322

330

330 338 340 342 344 345 355

CONTENTS

v

10.3.1 Impulse Control . . . . . . . . . . . . . . . . . . . . . . . . 10.3.2 Barrier Control . . . . . . . . . . . . . . . . . . . . . . . . 10.3.3 Discrete State/Control Problems . . . . . . . . . . . . . . 10.3.4 Stochastic Bang-Bang Problems . . . . . . . . . . . . . . . Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Appendix A: Dynamic Programming and Optimal Control Theory . . . Appendix B: Deriving the Boundary Conditions for Resetting Problems Appendix C: Deterministic Bang-Bang Problems . . . . . . . . . . . . Bibliographic Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11 Continuous Time - Methods

11.1 Solving Arbitrage-based Valuation Problems 11.1.1 Extensions and Re nements . . . . . 11.2 Solving Stochastic Control Problems . . . . 11.3 Free Boundary Problems . . . . . . . . . . . 11.3.1 Multiple Value Functions . . . . . . . 11.3.2 Finite Horizon Problems . . . . . . . Exercises . . . . . . . . . . . . . . . . . . . . . . . Bibliographic Notes . . . . . . . . . . . . . . . . .

A Mathematical Background A.1 A.2 A.3 A.4 A.5

Normed Linear Spaces . . . . . . . . . . Matrix Algebra . . . . . . . . . . . . . . Real Analysis . . . . . . . . . . . . . . . Markov Chains . . . . . . . . . . . . . . Continuous Time Mathematics . . . . . . A.5.1 Ito Processes . . . . . . . . . . . A.5.2 Forward and Backward Equations A.5.3 The Feynman-Kac Equation . . . Bibliographic Notes . . . . . . . . . . . . . . .

B A MATLAB Primer B.1 B.2 B.3 B.4 B.5 B.6

The Basics . . . . . . . . . . . . . . . Conditional Statements And Looping Scripts and Functions . . . . . . . . . Debugging . . . . . . . . . . . . . . . Other Data Types . . . . . . . . . . . Programming Style . . . . . . . . . .

Web Resources

. . . . . .

. . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

357 361 363 369 376 388 390 392 395

397

398 401 408 419 430 443 452 461

463

463 466 468 470 471 471 475 478 480

481

481 486 487 492 494 495

497

CONTENTS

vi

References

498

Index

503

List of Tables 5.1. Errors for Selected Quadrature Methods . . . . . . . . . . . . . . . . . 98 5.2. Approximation Errors for Alternative Quasi-Monte Carlo Methods . . 103 6.1. Errors for Selected Interpolation Methods . . . . . . . . . . . . . . . . 150 7.1 Optimal Labor Participation Rule . . . . . . . . . . . . . . . . . . . . 206 7.2 Survival Probabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 7.3 Optimal Foraging Strategy . . . . . . . . . . . . . . . . . . . . . . . . 211 9.1 Execution Times and Approximation Error for Selected ContinuousSpace Approximation Methods . . . . . . . . . . . . . . . . . . . . . . 323 10.1. Known Solutions to the Optimal Harvesting Problem . . . . . . . . . 346 10.2. Types of Free Boundary Problems . . . . . . . . . . . . . . . . . . . 355 11.1. Option Pricing Approximation Errors . . . . . . . . . . . . . . . . . 407

vii

List of Figures 3.1. demslv10 . 3.2. demslv11 . 3.3. demslv11 . 3.4. demslv12 . 3.5. demslv11 . 3.6. demslv12 . 3.7. demslv13 . 3.8. demslv14 . 3.9. demslv15 . 3.10. demslv16

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

34 35 36 39 40 43 50 52 53 55

4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 4.8.

demopt01 . demopt02 . demopt03 . demopt04 . demopt04 . demopt05 . demopt06 . demopt06 .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

66 67 69 74 75 76 80 81

5.1. 5.2. 5.3. 5.4. 5.5.

demqua01 demqua01 demdif01 . demdif02 . demdif03 .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

104 105 111 112 119

6.1. 6.2. 6.3. 6.4. 6.5.

demapp01 demapp02 demapp01 demapp01 demapp01

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

132 133 134 135 139

viii

LIST OF FIGURES 6.6. demapp01 6.7. demapp04 6.8. demapp04 6.9. demapp05 6.10. demapp05 6.11. demapp05 6.12. demapp05 6.13. demapp06 6.14. demapp09 6.15. demapp09 6.16. demapp09 6.17. demapp10 6.18. demapp10 6.19. dembvp02 6.20. dembvp02

ix . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

141 142 143 152 153 154 155 157 162 163 164 165 166 170 171

7.1. demddp01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 7.2. demddp04 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 7.3. demddp06 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 9.1. demdp01 . . 9.2. demdp02 . . 9.3. demdp07 . . 9.4. demdp08 . . 9.5. demdp09 . . 9.6. demdp11 . . 9.7. demdp12 . . 9.8. demgame01 . 9.9. demgame02 . 9.10. demrem01 . 9.11. demrem02 .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

273 276 279 283 286 291 294 305 308 315 319

10.1. demfb05 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 11.1. 11.2. 11.3. 11.4. 11.5. 11.6. 11.7.

dem n01 dem n01 dem n02 demsc1 . demsc03 . demsc03 . demfb01 .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

401 402 408 415 420 420 425

LIST OF FIGURES 11.8. demfb02 . 11.9. demfb02 . 11.10. demfb03 11.11. demfb03 11.12. demfb03 11.13. demfb03 11.14. demfb04 11.15. demfb04 11.16. demfb04 11.17. dem n04 11.18. dem n04 11.19. dem n04 11.20. demfb05

x . . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

429 429 433 435 437 437 442 442 443 446 446 447 451

LIST OF FIGURES

xi

Glossary of Matlab Terms A list of Matlab terms used in this text. For a complete list, see mentation. chol diag disp eps eye feval nd inline inv length norm rand randn realmax reshape sum tril triu

Matlab

docu-

computes the Cholesky decomposition of a symmetric positive de nite matrix returns the diagonal elements of a matrix as a vector displays results on the screen machine precision (the largest number that, added to 1, returns 1) returns an order n identity matrix: In=eye(n) evaluates a function referred to by name: feval(f,x,y) produces an index of values meeting a stated condition: find([-1 3 2 0]>=0) returns [2 4] creates a function from a string that behaves like a function le: f=inline('x.^2+2*y','x','y')

matrix inverse the number of elements in a vector: length([0 5 2]) returns 3 vector or matrix norm (default is the 2-norm) produces random uniformly distributed values on [0,1]: x=rand(m,n) produces random standard normal (Gaussian) variates: x=randn(m,n) the largest real number representable in Matlab changes the size of a matrix without changing the total number of elements: reshape([1 1;1 1;2 2;2 2],2,4]) returns [1 2 1 2;1 2 1 2] sums the elements of a vector or columns of a matrix: sum([1 2 3] returns 6 zeros the above diagonal elements of a matrix: tril([1 2;3 4]) returns [1 0;3 4] zeros the below diagonal elements of a matrix: triu([1 2;3 4]) returns [1 2;0 4]

Preface Many interesting economic models cannot be solved analytically using the standard mathematical techniques of Algebra and Calculus. This is often true of applied economic models that attempt to capture the complexities inherent in real-world individual and institutional economic behavior. For example, to be useful in applied economic analysis, the conventional Marshallian partial static equilibrium model of supply and demand must often be generalized to allow for multiple goods, interegional trade, intertemporal storage, and government interventions such as taris, taxes, and trade quotas. In such models, the structural economic constraints are of central interest to the economist, making it undesirable, if not impossible, to \assume an internal solution" to render the model analytically tractable. Another class of interesting models that typically cannot be solved analytically are stochastic dynamic models of rational, forward-looking economic behavior. Dynamic economic models typically give rise to functional equations in which the unknown is not simply a vector in Euclidean space, but rather an entire function de ned on a continuum of points. For example, the Bellman and Euler equations that describe dynamic optima are functional equations, as often are the conditions that characterize rational expectations and arbitrage pricing market equilibria. Except in a very limited number of special cases, these functional equations lack a known closed-form solution, even though the solution can be shown theoretically to exist and to be unique. Models that lack closed-form analytical solution are not unique to economics. Analytically insoluble models are common in biological, physical, and engineering sciences. Since the introduction of the digital computer, scientists in these elds have turned increasingly to numerical computer methods to solve their models. In many cases where analytical approaches fail, numerical methods are often used to successfully compute highly accurate approximate solutions. In recent years, the scope of numerical applications in the biological, physical, and engineering sciences has grown dramatically. In most of these disciplines, computational model building and analysis is now recognized as a legitimate subdiscipline of specialization. Numerical analysis courses have also become standard in many graduate and undergraduate curriculums in these elds. xii

PREFACE

xiii

Economists, however, have not embraced numerical methods as eagerly as other scientists. Many economists have shunned numerical methods out of a belief that numerical solutions are less elegant or less general than closed form solutions. The former belief is a subjective, aesthetic judgment that is outside of scienti c discourse and beyond the scope of this book. The generality of the results obtained from numerical economic models, however, is another matter. Of course, given an economic model, it is always preferable to derive a closed form solution|provided such a solution exists. However, when essential features of an economic system being studied cannot be captured neatly in an algebraically soluble model, a choice must be made. Either essential features of the system must be ignored in order to obtain an algebraically tractable model, or numerical techniques must be applied. Too often economists chose algebraic tractability over economic realism. Numerical economic models are often unfairly criticized by economists on the grounds that they rest on speci c assumptions regarding functional forms and parameter values. Such criticism, however, is unwarranted when strong empirical support exists for the speci c functional form and parameter values used to specify a model. Moreover, even when there is some uncertainty about functional forms and parameters, the model may be solved under a variety of assumptions in order to assess the robustness of its implications. Although some doubt will persist as to the implications of a model outside the range of functional forms and parameter values examined, this uncertainty must be weighed against the lack of relevance of an alternative model that is explicitly soluble, but which ignores essential features of the economic system of interest. We believe that it is better to derive economic insights from a realistic numerical model of an economic system than to derive irrelevant results, however general, from an unrealistic, but explicitly soluble model. Despite resistance by some, an increasing number of economists are becoming aware of the potential bene ts of numerical economic model building and analysis. This is evidenced by the recent introduction of journals and an economic society devoted to the sub-discipline of computational economics. The growing popularity of computational economics, however, has been impeded by the absence of adequate textbooks and computer software. The methods of numerical analysis and much of the available computer software have been largely developed for non-economic disciplines, most notably the physical, mathematical, and computer sciences. The scholarly literature can also pose substantial barriers for economists, both because of its mathematical prerequisites and because its examples are unfamiliar to economists. Many available software packages, moreover, are designed to solve problems that are speci c to the physical sciences. This book addresses the diÆculties typically encountered by economists attempting to learn and apply numerical methods in several ways. First, this book emphasizes practical numerical methods, not mathematical proofs, and focuses on techniques

PREFACE

xiv

that will be directly useful to economic analysts, not those that would be useful exclusively to physical scientists. Second, the examples used in the book are drawn from a wide range of sub-specialties of economics and nance, both in macro- and microeconomics, with particular emphasis on problems in nancial, agricultural, resource and macro- economics. And third, we include with the textbook an extensive library of computer utilities and demonstration programs to provide interested researchers with a starting point for their own computer models. We make no attempt to be encyclopedic in our coverage of numerical methods or potential economic applications. We have instead chosen to develop only a relatively small number of techniques that can be applied easily to a wide variety of economic problems. In some instances, we have deviated from the standard treatments of numerical methods in existing textbooks in order to present a simple consistent framework that may be readily learned and applied by economists. In many cases we have elected not to cover certain numerical techniques when we regard them to be of limited bene t to economists, relative to their complexity. Throughout the book, we try to explain our choices clearly and to give references to more advanced numerical textbooks where appropriate. The book is divided into two major sections. In the rst six chapters, we develop basic numerical methods, including solving linear and nonlinear equation methods, complementarity methods, nite-dimensional optimization, numerical integration and dierentiation, and function approximation. In these chapters, we develop appreciation for basic numerical techniques by illustrating their application to equilibrium and optimization models familiar to most economists. The last ve chapters of the book are devoted to methods for solving dynamic stochastic models in economic and nance, including dynamic programming, rational expectations, and arbitrage pricing models in discrete and continuous time. The book is aimed at both graduate students, advanced undergraduate students, and practicing economists. We have attempted to write a book that can be used both as a classroom text and for self-study. We have also attempted to make the various sections reasonably self-contained. For example, the sections on discrete time continuous state models are largely independent from those on discrete time discrete state models. Although this results in some duplication of material, we felt that this would increase the usefulness of the text by allowing readers to skip sections. Although we have attempted to keep the mathematical prerequisites for this book to a minimum, some mathematical training and insight is necessary to work with computational economic models and numerical techniques. We assume that the reader is familiar with ideas and methods of linear algebra and calculus. Appendix A provides an overview of the basic mathematics used throughout the text. One barrier to the use of numerical methods by economists is lack of access to functioning computer code. This presents an apparent dilemma to us as textbook

PREFACE

xv

authors, given the variety of computer languages available. On the one hand, it is useful to have working examples of code in the book and to make the code available to readers for immediate use. On the other hand, using a speci c language in the text could obscure the essence of the numerical routines for those unfamiliar with the chosen language. We believe, however, that the latter concern can be substantially mitigated by conforming to the syntax of a vector processing language. Vector processing languages are designed to facilitate numerical analysis and their syntax is often simple enough that the language is transparent and easily learned and implemented. Due to its facility of use and its wide availability on university campus computing systems, we have chosen to illustrate algorithms in the book using Matlab and have provided an toolbox of Matlab utilities and demonstration programs to assist interested readers develop their own computational economic applications. The CompEcon toolbox can be obtained via the internet at the URL: http://?? All of the gures and tables in this book were generated by Matlab demonstration les provided with the toolbox (see List of Tables and List of Figures for le names). Once the toolbox is installed, these can be run by typing the appropriate le name at the Matlab command line. For those not familiar with the Matlab programming language, a primer in provided in Appendix B. The text contains many code fragments, which, in some cases, have been simpli ed for expositional clarity. This generally consists of eliminating the explicit setting of optional parameters and not displaying code that actually generates tabular or graphical output. The demonstration and function les provided in the toolbox contain fully functioning versions. In many cases the toolbox versions of functions described in the text have optional parameters that can be altered by the user user the toolbox function optset. The toolbox is described in detail in ?? on page ??. Our ultimate goal in writing this book is to motivate a broad range of economists to use numerical methods in their work by demonstrating the essential principles underlying computational economic models across sub-disciplines. It is our hope that this book will make accessible a range of computational tools that will enable economists to analyze economic and nancial models that heretofore they were unable to solve within the con nes of traditional mathematical economic analysis.

Chapter 1 Introduction 1.1 Some Apparently Simple Questions Consider the constant elasticity demand function q = p 0:2 : This is a function because, for each price p, there is an unique quantity demanded q . Given a hand-held calculator, any economist could easily compute the quantity demanded at any given price. An economist would also have little diÆculty computing the price that clears the market of a given quantity. Flipping the demand expression about the equality sign and raising each side to the power of 5, the economist would derive a closed-form expression for the inverse demand function p = q 5: Again, using a calculator any economist could easily compute the price that will exactly clear the market of any given quantity. Suppose now that the economist is presented with a slightly dierent demand function q = 0:5 p 0:2 + 0:5 p 0:5 ; one that is the sum a domestic demand term and an export demand term. Using standard calculus, the economist could easily verify that the demand function is continuous, dierentiable, and strictly decreasing. The economist once again could easily compute the quantity demanded at any price using a calculator and could easily and accurately draw a graph of the demand function. 1

CHAPTER 1. INTRODUCTION

2

However, suppose that the economist is asked to nd the price that clears the market of, say, a quantity of 2 units. The question is well-posed. A casual inspection of the graph of the demand function suggests that its inverse is well-de ned, continuous, and strictly decreasing. A formal argument based on the Intermediate Value and Implicit Function Theorems would prove that this is so. An unique market clearing price clearly exists. But what is the inverse demand function? And what price clears the market? After considerable eort, even the best trained economist will not nd an explicit answer using Algebra and Calculus. No closed-form expression for the inverse demand function exists. The economist cannot answer the apparently simple question of what the market clearing price will be. Consider now a simple model of an agricultural commodity market. In this market, acreage supply decisions are made before the per-acre yield and harvest price are known. Planting decisions are based on the price expected at harvest:

a = 0:5 + 0:5E [p]: After the acreage is planted, a random yield y is realized, giving rise to a supply

q = ay~ that is entirely sold at a market clearing price

p = 3 2q: Assume the random yield y is exogenous and distributed normally with a mean 1 and variance 0.1. Most economists would have little diÆculty deriving the rational expectations equilibrium of this market model. Substituting the rst expression into the second, and then the second into the third, the economist would write

p = 3 2(0:5 + 0:5E [p])~y: Taking expectations on both sides

E [p] = 3 2(0:5 + 0:5E [p]); she would solve for the equilibrium expected price E [p] = 1. She would conclude that the equilibrium acreage is a = 1 and the equilibrium price distribution has a variance of 0.4. Suppose now that the economist is asked to assess the implications of a proposed government price support program. Under this program, the government guarantees each producer a minimum price, say 1. If the market price falls below this level, the

CHAPTER 1. INTRODUCTION

3

government simply pays the producer the dierence per unit produced. The producer thus receives an eective price of max(p; 1) where p is the prevailing market price. The government program transforms the acreage supply relation to a = 0:5 + 0:5E [max(p; 1)]: Before proceeding with a formal mathematical analysis, the economist exercises a little economic intuition. The government support, she reasons, will stimulate acreage supply, raising acreage planted. This will shift the equilibrium price distribution to the left, reducing the expected market price below 1. Price would still occasionally rise above 1, however, implying that the expected eective producer price will exceed 1. The dierence between the expected eective producer price and the expected market price represents a positive expected government subsidy. The economist now attempts to formally solve for the rational expectations equilibrium of the revised market model. She performs the same substitutions as before and writes p = 3 2(0:5 + 0:5E [max(p; 1)])~y: As before, she takes expectations on both sides E [p] = 3 2(0:5 + 0:5E [max(p; 1)]): In order to solve the expression for the expected price, the economist uses a fairly common and apparently innocuous trick: she interchanges the max and E operators, replacing E [max(p; 1)] with max(E [p]; 1). The resulting expression is easily solved for E [p] = 1. This solution, however, asserts the expected market price and acreage planted remain unchanged by the introduction of the government price support policy. This is inconsistent with the economist's intuition. The economist quickly realizes her error. The expectation operator cannot be interchanged with the maximization operator because the latter is a nonlinear function. But if this operation is not valid, then what mathematical operations would allow the economist to solve for the equilibrium expected price and acreage? Again, after considerable eort, our economist is unable to nd an answer using Algebra and Calculus. No apparent closed-form solution exists for the model. The economist cannot answer the apparently simple question of how the equilibrium acreage and expected market price will change with the introduction of the government price support program.

1.2 An Alternative Analytic Framework The two problems discussed in the preceding section illustrate how even simple economic models cannot always be solved using standard mathematical techniques.

CHAPTER 1. INTRODUCTION

4

These problems, however, can easily be solved to a high degree of accuracy using numerical methods. Consider the inverse demand problem. An economist who knows some elementary numerical methods and who can write basic Matlab code would have little diÆculty solving the problem. The economist would simply write the following elementary Matlab program: p = 0.25; for i=1:100 deltap = (.5*p^-.2+.5*p^-.5-2)/(.1*p^-1.2 + .25*p^-1.5); p = p + deltap; if abs(deltap) < 1.e-8, break, end end disp(p);

He would then execute the program on a computer and, in an instant, compute the solution: the market clearing price is 0.154. The economist has used Newton's root nding method, which is discussed in Section 3.3 on page 35. Consider now the rational expectations commodity market model with government intervention. The source of diÆculty in solving this problem is the need to evaluate the truncated expectation of a continuous distribution. An economist who knows some numerical analysis and who knows how to write basic Matlab code, however, would have little diÆculty computing the rational expectation equilibrium of this model. The economist would replace the original normal yield distribution with a discrete distribution that has identical lower moments, say one that assumes values y1 ; y2 ; : : : ; yn with probabilities w1 ; w2 ; : : : ; wn . After constructing the discrete distribution approximant, which would require only a single call to the CompEcon library routine qnwnorm, the economist would code and execute the following elementary Matlab program:1 [y,w] = qnwnorm(10,1,0.1); a = 1; for it=1:100 aold = a; p = 3 - 2*a*y; f = w'*max(p,1); a = 0.5 + 0.5*f; if abs(a-aold) jz j. One problem that can arise is that y is so big that y 2 over ows. The largest real number representable on a machine can be found with the Matlab command realmax (it is approximately 21024 10308 for most double precision environments). Although this kind of over ow may not happen often, it could have unfortunate consequences and cause problems that are hard to detect. Even when y is not that big, if it is big relative to z , several problems can arise. The rst of these is easily dealt with. Suppose we evaluate p y+z y2 + z2

p when jy j is large enough so y + z is evaluated as y . This implies that y 2 + z 2 will be evaluated as jy j. When y < 0, the expression is evaluated as 2y , which is correct to the most signi cant digit. When y > 0, however, we get 0, which may be very far from correct. If the expression is evaluated in the order p y y2 + z2 + z

the result will be z , which is much closer to the correct answer. An even better approach is to use

(y; z ) = y 1

p

sign(y ) 1 + 2 + ;

where = z=y . Although this is algebraically equivalent, it has very dierent properties. First notice that the chance of over ow is greatly reduced because 1 1+ 2 2 and so the expression in ( ) is bounded on [; 4]. If 1 + 2 is evaluated as 1 (i.e., if is less than the square root of machine precision), this expression yields 2y if y < 0 and y = z if y > 0. This is a lot better, but one further problem arises when y > 0 with jy j jz j. In this case there is a cancellation due to the expression of the form p 2 1+ z=1

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

11

The obvious way of computing this term will result in loss of precision as gets small. Another expression for z is p 2 2 2 1 p1 + 2 + : z= 2 1+ Although this is more complicated, it is accurate regardless of the size of . As gets small, this expression will be approximately 2 =2. Thus, if is about the size of the square root of machine precision (2 26 on most double precision implementations), z would be computed to machine precision with the second expression, but would be computed to be 0 using the rst, i.e., no signi cant digits would be correct. Putting all of this together, a good approach to computing (y; z ) when jy j jz j uses 8 p 2 + ) if y < 0 < y (1 + 1+ p1+2 2 +2 1 (y; z ) = ( p ) if y > 0 : y 2 1+2 where = z=y (reverse z and y if jy j < jz j). Matlab has a number of special numerical representations relevant to this discussion. We have already mentioned inf and -inf. These arise not only from over ow but from division by 0. The number realmax is the largest oating point number that can be represented; realmin is the smallest positive (normalized) number representable.1 In addition, eps represents the machine precision, de ned as the rst number greater than 1 that can be represented as a oating point number. Another way to say this is, for any 0 eps=2, 1 + will be evaluated as 1 (i.e., eps is equal to 21 b ).2 All three of these special values are hardware speci c. In addition, oating point numbers may get set to NaN, which stands for not-anumber. This typically results from a mathematically unde ned operation, such as inf-inf and 0/0. It does not result, however, from inf/0, 0/inf or inf*inf (these result in inf, 0 and inf). Any arithmetic operation involving a NaN results in a NaN. Roundo error is only one of the pitfalls in evaluating mathematical expressions. In numerical computations, error is also introduced by the computer's inherent inability to evaluate certain mathematical expressions exactly. For all its power, a computer can only perform a limited set of operations in evaluating expressions. Essentially this list includes the four arithmetic operations of addition, subtraction, multiplication and division, as well as logical operations of comparison. Other common functions, 1 A denormalized number is one that non-zero, but has an exponent equal to its smallest possible

value. 2 20 + 2 b = (2b + 1)2 b cannot be represented and must be truncated to (2b 1 )21 0 2 + 21 b = (2b 1 + 1)21 b , on the other hand, can be represented.

b

= 1.

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

12

such as exponential, logarithmic, and trigonometric functions cannot be evaluated directly using computer arithmetic. They can only be evaluated approximately using algorithms based on the four basic arithmetic operations. For the common functions very eÆcient algorithms typically exist and these are sometimes \hardwired" into the computer's processor or coprocessor. An important area of numerical analysis involves determining eÆcient approximations that can be computed using basic arithmetic operations. For example, the exponential function has the series representation exp(x) =

1 X i=0

xn =n!:

Obviously one cannot compute the in nite sum, but one could compute a nite number of these terms, with the hope that one will obtain suÆcient accuracy for the purpose at hand. The result, however, will always be inexact.3 For nonstandard problems, we must often rely on our own abilities as numerical analysts (or know when to seek help). Being aware of some of the pitfalls should help us avoid them.

2.2 Data Storage 's basic data type is the matrix, with a scalar just a 1 1 matrix and an n-vector an n 1 or 1 n matrix. Matlab keeps track of matrix size by storing row and column information about the matrix along with the values of the matrix itself. This is a signi cant advantage over writing in low level languages like Fortran or C because it relieves one of the necessity of keeping track of array size and memory allocation. When one wants to represent an m n matrix of numbers in a computer there are a number of ways to do this. The most simple way is to store all the elements sequentially in memory, starting with the one indexed (1,1) and working down successive columns or across successive rows until the (m; n)th element is stored. Dierent languages make dierent choices about how to store a matrix. Fortran stores matrices in column order, whereas C stores in row order. Matlab, although written in C, stores in column order, thereby conforming with the Fortran standard. Many matrices encountered in practice are sparse, meaning that they consist mostly of zero entries. Clearly, it is a waste of memory to store all of the zeros, and it is time consuming to process the zeros in arithmetic matrix operations. Matlab supports a sparse matrix data type, which eÆciently keeps track of only the Matlab

3 Incidently, the Taylor series representation of the exponential function does not result in an

eÆcient computational algorithm.

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

13

non-zero elements of the original matrix and their locations. In this storage scheme, the non-zero entries and the row indices are stored in two vectors of the same size. A separate vector is used to keep track of where the rst element in each column is located. If one wants to access element (i; j ), Matlab checks the j th element of the column indicator vector to nd where the j th column starts and then searches the row indicator vector for the ith element (if one is not found then the element must be zero). Although sparse matrix representations are useful, their use incurs a cost. To access element (i; j ) of a full matrix, one simply goes to storage location (i 1)m + j . Accessing an element in a sparse matrix involves a search over row indices and hence can take longer. This additional overhead can add up signi cantly and actually slow down a computational procedure. A further consideration in using sparse matrices concerns memory allocation. If a procedure repeatedly alters the contents of a sparse matrix, the memory needed to store the matrix may change, even if its dimension does not. This means that more memory may be needed each time the number of non-zero elements increases. This memory allocation is both time consuming and may eventually exhaust computer memory. The decision whether to use a sparse or full matrix representation depends on a balance between a number of factors. Clearly for very sparse matrices (less than 10% non-zero) one is better o using sparse matrices and anything over 67% non-zeros one is better o with full matrices (which actually require less storage space at that point). In between, some experimentation may be required to determine which is better for a given application. Fortunately, for many applications, users don't even need to be aware of whether matrices are stored in sparse or full form. Matlab is designed so most functions work with any mix of sparse or full representations. Furthermore, sparsity propagates in a reasonably intelligent fashion. For example, a sparse times a full matrix or a spare plus a full matrix results in a full matrix, but if a sparse and a full matrix are multiplied element-by-element (using the \.*" operator) a sparse matrix results.

2.3 Linear Equations and the L-U Factorization The linear equation is the most elementary problem that arises in computational economic analysis. In a linear equation, an n n matrix A and an n-vector b are given, and one must compute the n-vector x that satis es

Ax = b:

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

14

Linear equations arise, directly or indirectly, in most computational economic applications. For example, a linear equation may be solved when computing the steadystate distribution of a discrete-state stochastic economic process or when computing the equilibrium prices and quantities of a multicommodity market model with linear demand and supply functions. Linear equations also arise as elementary tasks in solution procedures designed to solve more complicated nonlinear economic models. For example, a nonlinear partial equilibrium market model may be solved using Newton's method, which involves solving a sequence of linear equations. And the Euler functional equation of a rational expectations model may be solved using a collocation method, which yields a nonlinear equation that in turn is solved as a sequence of linear equations. Various practical issues arise when solving a linear equation numerically. Digital computers are capable of representing arbitrary real numbers with only limited precision. Numerical arithmetic operations, such as computer addition and multiplication, produce rounding errors that may, or may not, be negligible. Unless the rounding errors are controlled in some way, the errors can accumulate, rendering a computed solution that may be far from correct. Speed and storage requirements are also important considerations in the design of a linear equation solution algorithm. In some applications, such as the stochastic simulation of a rational expectations model, linear equations may have to be solved millions of times. And in other applications, such as computing option prices using nite dierence methods, linear equations with a very large number of variables and equations may be encountered. Over the years, numerical analysts have studied linear equations extensively and have developed algorithms for solving them quickly, accurately, and with a minimum of computer storage. In most applied work, one can typically rely on Gaussian elimination, which may be implemented in various dierent forms depending on the structure of the linear equation. Iterative methods oer an alternative to Gaussian elimination and are especially eÆcient if the A matrix is large and consists mostly of zero entries. Some linear equations Ax = b are relatively easy to solve. For example, if A is a lower triangular matrix, 2

A

6 6 =6 6 4

a11 0 0 : : : a21 a22 0 : : : a31 a32 a33 : : :

0 0 0

an1 an2 an3 : : : ann

3

7 7 7; 7 5

then the elements of x can be computed recursively using forward-substitution:

x1 = b1 =a11

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

15

x2 = (b2 a21 x1 )=a22 x3 = (b3 a31 x1 a32 x2 )=a33 .. . xn = (bn an1 x1 an2 x2 : : : ann 1 xn 1 )=ann: This clearly works only if all of the diagonal elements are non-zero (i.e., if the matrix is nonsingular). The algorithm can be written more compactly using summation notation as ! i 1 X xi = bi aij xj =aii 8i: j =1 In the vector processing language Matlab, this may be implemented as follows: for i=1:length(b) x(i)=(b(i)-A(i,1:i-1)*x(1:i-1))/A(i,i); end

If A is an upper triangular matrix, then the elements of x can be computed recursively using backward-substitution. Most linear equations encountered in practice, however, do not have a triangular A matrix. In such cases, the linear equation is often best solved using the L-U factorization algorithm. The L-U algorithm is designed to decompose the A matrix into the product of lower and upper triangular matrices, allowing the linear equation to be solved using a combination of backward and forward substitution. The L-U algorithm involves two phases. In the factorization phase, Gaussian elimination is used to factor the matrix A into the product

A = LU of a row-permuted lower triangular matrix L and an upper triangular matrix U . A row-permuted lower triangular matrix is simply a lower triangular matrix that has had its rows rearranged. Any nonsingular square matrix can be decomposed in this way. In the solution phase of the L-U algorithm, the factored linear equation

Ax = (LU )x = L(Ux) = b is solved by rst solving

Ly = b

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

16

for y using forward substitution, accounting for row permutations, and then solving

Ux = y for x using backward substitution. Consider, for example, the linear equation Ax = b where 2 3 2 3 3 2 3 10 A = 4 3 2 1 5 and b = 4 8 5 : 3 0 0 3 The matrix A can be decomposed into the product A = LU where 2 3 2 3 1 0 0 3 2 3 L = 4 1 0 1 5 and U = 4 0 2 3 5 : 1 1 0 0 0 2 The matrix L is row-permuted lower triangular; by interchanging the second and third rows, a lower diagonal matrix results. The matrix U is upper triangular. Solving Ly = b for y using forward substitution involves rst solving for y1 , then for y3 , and nally for y2 . Given the solution y = [10 7 2]>, the linear equation Ux = y can the be solved using backward substitution, yielding the solution of the original linear equation, x = [ 1 2 1]>. The L-U factorization algorithm is faster than other linear equation solution methods that are typically presented in elementary linear algebra courses. For large n, it takes approximately n3 =3+ n2 long operations (multiplications and divisions) to solve an n n linear equation using L-U factorization. Explicitly computing the inverse of A and then computing A 1 b requires approximately n3 + n2 long operations. Solving the linear equation using Cramer's rule requires approximately (n + 1)! long operations. To solve a 10 10 linear equation, for example, L-U factorization requires exactly 430 long operations, whereas matrix inversion and multiplication requires exactly 1100 long operations and Cramer's rule requires nearly 40 million long operations. Linear equations arise so frequently in numerical analysis that most numerical subroutine packages and software programs include either a basic subroutine or an intrinsic function for solving a linear equation using L-U factorization. In Matlab, the solution to the linear equation Ax = b is returned by the statement x = A n b. The \n", or \backslash", operator is designed to solve the linear equation using L-U factorization, unless a special structure for A is detected, in which case Matlab may implicitly use another, more eÆcient method. In particular, if Matlab detects that A is triangular or permuted triangular, it will dispense with L-U factorization and solve the linear equation directly using forward or backward substitution. Matlab also uses special algorithms when the A matrix is positive de nite (see Section 2.7 on page 22).

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

17

Although L-U factorization is the best general method for solving a linear equation, situations can arise in which alternative methods may be preferable. For example, in many computational economic applications, one must solve a series of linear equations, all having the same A matrix, but dierent b vectors, b1 ; b2 ; : : : ; bm . In this situation, it is often computationally more eÆcient to directly compute and store the inverse of A rst and then compute the solutions x = A 1 bj by performing only direct matrix-vector multiplications. Whether explicitly computing the inverse is faster than L-U factorization depends on the size of the linear equation system n and the number of times, m, an equation system is to be solved. Computing x = A n bj a total of m times involves mn3 =3 + mn2 long operations. Computing A 1 once and then computing A 1 bj a total of m times requires n3 + mn2 long operations. Thus explicit computation of the inverse should be faster than L-U factorization whenever the number of equations to be solved m is greater than three or four. The actual breakeven point will vary across numerical analysis packages, depending on the computational idiosyncrasies and overhead costs of the L-U factorization and inverse routines implemented in the package.

2.4 Gaussian Elimination The L-U factors of a matrix A are computed using Gaussian elimination. Gaussian elimination is based on two elementary row operations: subtracting a constant multiple of one row of a linear equation from another row, and interchanging two rows of a linear equation. Either operation may be performed on a linear equation without altering its solution. The Gaussian elimination algorithm begins with matrices L and U initialized as L = I and U = A, where I is the identity matrix. The algorithm then uses elementary row operations to transform U into an upper triangular matrix, while preserving the permuted lower diagonality of L and the factorization A = LU : Consider the matrix 2 3 2 0 1 2 6 4 2 1 47 7 A=6 4 2 2 2 3 5: 2 2 7 3 The rst stage of Gaussian elimination is designed to nullify the subdiagonal entries of the rst column of the U matrix. The U matrix is updated by subtracting 2 times the rst row from the second, subtracting 1 times the rst row from the third, and subtracting 1 times the rst row from the fourth. The L matrix, which initially equals

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

18

the identity, is updated by storing the multipliers 2, 1, and 1 as the subdiagonal entries of its rst column. These operations yield updated L and U matrices: 2 6

L=6 4

1 2 1 1

0 1 0 0

0 0 1 0

0 0 0 1

3

2

7 7 5

U =6 4

6

2 0 0 0

0 2 2 2

1 1 1 6

2 0 1 1

3

7 7: 5

After the rst stage of Gaussian elimination, A = LU and L is lower triangular, but U is not yet upper triangular. The second stage Gaussian elimination is designed to nullify the subdiagonal entries of the second column of the U matrix. The U matrix is updated by subtracting 1 times second row from the third and subtracting 1 times the second row from the fourth. The L matrix is updated by storing the multipliers 1 and 1 as the subdiagonal elements of its second column. These operations yield updated L and U matrices: 2 3 2 3 1 0 0 0 2 0 1 2 6 2 6 0 1 0 07 2 1 07 7 6 7 L=6 U = 4 1 5 4 1 1 0 0 0 0 1 5: 1 1 0 1 0 0 5 1 After the second stage of Gaussian elimination, A = LU and L is lower triangular, but U still is not upper triangular. In the third stage of Gaussian elimination, one encounters an apparent problem. The third diagonal element of the matrix U is zero, making it impossible to nullify the subdiagonal entry as before. This diÆculty is easily remedied, however, by interchanging the third and fourth rows of U . The L matrix is updated by interchanging the previously computed multipliers residing in the third and fourth columns. These operations yield updated L and U matrices: 2 6

L=6 4

1 2 1 1

0 1 1 1

0 0 0 1

0 0 1 0

3

2

7 7 5

U =6 4

6

2 0 0 0

0 2 0 0

1 1 5 0

2 0 1 1

3

7 7: 5

The Gaussian elimination algorithm terminates with a permuted lower triangular matrix L and an upper triangular matrix U whose product is the matrix A. In theory, Gaussian elimination will compute the L-U factors of any matrix A, provided A is invertible. If A is not invertible, Gaussian elimination will detect this by encountering a zero diagonal element in the U matrix that cannot be replaced with a nonzero element below it.

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

19

2.5 Rounding Error In practice, Gaussian elimination performed on a computer can sometimes render inaccurate solutions due to rounding errors. The eects of rounding errors, however, can often be controlled by pivoting. Consider the linear equation M 1 1 x1 = 1 : 1 1 x2 2 where M is a large positive number. To solve this equation via Gaussian elimination, a single row operation is required: subtracting M times the rst row from the second row. In principle, this operation yields the L-U factorization M 1 1 = 1 0 M 1 1 1 1 M 1 0 M +1 : In theory, applying forward and backward substitution yields the solution x1 = M=(M + 1) and x2 = (M + 2)=(M + 1), which are both very nearly one. In practice, however, Gaussian elimination may yield a very dierent result. In performing Gaussian elimination, one encounters an operation that cannot be carried out precisely on a computer, and which should be avoided in computational work: adding or subtracting values of vastly dierent magnitudes. On a computer, it is not meaningful to add or subtract two values whose magnitude dier by more than the number of signi cant digits that the computer can represent. If one attempts such an operation, the smaller value is eectively treated as zero. For example, the sum of 0:1 and 0:0001 may be 0:1001, but on a hypothetical machine with three digit precision the result of the sum is rounded to 0:1 before it is stored. In the linear equation above, adding 1 or 2 to a suÆciently large M on a computer simply returns the value M . Thus, in the rst step of the backward substitution, x2 is computed, not as (M + 2)=(M + 1), but rather as M=M , which is exactly one. Then, in the second step of backward substitution, x1 = M (1 x2 ) is computed to be zero. Rounding error thus produces computed solution for x1 that has a relative error of nearly 100 percent. Fortunately, there is a partial remedy for the eects of rounding error in Gaussian elimination. Rounding error arises in the example above because the diagonal element M 1 is very small. Interchanging the two rows at the outset of Gaussian elimination does not alter the theoretical solution to the linear equation, but allows one to perform Gaussian elimination with a diagonal element of larger magnitude.

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

20

Consider the equivalent linear equation system after the rows have been interchanged:

1 1 1 M 1

x1 x2

2 = 1 :

After interchanging the rows, the new A matrix may be factored as

1 1 M 1 1 =

1 0 M 1 1

1 1 0 M 1+1 :

Backward and forward substitution yield the theoretical results x1 = 1 M 1 and x2 = M 1 + 1 + M 1 (1 M 1 ). In evaluating these expressions on the computer, one again encounters rounding error. Here, x2 is numerically computed to be exactly one as before. However, x1 is also computed to be exactly one. The computed solution, though not exactly correct, is correct to the precision available on the computer, and is certainly more accurate than the one obtained without interchanging the rows. Interchanging rows during Gaussian elimination in order to make the magnitude of diagonal element as large as possible is called pivoting. Pivoting substantially enhances the reliability and the accuracy of a Gaussian elimination routine. For this reason, all good Gaussian elimination routines designed to perform L-U factorization, including the ones implemented in Matlab, employ some form of pivoting.

2.6 Ill Conditioning Pivoting cannot cure all the problems caused by rounding error. Some linear equations are inherently diÆcult to solve accurately on a computer, despite pivoting. This occurs when the A matrix is structured in such a way that a small perturbation Æb in the data vector b induces a large change Æx in the solution vector x. In such cases the linear equation or, more generally, the A matrix are said to be ill-conditioned. One measure of ill-conditioning in a linear equation Ax = b is the \elasticity" of the solution vector x with respect to the data vector b

jjÆxjj=jjxjj : jjÆbjj>0 jjÆbjj=jjbjj

= sup

The elasticity gives the maximum percentage change in the size of the solution vector x induced by a one percent change the size of the data vector b. If the elasticity is large, then small errors in the computer representation of the data vector b can produce large errors in the computed solution vector x. Equivalently, the computed solution x will have far fewer signi cant digits than the data vector b.

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

21

The elasticity of the solution is expensive to compute and thus is virtually never computed in practice. In practice, the elasticity is estimated using the condition number of the matrix A, which for invertible A is de ned by jjAjj jjA 1jj: The condition number of A is the least upper bound of the elasticity. The bound is tight in that for some data vector b, the condition number equals the elasticity. The condition number is always greater than or equal to one. Numerical analysts often use the rough rule of thumb that for each power of 10 in the condition number, one signi cant digit is lost in the computed solution vector x. Thus, if A has a condition number of 1000, the computed solution vector x will have about three fewer signi cant digits than the data vector b. Consider the linear equation Ax = b where Aij = in j and bi = (in 1)=(i 1). In theory, the solution x to this linear equation is a vector containing all ones for any n. In practice, however, if one solves the linear equation numerically using Matlab's \n" operator one can get quite dierent results. Below is a table that gives the supremum norm approximation error in the computed value of x and the condition number of the A matrix for dierent n: Approximation Condition n Error Number 5 10 15 20 25

2.5e-013 5.2e-007 1.1e+002 9.6e+010 8.2e+019

2.6e+004 2.1e+012 2.6e+021 1.8e+031 4.2e+040

In this example, the computed answers are accurate to seven decimals up to n = 10. The accuracy, however, deteriorates rapidly after that. In this example, the matrix A is a member of the a class of notoriously ill-conditioned matrices called the Vandermonde matrices, which we will encounter again in Chapter 6. Ill-conditioning ultimately can be ascribed to the limited precision of computer arithmetic. The eects of ill-conditioning can often be mitigated by performing computer arithmetic using the highest precision available on the computer. The best way to handle ill-conditioning, however, is to avoid it altogether. This is often possible when the linear equation problem is as an elementary task in a more complicated solution procedure, such as solving a nonlinear equation or approximating a function with a polynomial. In such cases one can sometimes reformulate the problem or alter the solution strategy to avoid the ill-conditioned linear equation. We will see several examples of this avoidance strategy later in the book.

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

22

2.7 Special Linear Equations Gaussian elimination can be accelerated for matrices possessing certain special structures. Two such classes arising frequently in computational economic analysis are symmetric positive de nite matrices and sparse matrices. Linear equations Ax = b in which A is a symmetric positive de nite arise frequently in least-squares curve- tting and optimization applications. A special form of Gaussian elimination, the Cholesky factorization algorithm, may be applied to such linear equations. Cholesky factorization requires only half as many operations as general Gaussian elimination and has the added advantage that it is less vulnerable to rounding error and does not require pivoting. The essential idea underlying Cholesky factorization is that any symmetric positive de nite matrix A can be uniquely expressed as the product

A = U >U of an upper triangular matrix U and its transpose. The matrix U is called the Cholesky factor or square root of A. Given the Cholesky factor of A, the linear equation

Ax = U >Ux = U >(Ux) = b may be solved eÆciently by using forward substitution to solve

U >y = b and then using backward substitution to solve

Ux = y: The Matlab \n" operator will automatically employ Cholesky factorization, rather than L-U factorization, to solve the linear equation if it detects that A is symmetric positive de nite. Another situation that often arises in computational practice are linear equations Ax = b in which the A matrix is sparse, that is, it consists largely of zero entries. For example, in solving dierential equations, one often encounters tridiagonal matrices, which are zero except on or near the diagonal. When the A matrix is sparse, the conventional Gaussian elimination algorithm consists largely of meaningless, but costly, operations involving either multiplication or addition with zero. The Gaussian elimination algorithm in these instances can often be dramatically increased by avoiding these useless operations. Matlab has special routines for eÆciently storing sparse matrices and operating with them. In particular, the Matlab command S=sparse(A) creates a version S of

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

23

the matrix A stored in a sparse matrix format, in which only the nonzero elements of A and their indices are explicitly stored. Sparse matrix storage requires only a fraction of the space required to store A in standard form if A is sparse. Also, the operator \n" is designed to recognize whether a sparse matrix is involved in the operation and adapts the Gaussian elimination algorithm to exploit this property. In particular, both x = S n b and x = A n b will compute the answer to Ax = b. However, the former expression will be executed substantially faster by avoiding operations with zeros.

2.8 Iterative Methods Algorithms based on Gaussian elimination are called exact or, more properly, direct methods because they would generate exact solutions for the linear equation Ax = b after a nite number of operations, if not for rounding error. Such methods are ideal for moderately-sized linear equations, but may be impractical for large ones. Other methods, called iterative methods can often be used to solve large linear equations more eÆciently if the A matrix is sparse, that is, if A is composed mostly of zero entries. Iterative methods are designed to generate a sequence of increasingly accurate approximations to the solution of a linear equation, but generally do not yield an exact solution after a prescribed number of steps, even in theory. The most widely-used iterative methods for solving a linear equation Ax = b are developed by choosing an easily invertible matrix Q and writing the linear equation in the equivalent form

Qx = b + (Q A)x or

x = Q 1 b + (I

Q 1 A)x:

This form of the linear equation suggests the iteration rule x(k+1) Q 1 b + (I Q 1 A)x(k) ; which, if convergent, must converge to a solution of the linear equation. Ideally, the so-called splitting matrix Q will satisfy two criteria. First, Q 1 b and Q 1 A should be relatively easy to compute. This is true if Q is either diagonal or triangular. Second, the iterates should converge quickly to the true solution of the linear equation. If jjI Q 1Ajj < 1 in any matrix norm, then the iteration rule is a contraction mapping and is guaranteed to converge to the solution of the linear equation from any initial value. The smaller

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

24

the value of the matrix norm jjI Q 1 Ajj, the faster the guaranteed rate of convergence of the iterates when measured in the associated vector norm. The two most popular iterative methods are the Gauss-Jacobi and Gauss-Seidel methods. The Gauss-Jacobi method sets Q equal to the diagonal matrix formed from the diagonal entries of A. The Gauss-Seidel method sets Q equal to the upper triangular matrix formed from the upper triagonal elements of A. Using the rowsum matrix norm to test the convergence criterion, both methods are guaranteed to converge from any starting value if A is diagonally dominant, that is, if

jAiij >

n X i=1 i6=j

jAij j

8i:

Diagonally dominant matrices arise naturally in many computational economic applications, including the solution of dierential equations and the approximation of functions using cubic splines, both of which will be discussed in later sections. The following Matlab script solves the linear equation Ax = b using GaussJacobi iteration: d = diag(A); for it=1:maxit dx = (b-A*x)./d; x = x+dx; if norm(dx) and Z and D are real-valued. Another factorization is the QR decomposition, which nds a representation A = QR, where Q is orthonormal and R is triangular. This factorization is not unique; there are a number of algorithms that produce dierent values of Q and R, including Householder and Givens transformations. A need not be square to apply the QR decomposition. Finally, we mention the singular-value decomposition (SVD), which nds U , D and V , with U and V orthonormal and D diagonal, that satis es A = UDV >. The diagonal elements of D are known as the singular values of A and are nonnegative and generally order highest to lowest. In the case of a square, symmetric A, this is identical to the eigenvalue/eigenvector decomposition. The SVD can be used with non-square matrices. The SVD is the method of choice for determining matrix condition and rank. The condition number is the ratio of the highest to the lowest singular value; the rank is the number of non-zero singular values. In practice, one would treat a singular value Djj as zero if Djj < maxi (Dii ), for some speci ed value of (Matlab sets equal to the value of the machine precision eps times the maximum of the number of rows

CHAPTER 2. COMPUTER BASICS AND LINEAR EQUATIONS

29

and columns of A). We have only touched on iterative methods. These are mainly useful when solving large sparse systems that cannot be stored directly. See Golub and Ortega, Section 9.3, for further details and references. Numerous software libraries that perform basic linear algebra computations are available, including LINPACK, LAPACK, IMSL and NAG. See Notes on Web Resources (page 497).

Chapter 3 Nonlinear Equations and Complementarity Problems One of the most basic numerical operations encountered in computational economics is to nd the solution of a system of nonlinear equations. Nonlinear equations generally arise in one of two forms. In the nonlinear root nding problem, a function f mapping 0

1.4

π1’f (x) = 0: This imposes only a one-sided bound on x at 0. Doubly bounded problems are often called mixed complementarity problems (MCPs) and are typically formulated as solving max(min(f (x); x a); x

b) = 0

rather than min(max(f (x); a

x); b x) = 0;

as we have done. If standard software for MCPs is used, the sign of f should be reversed. A number of approaches exist for solving CPs other than reformulation as a root nding problem. A well-studied and robust algorithm based on successive linearization is incorporated in the PATH algorithm described by Ferris et al., and Ferris and Munson. The linear complementarity problem (LCP) has received considerable attention and forms the underpinning for methods based on successive linearization. Lemke's method is perhaps the most widely used and robust LCP solver. It is described in the standard works cited above. Recent work on LCPs includes Kremers and Talman. We have not discussed homotropy methods for solving nonlinear equations, but these may be desirable to explore, especially if good initial values are hard to guess. Judd, chapter 5, contains a good introduction, with economic applications and references for further study.

Chapter 4 Finite-Dimensional Optimization In this chapter we examine methods for optimizing a function with respect to a nite number of variables. In the nite-dimensional optimization problem, one is given a real-valued function f de ned on X f (x) for all x 6= x in N \ X . If x is a local maximum of f that resides in the interior of X and f is twice dierentiable there, then f 0 (x ) = 0 and f 00 (x ) is negative semide nite. Conversely, if f 0 (x ) = 0 and f 00 (x) is negative semide nite in an -neighborhood of x contained in X , then x is a local maximum; if, additionally, f 00 (x ) is negative de nite, then x is a strict local maximum. By the Local-Global Theorem, if f is concave, X is convex, and x is a local maximum of f , then x is a global maximum of f on X .2

4.1 Derivative-Free Methods As was the case with univariate root nding, optimization algorithms exist that will place progressively smaller brackets around a local maximum of a univariate function. Such methods are relatively slow, but do not require the evaluation of function derivatives and are guaranteed to nd a local optimum to a prescribed tolerance in a known number of steps. The most widely-used derivative-free method is the golden search method. Suppose we wish to nd a local maximum of a continuous univariate function f (x) on the interval [a; b]. Pick any two numbers in the interior of the interval, say x1 and x2 with x1 < x2 . Evaluate the function and replace the original interval with [a; x2 ] if f (x1 ) > f (x2 ) or with [x1 ; b] if f (x2 ) f (x1 ). A local maximum must be contained in the new interval because the endpoints of the new interval are lower than a point on the interval's interior (or the local maximum is at one of the original endpoints). 2 These results also hold for minimization, provided one changes concavity of f to convexity and

negative (semi) de niteness of f 00 to positive (semi) de niteness.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

65

We can repeat this procedure, producing a sequence of progressively smaller intervals that are guaranteed to contain a local maximum, until the length of the interval is shorter than some desired tolerance level. A key issue is how to pick the interior evaluation points. Two simple criteria lead to the most widely-used strategy. First, the length of the new interval should be independent of whether the upper or lower bound is replaced. Second, on successive iterations, one should be able to reuse an interior point from the previous iteration so that only one new function evaluation is performed per iteration. These conditions are uniquely satis ed by selecting xi = a + i (b a), where 3

p

p

5 1 : 2 2 The value 2 is known as the golden ratio, a number dear to the hearts of Greek philosophers and Renaissance artists. The following Matlab script computes a local maximum of a univariate function f on an interval [a; b] using the golden search method. The script assumes that the user has written a Matlab routine f that evaluates the function at an arbitrary point. The script also assumes that the user has speci ed interval endpoints a and b and a convergence tolerance tol:

1 =

5

and 2 =

alpha1 = (3-sqrt(5))/2; alpha2 = (sqrt(5)-1)/2; x1 = a+alpha1*(b-a); f1 = f(x1); x2 = a+alpha2*(b-a); f2 = f(x2); d = alpha1*alpha2*(b-a); while d>tol d = d*alpha2; if f2f1 x = x2; else x = x1; end

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

66

The Matlab toolbox accompanying the textbook includes a function golden that computes a local maximum of a univariate function using the golden search method. To apply this function, one rst de nes a Matlab function that returns the value of the objective function at an arbitrary point. One then passes the name of this function, along with the lower and upper bounds for the search interval, to golden. For example, to compute a local maximum of f (x) = x cos(x2 ) 1 on the interval [0; 3], one executes the following Matlab script: f = inline('x*cos(x^2)-1'); x = golden(f,0,3)

Execution of this script yields the result x = 0:8083. As can be seen in Figure 4.1, this point is a local maximum, but not a global maximum in [0; 3]. The golden search method is guaranteed to nd the global maximum when the function is concave. However, as the present example makes clear, this need not be true when the optimand is not concave. 2

Maximization of x cos(x ) via golden search 3

2

1

0

−1

−2

−3

0

0.5

1

1.5

2

2.5

3

Figure 4.1 Another widely-used derivative-free optimization method for multivariate functions is the Nelder-Mead algorithm. The algorithm begins by evaluating the objective function at n + 1 points. These n + 1 points form a so-called simplex in the

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

67

n-dimensional decision space. This is most easily visualized when x is 2-dimensional, in which case a simplex is a triangle. At each iteration, the algorithm determines the point on the simplex with the lowest function value and alters that point by re ecting it through the opposite face of the simplex. This is illustrated in Figure 4.2 (Re ection), where the original simplex is lightly shaded and the heavily shaded simplex is the simplex arising from re ecting point A. If the re ection succeeds in nding a new point that is higher than all the others on the simplex, the algorithm checks to see if it is better to expand the simplex further in this direction, as shown in Figure 4.2 (Expansion). On the other hand, if the re ection strategy fails to produce a point that is at least as good as the second worst point, the algorithm contracts the simplex by halving the distance between the original point and its opposite face, as in Figure 4.2 (Contraction). Finally, if this new point is not better than the second worst point, the algorithm shrinks the entire simplex toward the best point, point B in Figure 4.2 (Shrinkage). Simplex Transformations in the Nelder−Mead Algorithm Reflection

Expansion

B

B

A

A

C

Contraction

Shrinkage

B

A

C

B

A

C

C

Figure 4.2 One thing that may not be clear from the description of the algorithm is how to compute a re ection. For a point xi , the re ection is equal to xi + 2di where xi + di is the point in the center of the opposite face of the simplex from xi . That central point can be found by averaging the n other point of the simplex. Denoting the re ection

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION by ri , this means that 1X ri = xi + 2 x n j 6=i j

!

xi

n 2X = x n j =1 j

68

1 1 + xi : 2

An expansion can then be computed as 1:5ri

0:5xi

and a contraction as 0:25ri + 0:75xi : The Nelder-Mead algorithm is simple, but slow and unreliable. However, if a problem involves only a single optimization or costly function and derivative evaluations, the Nelder-Mead algorithm is worth trying. In many problems an optimization problem that is embedded in a larger problem must be solved repeatedly, with the function parameters perturbed slightly with each iteration. For such problems, which are common is dynamic models, one generally will want to use a method that moves more quickly and reliably to the optimum, given a good starting point. The Matlab toolbox accompanying the textbook includes a function neldermead that maximizes a multivariate function using the Nelder-Meade method. To apply this function, one must rst de ne a Matlab function f that returns the value of the objective functions at an arbitrary point and then pass the name of this function along with a starting value x to neldermeade. Consider, for example, maximizing the \banana" function f (x) = 100(x2 x21 )2 (1 x1 )2 , so-called because its contours resemble bananas. Assuming a starting value of (1; 0), the Nelder-Meade procedure may be executed in Matlab as follows: f = inline('-100*(x(2)-x(1)^2)^2-(1-x(1))^2'); x = neldmead(f,[1; 0]);

Execution of this script yields the result x = (1; 1), which indeed is the global maximum of the function. The contours of the banana function and the path followed by the Nelder-Meade iterates are illustrated in Figure 4.3.

4.2 Newton-Raphson Method The Newton-Raphson method for maximizing an objective function uses successive quadratic approximations to the objective in the hope that the maxima of the approximants will converge to the maximum of the objective. The Newton-Raphson method is intimately related to the Newton method for solving root nding problems.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

69

Nelder−Mead Maximization of Banana Function 1.2

1

0.8

x

2

0.6

0.4

0.2

0

−0.2 −0.2

0

0.2

0.4

0.6

x

0.8

1

1.2

1

Figure 4.3 Indeed, the Newton-Raphson method is identical to applying Newton's method to compute the root of the gradient of the objective function. More generally, the Newton-Raphson method begins with the analyst supplying a guess x(0) for the maximum of f . Given x(k) , the subsequent iterate x(k+1) is computed by maximizing the second order Taylor approximation to f about x(k) : f (x) f x(k) + f 0 x(k) x x(k) + 12 x x(k) >f 00 x(k) x x(k) : Solving the rst order condition f 0 x(k) + f 00 x(k) x x(k) = 0; yields the iteration rule 1 0 (k) x(k+1) x(k) f 00 x(k) f x : In theory, the Newton-Raphson method converges if f is twice continuously dierentiable and if the initial value of x supplied by the analyst is \suÆciently" close to a local maximum of f at which the Hessian f 00 is negative de nite. There is, however, no generally practical formula for determining what suÆciently close is. Typically,

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

70

an analyst makes a reasonable guess for the maximum of f and counts his blessings if the iterates converge. The Newton-Raphson method can be robust to the starting value if f is well behaved, for example, if f is globally concave. The Newton-Raphson method, however, can be very sensitive to starting value if the function is not globally concave. Also, in practice, the Hessian f 00 must be well-conditioned at the optimum, otherwise rounding errors in the vicinity of the optimum can make it diÆcult to compute a precise approximate solution. The Newton-Raphson algorithm has numerous drawbacks. First, the algorithm requires computation of both the rst and second derivatives of the objective function. Second, the Newton-Raphson algorithm oers no guarantee that the objective function value may be increased in the direction of the Newton step. Such a guarantee is 00 ( k ) available only if the Hessian f x is negative de nite; otherwise, one may actually move towards a saddle point of f (if the Hessian is inde nite) or even a minimum (if Hessian is positive de nite). For this reason, the Newton-Raphson method is rarely used in practice, and then only if the objective function is globally concave.

4.3 Quasi-Newton Methods Quasi-Newton methods employ a similar strategy to the Newton-Raphson method, but replace the Hessian of the objective function (or its inverse) with a negative de nite approximation, guaranteeing that function value can be increased in the direction of the Newton step. The most eÆcient quasi-Newton algorithms employ an approximation to the inverse Hessian, rather than the Hessian itself, in order to avoid performing a linear solve, and employ updating rules that do not require second derivative information to ease the burden of implementation and the cost of computation. In analogy with the Newton-Raphson method, quasi-Newton methods use a search direction of the form d(k) = B (k) f 0 x(k) where B (k) is an approximation to the inverse Hessian of f at the kth iterate x(k) . The vector d(k) is called the Newton or quasi-Newton step. The more robust quasi-Newton methods do not necessarily take the full Newton step, but rather shorten it or lengthen it in order to obtain improvement in the objective function. This is accomplished by performing a line-search in which one ( k ) ( k ) seeks a step length s > 0 that maximizes or nearly maximizes f x + sd . Given the computed step length s(k) , one updates the iterate as follows: x(k+1) = x(k) + s(k) d(k) :

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

71

Line search methods are discussed in the following section. Quasi-Newton method dier in how the inverse Hessian approximation B k is constructed and updated. The simplest quasi-Newton method sets B k = I , where I is the identity matrix. This leads to a Newton step that is identical to the gradient of the objective function at the current iterate: d(k) = f 0 x(k) : The choice of gradient as a step direction is intuitively appealing because the gradient always points in the direction which, to a rst order, promises the greatest increase in f . For this reason, this quasi-Newton method is called the method of steepest ascent. The steepest ascent method is simple to implement, but is numerically less eÆcient in practice than competing quasi-Newton methods that incorporate information regarding the curvature of the objective function. The most widely-used quasi-Newton methods that employ curvature information produce a sequence of inverse Hessian estimates that satisfy two conditions. First, given that d(k) f 00 1 (x(k) ) f 0 (x(k) + d(k) ) f 0 (x(k) ) ; the inverse Hessian estimate Ak is required to satisfy the so-called quasi-Newton condition: d(k) = B (k) f 0 (x(k) + d(k) ) f 0 (x(k) ) : Second, the inverse Hessian estimate A(k) is required to be both symmetric and negative-de nite, as must be true of the inverse Hessian at a local maximum. The negative de niteness of the Hessian estimate assures that the objective function value can be inreased in the direction of the Newton step. Two methods that satisfy the quasi-Newton and negative de niteness conditions are the Davidson-Fletcher-Powell (DFP) and Broyden-Fletcher-Goldfarb-Shano (BFGS) updating methods. The DFP method uses the updating scheme

B

dd> B+ > d u

Buu>B ; u>Bu

where

d = x(k+1)

x(k)

and

u = f 0 (x(k+1) ) f 0 (x(k) ):

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION The BFGS method uses the update scheme

B

1

wd> + dw>

72

w >u > dd ; d>u

B+ > d u where w = d Bu: The BFGS algorithm is generally considered superior to DFP, although there are problems for which DFP outperforms BFGS. However, except for the updating formulae, the two methods are identical, so it is easy to implement both and give users the choice.3 The following Matlab script computes the maximum of a user-supplied multivariate function f using the quasi-Newton method. The script assumes that the user has written a Matlab routine f that evaluates the function at an arbitrary point and that the user has speci ed a starting point x, an initial guess for the inverse Hessian A, a convergence tolerance tol, and a limit on the number of iterations maxit. The script uses an auxiliary algorithm optstep to determine the step length (discussed in the next section). The algorithm also oers the user a choice on how to select the search direction, searchmeth (1-steepest ascent, 2-DFP, 3-BFGS). k = size(x,1); [fx0,g0] = f(x); if all(abs(g0)<eps), return; end for it=1:maxit d = -A*g0; % search direction [s,fx] = optstep(StepMeth,f,x,fx0,g0,d,maxstep,varargin{:}); if fxu. If this value becomes very small in absolute value, numerical instabilities will result. It is best to monitor this value and skip updating A(k) if it becomes too small. A useful rule for what is too small is

jd>uj < jjdjj jjujj; where is the precision of the computer. An alternative to skipping the update, used in the following implementation, is to reset the inverse Hessian approximant to a scaled negative identity matrix. The Matlab toolbox accompanying the textbook includes a function qnewton that maximizes a multivariate function using the quasi-Newton method. To apply this function, one de nes a Matlab function f that returns the function value at arbitrary point and speci es a starting value x. Consider, for example, maximizing the banana function f (x) = 100 (x2 x21 )2 (1 x1 )2 assuming a starting value of (1; 0). To maximize the function using the default BFGS Hessian update, one proceeds as follows: f = inline('-100*(x(2)-x(1)^2)^2-(1-x(1))^2'); x = qnewton(f,[1;0]);

Execution of this script returns the maximum x = (1; 1) in 18 iterations. To maximize the function using the steepest ascent method, one may override the default update method as follows: optset('qnewton','SearchMeth',1); x = qnewton(f,[1;0]);

Execution of this script fails to nd the optimum afer 250 iterations, the default maximum allowable, returning the nonoptimal value x = (0:82; 0:68). The path followed by the quasi-Newton method iterates in these two examples are illustrated in Figure 4.4 and 4.5.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

74

BFGS Quasi−Newton Maximization of Banana Function 1.2

1

0.8

x2

0.6

0.4

0.2

0

−0.2 −0.2

0

0.2

0.4

0.6

x

0.8

1

1.2

1

Figure 4.4

4.4 Line Search Methods Just as was the case with root nding problems, it is not always best to take a full Newton step. In fact, it may be better to either stop short or move past the Newton step. If we view the Newton step as de ning a search direction, performing a onedimensional search in that direction will generally produce improved results. In practice, it is not necessary to perform a thorough search for the best point in the Newton direction. Typically, it is suÆcient to assure that successive quasiNewton iterations are raising the value of the objective. A number of dierent line search methods are used in practice, including the golden search method. The golden search algorithm is very reliable, but computationally ineÆcient. Two alternative schemes are typically used in practice to perform line searches. The rst, known as the Armijo search, is similar to the backstepping algorithm used in root nding and

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

75

Steepest Ascent Maximization of Banana Function 1.2

1

0.8

x2

0.6

0.4

0.2

0

−0.2 −0.2

0

0.2

0.4

0.6

x

0.8

1

1.2

1

Figure 4.5 complementarity problems. The idea is to nd the minimum power j such that

f (x + sd) f (x) f 0 (x)>d; s where s = j and 0 < < 0:5. Note that the left hand side is the slope of the line from the current iteration point to the candidate for the next iteration and the right hand side is the directional derivative at x in the search direction d, that is, the instantaneous slope at the current iteration point. The Armijo approach is to backtrack from a step size of 1 until the slope on the left hand side is a given fraction, of the slope on the right hand side. Another widely-used approach, known as Goldstein search, is to nd any value of s that satis es f (x + sd) f (x) 1f 0(x)>d; 0 f 0 (x)>d s

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

76

for some values of 0 < 0 0:5 1 < 1. Unlike the Armijo search, which is both a method for selecting candidate values of the stepsize s and a stopping rule, the Goldstein criteria is simply a stopping rule that can be used with a variety of search approaches. Figure 4.6 illustrates the typical situation at a given iteration. The gure plots the objective function, expressed as deviations from f (x), i.e., f (x + sd) f (x), against the step size s in the Newton direction d. The objective function is highlighted and the line tangent to it at the origin has slope equal to the directional derivative f 0 (x)>d. The values 0 and 1 de ne a cone within which the function value must lie to be considered an acceptable step. In Figure 4.6 the cone is bounded by dashed lines with 0 = 0:25 and 1 = 0:75. These values are for illustrative purposes and de ne a far narrower cone than is desirable; typical values are on the order of 0.0001 and 0.9999. Step Length Determination

−5

12

x 10

10

8

f(x+sd)

6

BHHHSTEP: s = 0.00097656 STEPBT: s = 0.0010499 GOLDSTEP: s = 0.001054

4

2

0

−2

−4 −5

0

5

10

s

15

20 −4

x 10

Figure 4.6 A simple strategy for locating an acceptable point is to rst nd a point in or above the cone using step doubling (doubling the value of s at each iteration). If a point above the cone is found rst, we have a bracket within which points in the cone must lie. We can then narrow the bracket using the golden search method. We call

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

77

this the bhhhstep approach. Another approach, stepbt, checks to see if s = 1 is in the cone and, if so, maximizes a quadratic approximation to the objective function in the Newton direction constructed from knowledge of f (x), f 0 (x)d and f (x + d). If the computed step s is acceptable, it is taken. Otherwise, the algorithm iterates until an acceptable step is found using a cubic approximation to the objective function in the Newton direction constructed from knowledge of f (x), f 0 (x)d, f (x + s(j 1) d) and f (x + s(j ) d). stepbt is fast and generally gives good results. It is recommended as the default lines search procedure for general maximization algorithms. In Figure 4.6 we have included three stars representing the step lengths determined by stepbhhh, stepbt and our implementation of the golden search step length maximizer, stepgold (also listed below). stepgold rst brackets a maximum in the direction d and then uses the golden search approach to narrow the bracket. This method diers from the other two in that it terminates when the size of the bracket is less than a speci ed tolerance (here set at 0.0004). In this example, the three methods took 11, 4 and 20 iterations to nd an acceptable step length, respectively. Notice that stepbt found the maximum in far fewer steps than did stepgold. This will generally be true when the function is reasonably smooth and hence well approximated by a cubic function. It is diÆcult to make generalizations about the performance of the step line search algorithm, however. In this example, the step size was very small, so both stepbhhh and stepgold take many iterations to get the order of magnitude correct. In many cases, if the initial distance is well chosen, the step size will typically be close to unity in magnitude, especially as the maximizer approaches the optimal point. When this is true, the advantage of stepbt is less important. Having said all of that, we recommend stepbt as a default. We have also implemented our algorithm to use stepgold if the other methods fail.

4.5 Special Cases Two special cases arise often enough in economic practice (especially in econometrics) to warrant additional discussion. Nonlinear least squares and the maximum likelihood problems have objective functions with special structures that give rise to their own special quasi-Newton methods. The special methods dier from other Newton and quasi-Newton methods only in the choice of the matrix used to approximate the Hessian. Because these problems generally arise in the context of statistical applications, we alter our notation to conform with the conventions for those applications. The optimization takes place with respect to a k-dimensional parameter vector and n will refer to the number of observations.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

78

The nonlinear least squares problem takes the form min 21 f ()>f () where f : f ():

The Hessian of the objective function is n X @ 2 f () 0 > 0 f () f () + fi () >: @@ i=1 If we ignore the second term in the Hessian, we are assured of having a positive de nite matrix with which to determine the search direction: d = f 0 ()>f 0 () 1 f 0 ()>f (): All other aspects of the problem are identical to the quasi-Newton methods already discussed, except for the adjustment to minimization. It is also worth pointing out that, in typical applications, f () composed of error terms each having expectation 0. Assuming that the usual central limit assumptions apply to the error term, the inverse of the approximate Hessian 0 > 0 1 f () f () ; can be used as a covariance estimator for . Maximum likelihood problems are speci ed by a choice of a distribution function for the data, y , that depends on a parameter vector, . The log-likelihood function is the sum of the logs of the likelihoods of each of the data points: l (; y ) =

n X i=1

ln f (; yi):

The score function is de ned as the matrix of derivatives of the log-likelihood function evaluated at each observation: @ l (; yi ) si (; y ) = : @ (viewed as a matrix, the score function is n k).

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

79

A well-known result in statistical theory is that the expectation of the inner product of the score function is equal to the negative of the expectation of the second derivative of the likelihood function, which is known as the information matrix. Either the information matrix or the sample average of the inner product of the score function provides a positive de nite matrix that can be used to determine a search direction. In the later case the search direction is de ned by d = s(; y )>s(; y ) 1 s(; y )>1n ; where 1n is an n-vector of ones. This approach is known as the modi ed method of scoring.4 As in the case of the nonlinear least squares, a covariance estimator for is immediately available using s(; y )>s(; y ) 1 :

4.6 Constrained Optimization The simplest constrained optimization problem involves the maximization of an objective function subject to simple bounds on the choice variable: max f (x):

axb

According to the Karush-Kuhn-Tucker theorem, if f is dierentiable on [a; b], then x is a constrained maximum for f only if it solves the complementarity problem CP(f 0 ; a; b):5

ai xi bi xi > ai ) fi0 (x) 0 xi < bi ) fi0 (x) 0: Conversely, if f is concave and dierentiable on [a; b] and x solves the complementarity problem CP(f 0 (x); a; b), then x is a constrained maximum of f ; if additionally f is strictly concave on [a; b], then the maximum is unique. Two bounded maximization problems are displayed in Figure 4.7. In this gure, the bounds are displayed with dashed lines and the objective function with a solid line. In Figure 4.7A the objective function is concave and achieves its unique global maximum on the interior of the feasible region. At the maximum, the derivative of f must be zero, for otherwise one could improve the objective by moving either up or 4 If the information matrix is known in closed form, it could be used rather than s> s and the

method would be known as the method of scoring. 5 Complementarity problems are discussed in Section 3.7 on page 48.)

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

80

down, depending on whether the derivative is positive or negative. In Figure 4.7B we display a more complicated case. Here, the objective function is convex. It achieves a global maximum at the lower bound and a local, non-global maximum at the upper bound. It also achieves a global minimum in the interior of the interval. One−Dimensional Maximization Problems 2

2

1.5

1.5

1

1

0.5

0.5

0

0

−0.5 −0.5

0

0.5

1 2

1.5

−0.5 −0.5

*

a) f(x) = 1.5−(x−3/4) , x = 3/4

0

0.5

1 2

1.5

*

b) f(x) = −2+(x−3/4) , x = 0 & 1

Figure 4.7 In Figure 4.8 we illustrate the complementarity problem presented by the KarushKuhn-Tucker conditions associated with the bounded optimization problems in Figure 4.7. The complementarity problems are represented in their equivalent root nding formulation min(max(f 0 (x); a x); b x) = 0. In Figure 4.8A we see that the KarushKuhn-Tucker conditions possess an unique solution at the unique global maximum of f . In Figure 4.8B there are three solutions to the Karush-Kuhn-Tucker conditions, corresponding to the two local maxima and the one local minimum of f on [a; b]. These gures illustrate that one may reliably solve a bounded maximization problem using standard complementarity methods only if the objective function is concave. Otherwise, the complementary algorithm could lead to local, non-global maxima or even minima. The sensitivity of the optimal value of the objective function f to changes in the bounds of the bounded optimization problem are relatively easy to characterize. According to the Envelope theorem, df = min (0; f 0 (x )) da df = max (0; f 0 (x )) : db More generally, if f , a, and b all depend on some parameter p, then @f da @f db df @f = + min 0; + max 0; ; dp @p @x dp @x dp

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

81

Complementarity Conditions for Maximization Problems 2

2

1.5

1.5

1

1

0.5

0.5

0

0

−0.5

−0.5

−1

−1

−1.5

−1.5

−2 −0.5

0

0.5

1

1.5

−2 −0.5

a) f’(x) = −2(x−3/4)

0

0.5

1

1.5

b) f’(x) = 2(x−3/4)

Figure 4.8 where the derivatives of f , a, and b are evaluated at (x ; p). The most general constrained nite-dimensional optimization problem that we consider is max f (x); s.t. R(x) S r;

axb

where R : [a; b] ! <m . According to the Karush-Kuhn-Tucker Theorem, a regular point x maximizes f subject to the general constraints only if there is a vector 2 R0 (x)> > ; a ; b R(x) r p q

where the values of p and q depend on the type of constraint:

pi 0 1 1 qi 1 1 0 =

A point x is regular if the gradients of all constraint functions Ri that satisfy Ri (x) = ri are linearly independent.6 Conversely, if f is concave, R is convex and (x; ) satis es the Karush-Kuhn-Tucker conditions, then x solves the general constrained optimization problem. 6 The regularity conditions may be omitted if either the constraint function R is linear, or if f is concave, R is convex, and the feasible set has nonempty interior.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

82

In the Karush-Kuhn-Tucker conditions, the i are called Lagrangian multipliers or shadow prices. The signi cance of the shadow prices is given by the Envelope Theorem, which asserts that under mild regularity conditions, @f = ; @r that is, i is the rate at which the optimal value of the objective will change with changes in the constraint constant ri . The sensitivity of the optimal value of the objective function f to changes in the bounds on the choice variable are given by: df = min 0; f 0 (x) R0 (x)> da df = max 0; f 0 (x) R0 (x)> : db The Karush-Kuhn-Tucker complementarity conditions typically have a natural arbitrage interpretation. Consider the problem of maximizing pro ts from certain economic activities when the activities employ xed factors or resources that are available in limited supply. Speci cally, suppose x1 ; x2 ; : : : ; xn are the levels of n economic activities, which must be nonnegative, and the objective is to maximize pro t f (x) generated by those activities. Also suppose that these activities employ m resources and that the usage of the ith resource Ri (x) cannot exceed a given availability ri . Then i represents the opportunity cost or shadow price of the ith resource and

MPj =

@f @xj

X i

i

@Ri @xj

represents the economic marginal pro t of the j th activity, accounting for the opportunity cost of the resources employed in the activity. The Karush-Kuhn-Tucker conditions may thus be interpreted as follows: xj 0 activity levels are nonnegative MPj 0 otherwise, raise pro t by raising xj xj > 0 ) MPj 0 otherwise, raise pro t by lowering xj i 0 Shadow price of resource is nonnegative Ri (x) ri resource use cannot exceed availability i > 0 ) Ri (x) = ri valuable resources should not be wasted There are many approaches to solving general optimization problems that would take us beyond what we can hope to accomplish in this book. Solving general optimization problems is diÆcult and the best advice we can give here is that you should obtain a good package and use it. However, if your problem is reasonably well behaved

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

83

in the sense that the Karush-Kuhn-Tucker are both necessary and suÆcient, then the problem is simply to solve the Karush-Kuhn-Tucker conditions. This means writing the Karush-Kuhn-Tucker conditions as a complementarity problem and solving the problem using the methods of the previous chapter.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

84

Exercises 4.1. Suppose that the probability density function of a non-negative random variable, y , is exp( yi =i )=i where i = Xi for some observable data Xi (Xi is 1 k and is k 1). (a) Show that the rst order conditions for the maximum likelihood estimator of can be written as X Xi > Xi X Xi > yi = : (Xi )2 (Xi )2 (b) Use this result to de ne a recursive algorithm to estimate . (c) Write a Matlab function of the form [beta,sigma]=example(y,X) that computes the maximum likelihood estimator of and its asymptotic covariance matrix . The function should be a stand-alone procedure (i.e., do not call any optimization or root- nding solvers) that implements the recursive algorithm. (d) Show that the recursive algorithm can be interpreted as a quasi-Newton method. Explain fully. 4.2. The two-parameter gamma probability distribution function has density:

1 x1 1 e f (x; ) = 2 (1 )

2 x

:

(a) Derive the rst order conditions associated with maximizing the log-likelihood associated with this distribution. Note that the rst and second derivatives of the log of the function are the psi and trigamma functions. The Matlab toolbox contains procedures to evaluate these special functions. (b) Solve the rst order condition for 2 in terms of 1 . Use this to derive an optimality condition for 1 alone. (c) Write a Matlab function that is passed a vector of observations (of positive numbers) and returns the maximum likelihood estimates of and their covariance matrix. Implement the function to use Newton's method without calling any general optimization or root- nding solvers.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

85

Notice that the maximum likelihood estimator of depends on the data Pn Pn 1 1 only through Y1 = n i=1 xi , the arithmetic mean, and Y2 = exp( n i=1 ln(xi )), the geometric mean (Y1 and Y2 are known as suÆcient statistics for ). Your code should exploit this by only computing these suÆcient statistics once. (d) Plot 1 as a function of Y1 =Y2 over the range [1:1; 3]. 4.3. CIR Bond Pricing The so-call Cox-Ingersoll-Ross (CIR) bond pricing model uses the function

Z (r; ; ; ; ) = A( ) exp( B ( )r) with 2=2 2 e( +)=2 A( ) = ( + )(e 1) + 2

and

B ( ) =

2(e 1) ; ( + )(e 1) + 2

p where = 2 + 2 2 . Here r is the current instantaneous rate of interest, is the time to maturity of the bond, and , and are model parameters. The percent rate of return on a bond is given by r( ) = 100 ln(Z (r; ))=: In the following table, actual rates of return7 on Treasury bonds for 9 values of are given for 5 consecutive Wednesdays in early 1999. Date .25 .5 1 2 3 5 7 10 30 1999/01/07 4.44 4.49 4.51 4.63 4.63 4.62 4.82 4.77 5.23 1999/01/13 4.45 4.48 4.49 4.61 4.61 4.60 4.84 4.74 5.16 1999/01/20 4.37 4.49 4.53 4.66 4.66 4.65 4.86 4.76 5.18 1999/01/27 4.47 4.47 4.51 4.57 4.57 4.57 4.74 4.68 5.14 1999/02/03 4.48 4.55 4.59 4.72 4.73 4.74 4.91 4.83 5.25 7 Actually, the data is constructed by a smoothing and tting process and thus these returns do

not necessarily represent the market prices of actual bonds; for the purposes of the exercise, however, this fact can be ignored.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

86

a) For each date, nd the values of r, , and that minimize the squared dierences between the model and the actual rates of return. This is one way that model parameters can be \calibrated" to the data and ensures that model parameters yield a term structure that is close to the observed term structure. b) In this model the values of the parameters are xed, but the value of r varies over time. In fact, part (a) showed that the three parameters values vary from week to week. As an alternative, nd the values of the parameters and the 5 values of r that minimize the squared deviations between the model and actual values. Compare these to the parameter values obtained by calibrating to each date separately. 4.4. Option-based Risk-neutral Probabilities An important theorem in nance theory demonstrates that the value of a European put option is equal to the expected return on the option, with the expectation taken with respect to the so-called risk-neutral probability measure8

V (k) =

Z 1

0

(k

p)+ f (p)dp =

Z k

0

(k

p)f (p)dp

where f (p) is the probability distribution of the price of underlying asset at the option's maturity, k is the option's strike price and (x)+ = max(0; x). This relationship has been used to compute estimates of f (p) based on observed asset prices. There are two approaches that have been taken. The rst is to choose a parametric form for f and nd the parameters that best t the observed option price. To illustrate, de ne the discrepancy between observed and model values as

e(k) = Vk

Z k

0

(k

p)f (p; )dp

and then t by, e.g., minimizing the sum of squared errors: min

X j

e(kj )2 :

The other approach is to discretize the price, pi , and its probability distribution, fi . Values of the fi can be computed that correctly reproduce observed option

8 This is strictly true only if the interest rate is 0 or, equivalently, if the option values are interest

rate adjusted appropriately. Also, the price of the underlying asset should not be correlated with the interest rate.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

87

value and that satisfy some auxiliary condition. That condition could be a smoothness condition, such as minimizing the sum of the fi+1 2fi + fi 1 ; if the pi are evenly spaced this is proportional to an approximation to the second derivative of f (p). An alternative is to compute the maximum entropy values of the fi : max

X

ffi g i

fi ln(fi );

subject to the constraints that the fi are non-negative and sum to 1. It is easy to show that the fi satisfy P exp( j j (kj pi )+ ) P fi = P + ; i exp( j j (kj pi ) )

where j is the Lagrange multiplier on the constraint that the j th option is correctly priced. The problem is thus converted to the root nding problem of solving for the Lagrange multipliers:

Vj

X i

fi (kj

pi )+ = 0;

where the fi are given above. Write a MATLAB program that takes as input a vector of price nodes, p, and associated vectors of strike prices, k, and observed put option values, v , and returns a vector of maximum entropy probabilities, f , associated with p: f=RiskNeutral(p,k,v)

The function can pass an auxiliary function to a root nding algorithm such as Newton or Broyden. The procedure just described has the peculiar property that (if put options alone are used), the upper tail probabilities are all equal above the highest value of the kj . To correct for this, one can add in the constraint that the expected price at the option's expiration date is the current value of the asset, as would be true in a 0 interest rate situation. Thus modify the original program to accept the current value of the price of the underlying asset: f=RiskNeutral(p,k,v,p0)

To test your program, use the script le RiskNeutD.m.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

88

4.5. Consider the Quadratic Programming problem 1 > > max 2 x Dx + c x x s:t: Ax b x0

where D is a symmetric n n matrix, A is an m n matrix, b is an m-vector. (a) Write the Karush-Kuhn-Tucker necessary conditions as a linear complementarity problem. (b) What condition on D will guarantee that the Karush-Kuhn-Tucker conditions are suÆcient for optimality? 4.6. A consumer's preferences over the commodities x1 , x2 , and x3 are characterized by the Stone-Geary utility function

U (x) =

3 X i=1

i ln(xi

i )

where i > 0 and xi > i 0. The consumer wants to maximize his utility subject to the budget constraint 3 X i=1

p i xi I

where pi > 0 denotes the price of xi , I denotes income, and I

P3 i=1 pi i

> 0:

(a) Write the Karush-Kuhn-Tucker necessary conditions for the problem. (b) Verify that the Karush-Kuhn-Tucker conditions are suÆcient for optimality. (c) Derive analytically the associated demand functions. (d) Derive analytically the shadow price and interpret its meaning. (e) Prove that the consumer will utilize his entire income.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

89

4.7. Derive and interpret the Karush-Kuhn-Tucker conditions for the classical transportation problem: min

s:t:

n X m X {=1 |=1 n X x{| {=1 m X x{| |=1 x{|

x{| x{|

d| | = 1; : : : ; m s{ { = 1; : : : ; n

0

{ = 1; : : : ; n; | = 1; : : : ; m

State suÆcient conditions for the transportation problem to have an optimal feasible solution. 4.8. Demand for a commodity in regions A and B is given by:

Region A : p = 200 2q Region B : p = 100 4q Supply is given by:

Region A : p = 20 + 8q Region B : p = 10 + 6q: The transportation cost between regions is $10 per unit. Formulate an optimization problem that characterizes the competitive spatial price equilibrium. Derive, but do not solve, the Karush-Kuhn-Tucker conditions. Interpret the shadow prices. 4.9. Portfolio Choice Suppose that the returns on a set of n assets has mean (n 1) and variance (n n). A portfolio of assets can be characterized by a set of share weights, ! , an n 1 vector of non-negative values summing to 1. The mean return on portfolio is >! and its variance is ! >! . A portfolio is said to be on the mean-variance eÆcient frontier if its variance is as small as possible for a given mean return.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

90

Write a MATLAB program that calculates and plots a mean-variance eÆcient frontier. Write it so it returns two vectors that provide points on the frontier: [mustar,Sigmastar]=MV(mu,Sigma,n)

Here n represents the desired number of points. Run the program MVDemo.m to test your program. Hint: Determine the mean return from the minimium variance portfolio and determine the maximum mean return portfolio. These provide lower and upper bounds for mustar. Then solve the optimization problem for the remaining n 2 values of mustar. 4.10. Consider the nonlinear programming problem max x22 2x1 x21 x1 ;x2 s:t: x21 + x22 1 x1 0; x2 0: (a) (b) (c) (d) (e)

Write the Karush-Kuhn-Tucker necessary conditions for the problem. What points satisfy the Karush-Kuhn-Tucker necessary conditions. Are the Karush-Kuhn-Tucker conditions suÆcient for optimality? How do you know that problem possesses an optimum? Determine the optimum, if any.

4.11. A tomato processor operates two plants whose hourly variable costs (in dollars) are, respectively,

c1 = 80 + 2:0x1 + 0:001x21 c2 = 90 + 1:5x2 + 0:002x22 ; where xi is the number of cases produced per hour at plant i. In order to meet contractual obligations, he must produce at a rate of at least 2000 cases per hour (x1 + x2 2000.) He wishes to do so at minimal cost. (a) Write the Karush-Kuhn-Tucker necessary conditions for the problem. (b) Verify that the Karush-Kuhn-Tucker conditions are suÆcient for optimality. (c) Determine the optimal levels of production. (d) Determine the optimal value of the shadow price and interpret its meaning.

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

91

4.12. Consider the problem of allocating a scarce resource, the total supply of which is b > 0, among n tasks with separable rewards:

f1 (x1 ) + f2 (x2 ) + : : : + fn (xn ) s:t: x1 + x2 + : : : + xn b x1 0; x2 0; : : : ; xn 0:

max

x1 ;x2 ;:::;xn

Assume each fi is strictly increasing and dierentiable but not necessarily concave. (a) (b) (c) (d) (e)

How do you know that problem possesses an optimum? Write the Karush-Kuhn-Tucker necessary conditions. Prove that the scarce resource will be completely utilized. Interpret the shadow price associated with the resource constraint. Given a marginal increase in the supply of the resource, to which task(s) would you allocate the additional amount.

4.13. Consider a one-output two-input production function

y = f (x1 ; x2 ) = x21 + x22 : Given the prices of inputs 1 and 2, w1 and w2 , the minimum cost of producing a given level of output, y, is obtained by solving the constrained optimization problem min C = w1 x1 + w2 x2

x1 ;x2

s:t:

f (x1 ; x2 ) y:

Letting denote the shadow price associated with the production constraint, answer the following questions: (a) (b) (c) (d)

Write the Karush-Kuhn-Tucker necessary conditions. Find explicit expressions for the optimal x1 , x2 , and C . Find an explicit expression for the optimal and interpret its meaning. Dierentiate the expression for C to con rm that @C @ y = .

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

92

4.14. A salmon cannery 1produces Q 1-lb. cans of salmon according to a technology 1 4 3 given by Q = 18K L , where capital K is xed at 16 units in the shortrun and labor L may be hired in any quantity at a wage rate of w dollars per unit. Each unit of output provides a pro t contribution of 1 dollar. (a) Derive the rm's shortrun demand for labor. (b) If w = 3, how much would the rm be willing to pay to rent a unit of capital. 4.15. Consider the nonlinear programming problem min s:t:

x1 ;:::;x4

x01:25 x03:50 x04:25 x1 + x2 + x3 + x4 4 x1 ; x2 ; x3 ; x4 0:

(a) What can you say about the optimality of the point (1; 0; 2; 1)? (b) Does this program possess all the correct curvature properties for the Karush-Kuhn-Tucker conditions to be suÆcient for optimality throughout the feasible region? Why or why not? (c) How do you know that problem possesses an optimal feasible solution? 4.16. Consider the non-linear programming problem min s:t:

x1 ;x2

2x21 12x1 + 3x22 3x1 + x2 12 x1 + x2 6 x1 ; x2 0:

18x2 + 45

The optimal solution to this problem is: x1 = 3 and x2 = 3. (a) Verify that the Karush-Kuhn-Tucker conditions are satis ed by this solution. (b) Determine the optimal values for the shadow prices 1 and 2 associated with the structural constraints, and interpret 1 and 2 . (c) If the second constraint were changed to x1 + x2 5, what would be the eect on the optimal values of x1 , x2 , 1 , and 2 ?

CHAPTER 4. FINITE-DIMENSIONAL OPTIMIZATION

93

Bibliographic Notes A number of very useful references exist on computational aspects of optimization. Perhaps the most generally useful for practitioners are Gill et al. and Fletcher. Ferris and Sinapiromsaran discusses solving non-linear optimization problems by formulating them as CPs.

Chapter 5 Numerical Integration and Dierentiation In many computational economic applications, one must compute the de nite integral of a real-valued function f with respect to a \weighting" function w over an interval I of R) distributed as + ZR ~ and Z is a row d-vector of independent standard normal variates. If fzi ; wig are the degree n Gaussian nodes and weights for a standard normal variate, then an nd degree 1 Gauss-Hermite quadrature applies to the weighting function w(x) = exp( x2 ), as opposed the p weighting function for the standard normal density w(x) = exp( x2 =2)= 2.

CHAPTER 5. INTEGRATION AND DIFFERENTIATION

100

approximation for X~ may be constructed using tensor products. For example, in two dimensions the nodes and weights would take the form

xij = (1 + R11 zi + R21 zj ; 2 + R12 zi + R22 zj ) and

pij = pi pj : The Gaussian quadrature scheme for normal variates may also be used to develop a reasonable scheme for discretizing lognormal random variates. By de nition, Y~ is lognormally distributed with parameters and 2 if, and only if, it is distributed as exp(X~ ) were X~ is normally distributed with mean and variance 2 . It follows that if fxi ; wi g are nodes and weights for a Normal(; 2) distribution, then fyi; wi g, where yi = exp(xi ), provides a reasonable discrete approximant for a Lognormal(; 2) distribution. Given this discrete approximant for the lognormal distribution, one can ~ as follows: Ef (Y~ ) = R f (y ) w(y ) dy estimate the expectation of a function of Y Pn i=1 f (yi )wi This integration rule for lognormal distributions will be exact if f is a polynomial of degree 2n 1 and less in log(y ) (not in y ).

5.3 Monte Carlo Integration Monte Carlo integration methods are motivated by the Strong Law of Large Numbers. One version of the Law states that if x1 ; x2 ; : : : are independent realizations of a random variable X~ and f is a continuous function, then lim n!1

n 1X f (x ) = Ef (X~ ) n i=1 i

with probability one. The Monte Carlo integration scheme is thus a simple one. To compute an approximation to the expectation of f (X~ ), one draws a random sample x1 ; x2 ; : : : ; xn from the distribution of X~ and sets h

E f (X~ )

i

n1

n X i=1

f (xi ):

oers two intrinsic random number generators. The routine rand generates a random sample from the Uniform(0,1) distribution stored in either vector or matrix format. Similarly, the routine randn generates a random sample from the standard normal distribution stored in either vector or matrix format. In particular, Matlab

CHAPTER 5. INTEGRATION AND DIFFERENTIATION

101

a call of the form x=rand(m,n) or x=randn(m,n) generates a random sample of mn realizations and stores it in an m n matrix. The uniform random number generator is useful for generating random samples from other distributions. Suppose X~ has a cumulative distribution function F (x) = Pr(X~ x) whose inverse has a well-de ned closed form. If U~ is uniformly distributed on (0; 1), then X~ = F 1 (U~ ) has the desired distribution F . Thus, to generate a random sample x1 ; x2 ; : : : ; xn from the X~ distribution, one generates a random sample u1 ; u2 ; : : : ; un from the uniform distribution and sets xi = F 1 (ui ). The standard normal random number generator is useful for generating random samples from related distributions. For example, to generate a random sample of n lognormal variates, one may use the script x = exp(mu+sigma*randn(n));

where mu and sigma are the mean and standard deviation of the distribution. To generate a random sample of n d-dimensional normal variates one may use the script x = randn(n,d)*chol(Sigma)+mu(ones(n,1),:);

where Sigma is the d by d variance-covariance matrix and mu is the mean vector in row form. A fundamental problem that arises with Monte Carlo integration is that it is almost impossible to generate a truly random sample of variates for any distribution. Most compilers and vector processing packages provide intrinsic routines for computing so-called random numbers. These routines, however, employ iteration rules that generate a purely deterministic, not random, sequence of numbers. In particular, if the generator is repeatedly initiated at the same point, it will return the same sequence of \random" variates each time. About all that can be said of numerical random number generators is that good ones will generate sequences that appear to be random, in that they pass certain statistical tests for randomness. For this reason, numerical random number generators are more accurately said to generate sequences of \pseudo-random" rather than random numbers. Monte Carlo integration is easy to implement and may be preferred over Gaussian quadrature if the a routine for computing the Gaussian mass points and probabilities is not readily available or if the integration is over many dimensions. Monte Carlo

CHAPTER 5. INTEGRATION AND DIFFERENTIATION

102

integration, however, is subject to a sampling error that cannot be bounded with certainty. The approximation can be made more accurate, in a statistical sense, by increasing the size of the random sample, but this can be expensive if evaluating f or generating the pseudo-random variate is costly. Approximations generated by Monte Carlo integration will vary from one integration to the next, unless initiated at the same point, making the use of Monte Carlo integration in conjunction within other iterative schemes, such as dynamic programming or maximum likelihood estimation, problematic. So-called quasi Monte-Carlo methods can circumvent some of the problems associated with Monte-Carlo integration.

5.4 Quasi-Monte Carlo Integration Although Monte-Carlo integration methods originated using insights from probability theory, recent extensions have severed that connection and, in the process, demonstrated ways in which the methods can be improved. Monte-Carlo methods rely on sequences fxi g with the property that 1 b aX lim f (xi ) = n!1 n i=1

Z b a

f (x) dx:

Any sequence that satis es this condition for arbitrary (Riemann) integrable functions can be used to approximate an integral on [a; b]. Although the Law of Large Numbers assures us that this is true when the xi are independent and identically distributed random variables, other sequences also satisfy this property. Indeed, it can be shown that sequences that are explicitly non-random, but instead attempt to ll in space in a regular manner exhibit improved convergence properties. There are numerous schemes for generating equidistributed sequences. The best known are the Neiderreiter, Weyl, and Haber. The following Matlab script generates equidistributed sequences of length n for the unit hypercube: eds_pp=sqrt(primes(7920)); i=(1:n)'; switch upper(type(1)) case 'N' % Neiderreiter j=2.^((1:d)/(d+1)); x=i*j; x=x-fix(x); case 'W' % Weyl j=eds_pp(1:d); x=i*j;

CHAPTER 5. INTEGRATION AND DIFFERENTIATION x=x-fix(x); case 'H' j=eds_pp(1:d); x=(i.*(i+1)./2)*j; x=x-fix(x); end

103

% Haber

The Matlab toolbox accompanying the textbook includes a function qnwequi that generates the equidistributed nodes for integration over an arbitrary bounded interval in a space of arbitrary dimension. The calling sequence takes the form [x,w] = qnwequi(n,a,b,type);

where x are the nodes, w are the weights, n is the number of nodes and weights, a is the vector of left endpoints, b is the vector of right endpoints, and type refers to the type of equidistributed sequence (`N'-Neiderrieter, `W'-Weyl, and `H'-Haber). For example, suppose one wished to compute the integral of exp(x1 + x2 ) over the rectangle [1; 2] [0; 5] in 0 for a lower bound and h < 0 for an upper bound). To obtain formulii for second derivatives we can use the same approach but in order to obtain second order accuracy, we will (in general) require a weighted sum composed of 4 points

f 0 (x) af (x) + bf (x + h) + cf (x + h) + df (x + h):

We also expand the Taylor series to the fourth order, obtaining

af (x) + bf (x + h) + cf (x + h) + df (x + h) = 2 (a + b + c + d)f (x) + h(b + c + d )f 0 (x) + h2 (b + c2 + d 2 )f 00 (x)

4 + d 3 )f 000 (x) + h24 bf (4) (z1 ) + c4 f (4) (z2 ) + d 4 f (4) (z3 ) : + 6 The constraints a + b + c + d = 0, b + c + d = 0, b + c2 + d 2 = 2=h2 and b + c3 + d 3 = 0 uniquely determine a, b, c and d: h3 (b + c3

2

2 6 6 4

a b c d

3 7 7 5

2 = 2 h

6 6 6 6 6 6 6 6 6 6 6 6 6 6 4

1++ 2 2 ( 1)( 1)( 2 1 ( 1)( 1)( 1 2 ( 1)( 1)(

3

) ) )

7 7 7 7 7 7 7 7 7 7 7 7 7 7 5

CHAPTER 5. INTEGRATION AND DIFFERENTIATION

110

with

af (x) + bf (x + h) + cf (x + h) + df (x + h) = f 00 (x) + O(h2 ): Thus, by using 4 points, we can ensure that the approximation converges at a quadratic rate in h. Some special cases of importance arise when the evaluations points are evenly spaced. When x lies halfway between x + h and one of the other two points (i.e., when either = 1 or = 1), we obtain the centered nite dierence approximation

f 00 (x) =

f (x + h) 2f (x) + f (x h) + O(h2); h2

which is second order accurate even though only three approximation points are used. If = 2 and = 3 we obtain a formula that is useful when a derivative is needed at a boundary of the domain. In this case 1 f 00 (x) = 2 [2f (x) 5f (x + h) + 4f (x + 2h) f (x + 3h)] + O(h2 ): h An important use of second derivatives is in computing Hessian matrices. Given some function f : 0, there exists a polynomial p such that

jjf pjj1 =

sup jf (x) p(x)j < :

x2[a;b]

The Weierstrass theorem provides strong motivation for using polynomials to approximate continuous functions. The theorem, however, is not very practical. It gives no guidance on how to nd a good polynomial approximant. It does not even state what order polynomial is required to achieve the required level of accuracy. One apparently reasonable way to construct a nth -degree polynomial approximant for a function f is to form the unique (n 1)th -order polynomial p(x) = c1 + c2 x + c3 x2 + : : : + cn xn 1 that interpolates f at the n evenly spaced interpolation nodes i 1 xi = a + b a 8i = 1; 2; : : : ; n: n 1 In practice, however, polynomial interpolation at evenly spaced nodes often does not produce an accurate approximant. In fact, there are well-behaved functions for which polynomial approximants with evenly spaced nodes rapidly deteriorate, rather than improve, as the degree of approximation n rises. Numerical analysis theory and empirical experience both suggest that polynomial approximants over a bounded interval [a; b] should be constructed by interpolating the underlying function at the so-called Chebychev nodes: a+b b a n i + 0:5 xi = + cos ; 8i = 1; 2; : : : ; n: 2 2 n As illustrated in Figure 6.1 for n = 9, the Chebychev nodes are not evenly spaced. They are more closely spaced near the endpoints of the interpolation interval and less so near the center.

CHAPTER 6. FUNCTION APPROXIMATION

132

Chebychev Nodes 1

0.8

0.6

0.4

0.2

0

−0.2

−0.4

−0.6

−0.8

−1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Figure 6.1 Chebychev-node polynomial interpolants possess some strong theoretical properties. According to Rivlin's Theorem, Chebychev-node polynomial interpolants are very nearly optimal polynomial approximants. Speci cally, the approximation error associated with the nth -degree Chebychev-node polynomial interpolant cannot be larger than 2 log(n) + 2 times the lowest error attainable with any other polynomial approximant of the same order. For n = 100, this factor is approximately 30, which is very small when one considers that other polynomial interpolation schemes typically produce approximants with errors that are orders of magnitude, that is, powers of 10, larger then the optimum. In practice, the accuracy aorded by the Chebychevnode polynomial interpolant is often much better than indicated by Rivlin's bound, especially if the function being approximated is smooth. Another theorem, Jackson's theorem, provides a more useful result. Speci cally, if f is continuously dierentiable, then the approximation error aorded by the nth degree Chebychev-node polynomial interpolant pn can be bounded above: jjf pnjj n6 jjf 0jj(b a)(log(n)= + 1): This error bound can often be accurately estimated in practice, giving the analyst a good indication of the accuracy aorded by the Chebychev-node polynomial in-

CHAPTER 6. FUNCTION APPROXIMATION

133

terpolant. More importantly, however, the error bound goes to zero as n rises. In contrast to polynomial interpolation with evenly spaced nodes, one can achieve any desired degree of accuracy with Chebychev-node polynomial interpolation by increasing the degree of approximation. To illustrate the dierence between Chebychev and evenly spaced node polynomial interpolation, consider approximating the function f (x) = exp( x) on the interval [ 1; 1]. The approximation error associated with ten node polynomial interpolants are illustrated in Figure 6.2. The Chebychev node polynomial interpolant exhibits errors that oscillate fairly evenly throughout the interval of approximation, a common feature of Chebychev node interpolants. The evenly spaced node polynomial interpolant, on the other hand, exhibits signi cant instability near the endpoints of the interval. The Chebychev node polynomial interpolant avoids such endpoint instabilities because the nodes are more heavily concentrated near the endpoints. −9

4

x 10

Approximation Error for exp(−x) Chebychev Nodes Uniform Nodes

3.5

3

2.5

y

2

1.5

1

0.5

0

−0.5

−1

0

x

Figure 6.2 The most intuitive basis for expressing polynomials, regardless of the interpolation nodes chosen, is the monomial basis consisting of the simple power functions 1; x; x2 ; x3 ; : : :, illustrated in Figure 6.3 for the interval x 2 [0; 1]. However, the monomial basis produces an interpolation matrix that is a so-called Vandermonde

CHAPTER 6. FUNCTION APPROXIMATION matrix: =

2 6 6 6 4

x1 x2 .. . xn

1 1 .. . 1

::: ::: ... :::

xn1 2 xn1 1 xn2 2 xn2 1 .. .. . . n 2 xn xnn 1

134

3 7 7 7: 5

Vandermonde matrices are notoriously ill-conditioned, and increasingly so as the degree of approximation n is increased. Thus, eorts to compute the basis coeÆcients of the monomial basis polynomials often fail due to rounding error, and attempts to compute increasingly more accurate approximations by raising the number of interpolation nodes are often futile. Monomial Basis Functions 1

1

0

1

0 0

1

1

0 0

1

1

0 1

1

1

1

1

0

1

1

0 0

0

0 0

1

0

1

1

0 0

0

0 0

1

Figure 6.3 Fortunately, alternatives to the standard monomial basis exist. In fact, any sequence of n polynomials having exact orders 0; 1; 2; : : : ; n 1 can serve as a basis for all polynomials of order less than n. One such basis for the interval [a; b] on the real line is the Chebychev polynomial basis. De ning z = 2(x a)=(b a) 1, to normalize the domain to the interval [-1,1], the Chebychev polynomials are de ned

CHAPTER 6. FUNCTION APPROXIMATION

135

recursively as:2

j (x) = Tj 1 (z ) where

T0 (z ) T1 (z ) T2 (z ) T3 (z )

= = = = .. . Tj (z ) =

1 z 2z 2 4z 3

1 3z

2zTj 1 (z )

Tj 2 (z ):

The rst twelve Chebychev basis polynomials for the interval x 2 [0; 1] are displayed in Figure 6.4. Chebychev Polynomial Basis Functions 1

1

1

0

0

0

0

1

0

1

1

1

1

0

0

0

0

1

0

1

1

1

1

0

0

0

0

1

0

1

0

1

0

1

0

1

Figure 6.4 2 The Chebychev polynomials also possess the alternate trigonometric de nition Tj (z ) =

cos arccos(z )j on the domain [a; b].

CHAPTER 6. FUNCTION APPROXIMATION

136

Chebychev polynomials are an excellent basis for constructing polynomials that interpolate function values at the Chebychev nodes. Chebychev basis polynomials in combination with Chebychev interpolation nodes yields an extremely well-conditioned interpolation equation that can be accurately and eÆciently solved, even with high degree approximants. The interpolation matrix associated with the Chebychev interpolation has typical element ij = cos((n

i + 0:5)(j

1)=n):

This Chebychev interpolation matrix is orthogonal > = diagfn; n=2; n=2; : : : ; n=2g

p

and has a condition number 2 regardless of the degree of interpolation, which is very near the ideal minimum of 1. This implies that the Chebychev basis coeÆcients can be computed quickly and accurately, regardless of the degree of interpolation. Derivatives and integrals of polynomials are also polynomials. Dierentiation decreases the polynomial order by 1 and integration increases it by 1. A dierential operator that maps the coeÆcients of a polynomial in the Chebyshev basis is given by the n 1 n matrix operator with ij th element given by

Dij =

8 > > >

> > : 0

if i = 1 and i + j is odd if i > 1, i + j is odd and i<j otherwise.

Similarly, the n + 1 n matrix with ij th element

Dij 1 =

8 > > > > > > > > > > > > < > > > > > > > > > > > > :

if i 2 and j = 1 b a if i = 1 and j = 2 8 j ( 1) (b a) if i = 1 and j > 2 2j (j 2) b a if i > 1 and j = i 1 4j b a 4(j 2) if i > 1 and j = i + 1 0 otherwise. b a

2

maps Chebyshev coeÆcients into the coeÆcients of the integral (normalized so the integral is 0 at a).

CHAPTER 6. FUNCTION APPROXIMATION

137

6.3 Piecewise Polynomial Splines Piecewise polynomial splines, or simply splines for short, are a rich, exible class of functions that may be used instead of high degree polynomials to approximate a real-valued function over a bounded interval. Generally, an order k spline consists of series of kth order polynomial segments spliced together so as to preserve continuity of derivatives of order k 1 or less. The points at which the polynomial pieces are spliced together, 1 < 2 < : : : < p , are called the breakpoints of the spline. By convention, the rst and last breakpoints are the endpoints of the interval of approximation [a; b]. A general order k spline with p breakpoints may be characterized by (p 1)(k +1) parameters, given that each of the p 1 polynomial segments is de ned by its k + 1 coeÆcients. By de nition, however, a spline is required to be continuous and have continuous derivatives up to order k 1 at each of the p 2 interior breakpoints, which imposes k(p 2) conditions. Thus, an order k spline with p breakpoints is actually characterized by n = (k + 1)(p 1) k(p 2) = p + k 1 free parameters. It should not be surprising that a general order k spline with p breakpoints can be written as a linear combination of n = p + k 1 basis functions. There are many ways to express bases for splines, but for applied numerical work the most useful are the so-called B-splines. The B-splines for an order k spline with breakpoint vector can be computed using the recursive de nition x j k k 1; j +1 x Bjk; (x) = Bj 1 (x) + B k 1; (x); j j k j +1 j +1 k j for i = 1; : : : ; n, with the recursion starting with j x < j +1 0 ; Bj (x) = 10 ifotherwise. This de nition requires that we extend the breakpoint vector, , for j < 1 and j > p: 1 j = ab ifif jj p: Additionally, at the endpoints we set the terms B0k 1; Bnk 1; = = 0: 1 1 k n+1 n k+1 Given a B-spline representation of a spline, the spline can easily be dierentiated by computing simple dierences, and can be integrated by computing simple sums. Speci cally:

dBjk; (x) k = Bjk 11; (x) dx j j k

k Bjk 1; (x) j +1 j +1 k

CHAPTER 6. FUNCTION APPROXIMATION and

Z x a

Bjk; (z )dz

=

n X i i=j

138

i k k+1; Bi+1 (x): k

Although these formulae appear a bit complicated, their application in computer programs is relatively straightforward. First notice that the derivative of a B-spline of order k is a weighted sum of two order k 1 B-splines. Thus, the derivative of an order k spline is an order k 1 spline with the same breakpoints. Similarly, the integral of a B-spline can be represented as the sum of B-splines of order k + 1. Thus, the antiderivative of an order k spline is an order k + 1 spline with the same breakpoints. This implies that the family of splines are closed under dierentiation and integration, with the oder k decreasing or increasing by 1 and with the breakpoints remaining unchanged. Two classes of splines are often employed in practice. A rst-order or linear spline is a series of line segments spliced together to form a continuous function. A thirdorder or cubic spline is a series of cubic polynomials segments spliced together to form a twice continuously dierentiable function. Linear spline approximants are particularly easy to construct and evaluate in practice, which explains their widespread popularity. Linear splines use line segments to connect points on the graph of the function to be approximated. A linear spline with n evenly spaced breakpoints on the interval [a; b] may be written as a linear combination

f^(x) =

n X i=1

i (x)ci

of the basis functions: ( jx j j if jx j h 1 j j (x) = h 0 otherwise. Here, h = (b a)=(n 1) is the distance between breakpoints and j = a + (j 1)h, j = 1; 2; : : : ; n, are the breakpoints. The linear spline basis functions are popularly called the \hat" functions, for reasons that are clear from Figure 6.5. This gure illustrates the basis functions for a degree 12, evenly spaced breakpoint linear spline on the interval [0; 1]. Each hat function is zero everywhere, except over a narrow support of width 2h. The basis function achieves a maximum of 1 at the midpoint of its support. One can x the coeÆcients of an n-degree linear spline approximant for a function f by interpolating its values at any n points of its domain, provided that the resulting

CHAPTER 6. FUNCTION APPROXIMATION

139

Linear Spline Basis Functions 1

1

0

1

0 0

1

1

0 0

1

1

0 1

1

1

1

1

0

1

1

0 0

0

0 0

1

0

1

1

0 0

0

0 0

1

Figure 6.5 interpolation matrix is nonsingular. However, if the interpolation nodes x1 ; x2 ; : : : ; xn are chosen to coincide with the spline breakpoints 1 ; 2 ; : : : ; n , then computing the basis coeÆcients of the linear spline approximant becomes a trivial matter. In this case i (xj ) equals one if i = j , but equals zero otherwise; that is, the interpolation matrix is simply the identity matrix and the interpolation equation reduces to the identity c = y , where y is the vector of function values at the interpolation nodes. The linear spline approximant of f when nodes and breakpoints coincide thus takes the form

f^(x) =

n X i=1

i (x)f (xi ):

When interpolation nodes and breakpoints coincide, no computations other than function evaluations are required to form the linear spline approximant. For this reason linear spline interpolation nodes in practice are always chosen to be the spline's breakpoints. Evaluating a linear spline approximant and its derivative at an arbitrary point x is also straightforward. Since at most two basis functions are nonzero at any point, only

CHAPTER 6. FUNCTION APPROXIMATION

140

two basis function evaluations are required. Speci cally, if i is the greatest integer less than 1 + (x a)=h, then x lies in the interval [i ; i+1 ]. Thus, f^(x) = ((x i )ci+1 + (i+1 x)ci )=h and f^0 (x) = (ci+1 ci )=h: Higher order derivatives are zero, except at the breakpoints, where they are unde ned. Linear splines are attractive for their simplicity, but have certain limitations that often make them a poor choice for computational economic applications. By construction, linear splines produce rst derivatives that are discontinuous step functions and second derivative that are zero almost everywhere. Linear spline approximants thus typically do a very poor job of approximating the rst derivative of a nonlinear function and are incapable of approximating its second derivative. In some economic applications, the derivative represents a measure of marginality that is of as much interest to the analyst as the function itself. The rst and maybe second derivatives of the function also may be needed to solve for the root of the function using Newtonlike method and in the continuous time dynamic models encountered in Chapters 10 and 11 are expressed in terms of second order dierential equations. Cubic spline approximants oer a higher degree of smoothness while retaining much of the exibility and simplicity of linear spline approximants. Because cubic splines possess continuous rst and second derivatives, they typically produce adequate approximations for both the function and its rst and second derivatives. The basis functions for n-degree, evenly spaced breakpoint cubic splines on the interval [a; b] are generated using the n 2 breakpoints j = a + h(j 1), j = 1; 2; : : : ; n 2, where h = nb a3 . Cubic spline basis function generated with evenly spaced breakpoints are nonzero over a support of width 4h. As such, at any point of [a; b], at most four basis functions are nonzero. The basis functions for a degree 12, evenly spaced breakpoint cubic spline on the interval [0; 1] are illustrated in Figure 6.6. Although spline breakpoints are often chosen to be evenly spaced, this need not be the case. Indeed, the ability to distribute breakpoints unevenly and to stack them on top of one another adds considerably to the exibility of splines, allowing them to accurately approximate a wide range of functions. In general, functions that exhibit wide variations in curvature are diÆcult to approximate numerically with polynomials of high degree. With splines, however, one can often nesse curvature diÆculties by concentrating breakpoints in regions displaying the highest degree of curvature. To illustrate the importance of breakpoint location, consider the problem of forming a cubic spline approximant for Runge's function 1 f (x) = 1 + 25x2

CHAPTER 6. FUNCTION APPROXIMATION

141

Cubic Spline Basis Functions 1

1

0

1

0 0

1

1

0 0

1

1

0 1

1

1

1

1

0

1

1

0 0

0

0 0

1

0

1

1

0 0

0

0 0

1

Figure 6.6 on the interval x 2 [ 5; 5]. Figure 6.7 displays two cubic spline approximations, one using thirteen evenly spaced breakpoints, the other using thirteen breakpoints that cluster around zero (the breakpoints are indicated by `x' symbols). Figure 6.8 shows the associated approximation errors (note that the errors for the unevenly spaced approximation have been multiplied by 100). In Figure 6.7 the unevenly spaced breakpoints approximation lies almost on top of the actual function, whereas the even spacing leads to signi cant errors, especially near zero. The gures clearly demonstrate the power of spline approximations with good breakpoint placement. The placement of the breakpoints can also be used to aect the continuity of the spline approximant and its derivatives. By stacking breakpoints on top of one another, we can reduce the smoothness at the breakpoints. Normally, an order k spline has continuous derivatives to order k 1 at the breakpoints. By stacking q breakpoints, we can reduce this to k q continuous derivatives at this breakpoint. For example, with two equal breakpoints, a cubic spline possesses a discontinuous second derivative at the point. With three equal breakpoints, a cubic spline possesses a discontinuous rst derivative at that point, that is, it exhibits a kink there. Stacking breakpoints is a useful practice if the function is known a priori to exhibit a kink at a

CHAPTER 6. FUNCTION APPROXIMATION

142

Runge’s Function with Spline Approximations 1.2 Runge Even Spacing Uneven Spacing 1

0.8

y

0.6

0.4

0.2

0

−0.2 −5

−4

−3

−2

−1

0

1

2

3

4

5

x

Figure 6.7 given point. Kinks arise in the pricing of options, which display a kink in their payo function and in dynamic optimization problems with discrete choice variables, which display kinks in their marginal value function (or its derivative). Regardless of the placement of breakpoints, splines have several important and useful properties. We have already commented on the limited domain of the basis function. This limited support implies that spline interpolation matrices are sparse and for this reason can be stored and manipulated using sparse matrix methods. This property is extremely useful in high-dimensional problems for which a fully expanded interpolation matrix would strain any computer's memory. Another useful feature of splines is that their values are bounded, thereby reducing the likelihood that scaling eects will cause numerical diÆculties. In general, the limited support and bounded values make spline basis matrices well-conditioned. If the spline interpolation matrix must be reused, one must resist the temptation to form and store its inverse, particularly if the size of the matrix is large. Inversion destroys the sparsity structure. More speci cally, the inverse of the interpolation matrix will be dense, even though the interpolation matrix is not. When n is large, solving the sparse n by n linear equation using sparse L-U factorization will generally be less costly than performing the matrix-vector multiplication required with the

CHAPTER 6. FUNCTION APPROXIMATION

143

Approximation Errors for Runge’s Function 0.6 Even Spacing Uneven Spacing 0.4

0.2

y

0

−0.2

−0.4

−0.6 Uneven spacing errors 100x −0.8 −5

−4

−3

−2

−1

0

1

2

3

4

5

x

Figure 6.8 dense inverse interpolation matrix (accomplished with the \n" operator in Matlab).

6.4 Piecewise-Linear Basis Functions Despite their simplicity, linear splines have many virtues. For problems in which the function being approximated is not-smooth and may even exhibit discontinuities, linear splines can still provide reasonable approximations. Unfortunately, derivatives of linear splines are discontinuous, piecewise constant functions. There is no reason, however, to limit ourselves to using the actual derivative of the approximating function, if a more suitable alternative exists. If a function is approximated by a linear spline, a reasonable candidate for an approximation of its derivative is a linear spline constructed using nite dierence approximations to the derivative (see Section 5.6, page 107). Given a breakpoint sequence for the function's approximant, this can be accomplished by de ning a new breakpoint sequence with n 1 values placed at the midpoints of the original sequence: zi = (i + i+1 )=2, i = 1; : : : ; n 1. The new function is set to equal the centered nite dierence

CHAPTER 6. FUNCTION APPROXIMATION

144

approximation to the derivative at the new breakpoints:

f (i+1 ) f (i ) : i+1 i Values between and beyond the zi sequence can be obtained by linear interpolation and extrapolation. We leave it as an exercise to show that this piecewise linear function, evaluated at the original breakpoints (the i ), is equal to the centered nite dierence approximations derived in the last chapter. Approximations to higher order derivatives can be obtained be repeated application of this idea. For completeness, we de ne an approximate integral that is also a linear spline, with a breakpoint sequence zi+1 = (i + i+1 )=2 for i = 2; : : : ; n and with additional breakpoints de ned by extrapolating beyond the original sequence: z1 = (31 2 )=2 and zn+1 = (3n n 1 )=2. The approximation to the integral, f 0 (zi )

F (x) =

Z x 1

f (x)dx

at the new breakpoints is

F (zi ) = F (zi 1 ) + (zi

zi 1 )f (i 1 );

where

F (z1 ) = 12 (1 2 )f (1 ) (this ensures the normalization that F (1 ) = 0).3 This de nition produces an approximation to the integral at the original breakpoints that is equal to the approximation obtained by applying the trapezoid rule (see Section 5.1, page 95): Z i+1 i

f (x)dx 21 (i+1

i )(f (i+1 ) + f (i )):

(we leave the veri cation of this assertion as exercise for the reader). As with the other families of functions discussed, the family of piecewise linear functions obtained using these approximations is closed under dierentiation and integration. Unlike splines, however, for which dierentiation and integration decreases or increases the order of the piecewise segments, leaving the breakpoint sequence 3 It should be pointed out that the breakpoint sequence obtain by integrating and then dieren-

tiating will not produce the original breakpoint sequence unless the original breakpoints are evenly spaced. This leads to the unfortunate property that dierentiating the integral will only produce the original function if the breakpoints are evenly spaced. It can also be shown that, although the rst derivatives are O(h2 ), the second derivatives are only O(h) when the breakpoints are not evenly spaced.

CHAPTER 6. FUNCTION APPROXIMATION

145

unchanged, with the piecewise linear family, dierentiation and integration do not change the polynomial order of the pieces (they remain linear) but decrease or increase the number of breakpoints. The piecewise linear family makes computation using nite dierence operators quite easy, without a need for special treatment to distinguish them from other families of basis functions (including nite element families such as splines). We will return to this point in Chapter 11 when we discuss solving partial dierential equations (PDEs).

6.5 Multidimensional Interpolation The univariate interpolation methods discussed in the preceding sections may be extended in a natural way to multivariate functions through the use of tensor products. To illustrate, consider the problem of approximating a bivariate real-valued function f (x; y ) de ned on a bounded interval I = f(x; y ) j ax x bx ; ay y by g in 1 & ~isempty(tvals) x=funeval(c,cdef,tvals); dx=funeval(c,cdef,tvals,1); r=feval(model.func,'r',tvals,x,dx,model.params{:}); end

In addition to computing the coeÆcient matrix, c, the procedure is implemented to, optionally, take a vector of time values tvals and to return the solution and residual functions at those values (x and r). The solver instructs the root nding algorithm broyden to nd the roots of the function BVPRes, which in turn calls the model.func le to compute the residual and boundary functions. function r=bvpres(c,model,fspace,tnode,Phi,Phi1,tb,phi,phi1); n=size(Phi,2);

CHAPTER 6. FUNCTION APPROXIMATION

169

m=length(tb); c=reshape(c,n,m); % Compute residuals at nodal values x=Phi*c; dx=Phi1*c; r=feval(model.func,'r',tnode,x,dx,model.params{:}); % Compute boundary conditions and concatenate to residuals x=phi*c; dx=phi1*c; b=feval(model.func,'b',tb,x,dx,model.params{:}); r=[r(:);b(:)];

The demonstration le dembvp01 contains the code to solve the example problem using Chebyshev polynomial approximants and plots both the approximation error functions and the residual functions. The procedure solves in a single iteration of the root nding algorithm because it is a linear problem. An economic application of these procedures is illustrated next with a simple market equilibrium example.

Example: Commodity Market Equilibrium At time t = 0 there are available for consumption S0 units of a periodically produced commodity. No more of the good will be produced until time t = 1, at which time

all of the currently available good must be consumed. The change in the level of the stocks is the negative of the rate of consumption, which is given by the demand function, here assumed to be of the constant elasticity type:

s0 (t) = q = D(p) = p :

To prevent arbitrage and to induce storage, the price must rise at a rate that covers the cost of capital, r and the physical storage charges, C :

p0 (t) = rp + C:

It is assumed that no stocks are carried into the next production cycle, which begins at time t = 1; hence the boundary condition that s(1) = 0. This is a two variable system of rst order dierential equations with two boundary conditions, one at t = 0 and the other at t = 1. De ning x = [p; s], the residual function is

r(t; x; x0 ) = x0

x1 ] and the boundary conditions are x2 (0) S0 = 0 and x2 (1) = 0. The model structure can be created using [rx1 + C

CHAPTER 6. FUNCTION APPROXIMATION

170

model.func='pbvp02'; model.tb=[0;1]; model.params={A};

The problem de nition le pbvp02 for this problem is

function out1=pbvp02(flag,t,x,dx,r,C,eta,S0); switch flag case 'r' out1=dx-[r*x(:,1)+C -x(:,1).^(-eta)]; case 'b' out1=x(:,2)-[S0;0]; end

A demonstration le, dembvp02 is available that uses the parameters r = 0:10, C = 0:5, = 2 and S0 = 1. It approximates the solution using a degree n = 6 Chebyshev polynomial approximation. The resulting solution and residual functions are shown in Figures 6.19 and 6.20. It is evident in the latter that the approximation Equilibrium Price and Stock Level 1.4

1.2 price 1

0.8

0.6

stocks

0.4

0.2

0

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

t

Figure 6.19 achieves a high degree of accuracy even with a low order approximation; the maximum sizes of the price and stocks residual functions are approximately 10 10 and 10 3 , respectively.

CHAPTER 6. FUNCTION APPROXIMATION

Residual Functions

−4

10

171

x 10

P’ x 106 S’ 8

6

4

2

0

−2

−4

−6

−8

0

0.1

0.2

0.3

0.4

0.5

0.6

t

Figure 6.20

0.7

0.8

0.9

1

CHAPTER 6. FUNCTION APPROXIMATION

172

Exercises

6.1. Construct the 5- and 50-degree approximants for the function f (x) = exp( x2 ) on the interval [ 1; 1] using each of the interpolation schemes below. For each scheme and degree of approximation, estimate the sup norm approximation error by computing the maximum absolute deviation between the function and approximant at 201 evenly spaced points. Also, graph the approximation error for the degree 5 approximant. (a) (b) (c) (d)

Uniform node, monomial basis polynomial approximant Chebychev node, Chebychev basis polynomial approximant Uniform node, linear spline approximant Uniform node, cubic spline approximant

6.2. In the Cournot model each rm takes the output of the other rms as given when determining its output level. An alternative assumption is that each rm takes its competitiors' output decision functions as given when making its own output choice. This can be expressed as the assumption that !

n X dSj (p) dp dp 1 X dqj 1 = 0 = 0 1+ : dqi D (p) j =1 dqi D (p) dp dqi j 6=i

Solving this for dp=dqi yields

dp = dqi D0 (p)

1

P

0

j 6=i Sj (p)

:

In an industry with m identical rms, each rm assumes the other rms will react in the same way it does, so this expression simpli es to 1 dp = 0 : dq D (p) (m 1)S 0 (p) This expression diers from the Cournot case in the extra term in the denominator (which only equals 0 in the monopoly situation of m = 1). Notice also that, unlike the Cournot case, the rm's \supply" function depends on the number of rms in the industry. Write a function to solve this problem analogous to the one described in Section 6.8.1 (page 159) and a demo le to produce the analogous plots. The

CHAPTER 6. FUNCTION APPROXIMATION

173

function must take the parameters (including m, the industry size) and it must also compute the derivative of the q = S (p) function to compute the residual function. 6.3. Consider the potato market model discussed in the Chapter 3 (page 60). Construct a 5th degree Chebychev polynomial approximant for the function relating the period 1 price to initial supply s over the interval s 2 [1; 3]. Interpolate the polynomial at s = 1, s = 2, and s = 3 and compare to the interpolated values to those obtained earlier. 6.4. Consider again the potato market model. Assume now that supply s is the product of acreage a and yield y where yield can achieve one of two equiprobable outcomes, a low yield 0:75 and a high yield 1:25, and that acreage is a function of the price expected in the harvest period:

a = 0:5 + 0:5E [p1 ]: The rational expectations equilibrium acreage level and expected price satisfy the acreage supply function and

E [p1 ] = 0:5f (0:75a) + 0:5f (1:25a) where f is the function approximated in the preceding problem. Compute the rational expectations equilibrium of the model using the 10th degree Chebychev polynomial approximation for f computed in the preceding problem. 6.5. Using collocation with the basis functions of your choice and without using BVPSOLVE numerically solve the following dierential equation for x 2 [0; 1]: (1 + x2 )v (x) v 00 (x) = x2 ; with v (0) = v (1) = 0. Plot the residual function to ensure that the maximum value of the residual is less than 1e-8. What degree of approximation is needed to achieve this level of accuracy. 6.6. Lifetime Consumption A simple model of lifetime savings/consumption choice considers an agent with a projected income ow by w(t), who must choose a consumption rate c(t) to maximize discounted lifetime utility: Z T

max e t U (C (t))dt C (t) 0

CHAPTER 6. FUNCTION APPROXIMATION

174

subject to an intertemporal wealth constraint dW=dt = rW + w(t) C , where r is the rate of return on investments (or the interest rate on borrowed funds, if W < 0). The solution to this optimal control problem can be expressed as the system of dierential equations

C0 =

U 0 (C ) (r U 00 (C )

)

and

W 0 = rW + w(t) C: It is assumed that the agent begins with no wealth (W (0) = 0) and leaves no bequests (W (T ) = 0). a) Use BVPSOLVE to solve this BVP using the CARA utility function U (C ) = (C 1 1)=(1 ) and the parameters values T = 45, r = 0:1, = 0:6, = 0:5 and w(t) = w0 =(1 + e t ), with w0 = 1 and = 0:15. Plot the solution function and the residual functions. b) In part (a) the agent works until time T and then dies. Suppose, instead, that the agent retires at time T and lives an additional R = 20 retirement years with no additional income (w(t) = 0 for T < t T + R). Resolve the problem with this assumption. What additional problem is encountered? How can the problem be addressed? 6.7. The complementary Normal CDF is de ned as c (x)

1 =p 2

Z 1 x

e

z 2 =2 dz:

De ne 2

u(x) = ex =2 c (x): (a) Express u as a dierential equation with boundary condition u(1) = 0. (b) Use the change of variable t = x=(K + x) (for some constant K) to de ne a dierential equation for the function v (t) = u(x), for v 2 [0; 1]. (c) Write a Matlab function to solve this dierential equation using collocation with Chebyshev polynomials. Do this by writing the collocation equations in the form Bc = f , where c is an n-vector of coeÆcients. Then solve this linear system directly.

CHAPTER 6. FUNCTION APPROXIMATION

175

(d) Plot the residual function for a range of values of K between 0.1 and 20. Make a recommendation about the best choice of K . 6.8. Write a Matlab function that automates the approximation of function inverses. The function should have the following syntax: function c=finverse(f,fspace,varargin)

You will also need to write an auxiliary function to compute the appropriate residuals used by the root nding algorithm.

CHAPTER 6. FUNCTION APPROXIMATION

176

Bibliographic Notes Most introductory texts on numerical analysis contain some discussion of interpolation via Chebyshev polynomials and splines; see, for example, Press et al., or, for a discussion focused on solving dierential equations, see Golub and Ortega (Chapter 6). Collocation is one of a more general class of approximation methods known as weighted residual methods. The general idea of weighted residual methods is to nd an approximate that minimizes the residual function for some functional norm. In addition to collocation, two common approaches of this general class are least squares methods, which (for the simple functional equation problem, solve: min c

Z b a

r2 (x; (x)c)dx

and Galerkin methods (also called Bubnov-Galerkin methods), which solve Z b a

r(x; (x)c)i (x)dx = 0; for i = 1; : : : ; n:

When the integrals in these expressions can be solved explicitly, they seem to be somewhat more eÆcient than collocation, especially the Galerkin approach. Unless r has a convenient structure, however, these methods will necessitate the use of some kind of discretization to compute the necessary integrals, reducing any potential advantages these methods may have relative to collocation.

Chapter 7 Discrete Time Discrete State Dynamic Models With this chapter, we begin our study of dynamic economic models. Dynamic economic models often present three complications rarely encountered together in dynamic physical science models. First, humans are cogent, future-regarding beings capable of assessing how their actions will aect them in the future as well as in the present. Thus, most useful dynamic economic models are future-looking. Second, many aspects of human behavior are unpredictable. Thus, most useful dynamic economic models are inherently stochastic. Third, the predictable component of human behavior is often complex. Thus, most useful dynamic economic models are inherently nonlinear. The complications inherent in forward-looking, stochastic, nonlinear models make it impossible to obtain explicit analytic solutions to all but a small number of dynamic economic models. However, the proliferation of aordable personal computers, the phenomenal increase of computational speed, and developments of theoretical insights into the eÆcient use of computers over the last two decades now make it possible for economists to analyze dynamic models much more thoroughly using numerical methods. The next three chapters are devoted to the numerical analysis of dynamic economic models in discrete time and are followed by three chapters on dynamic economic models in continuous time. In this chapter we study the simplest of these models: the discrete time, discrete state Markov decision model. Though the model is simple, the methods used to analyze the model lay the foundations for the methods developed in subsequent chapters to analyze more complicated models with continuous states and time.

177

CHAPTER 7. DISCRETE STATE MODELS

178

7.1 Discrete Dynamic Programming The discrete time, discrete state Markov decision model has the following structure: in every period t, an agent observes the state of an economic process st , takes an action xt , and earns a reward f (xt ; st ) that depends on both the state of the process and the action taken. The state space S , which enumerates all the states attainable by the process, and the action space X , which enumerates all actions that may be taken by the agent, are both nite. The state of the economic process follows a controlled Markov probability law. That is, the distribution of next period's state, conditional on all currently available information, depends only on the current state of the process and the agent's action: Pr(st+1 = s0 jxt = x; st = s; other information at t ) = P (s0jx; s): The agent seeks a policy fxt gTt=1 that prescribes the action xt = xt (st ) that should be taken in each state at each point in time so as to maximize the present value of current and expected future rewards over time, discounted at a per-period factor Æ 2 (0; 1]: max E T

fxt gt=0

" T X t=0

#

Æ t f (xt ; st ) :

A discrete Markov decision model may have an in nite horizon (T = 1) or a nite horizon (T < 1). The model may also be either deterministic or stochastic. It is deterministic if next period's state is known with certainty once the current period's state and action are known. In this case, it is bene cial to dispense with the probability transition law as a description of how the state evolves and use instead a deterministic state transition function g , which explicitly gives the state transitions:

st+1 = g (xt ; st ): Discrete Markov decision models may be analyzed and understood using the dynamic programming principles developed by Richard Bellman (1956). Dynamic programming is an analytic approach in which a multiperiod model is eectively decomposed into a sequence two period models. Dynamic programming is based on the Principle of Optimality, which was articulated by Bellman as follows: \An optimal policy has the property that, whatever the initial state and decision are, the remaining decisions must constitute an optimal policy with regard to the state resulting from the rst decision."

CHAPTER 7. DISCRETE STATE MODELS

179

The Principle of Optimality can be formally expressed in terms of the value functions Vt . For each period t and state s, Vt (s) speci es the maximum attainable sum of current and expected future rewards, given that the process is in state s and the current period is t. Bellman's Principle implies that the value functions must satisfy Bellman's recursion equation X Vt (s) = max ff (x; s) + Æ P (s0 jx; s)Vt+1 (s0 )g s 2 S: x2X (s) s0 2S

Bellman's equation captures the essential problem faced by a dynamic, futureregarding optimizing agent: the need to balance the immediate reward f (xt ; st ) with expected present value of future rewards ÆEt Vt+1 (st+1 ). Given the value functions, the optimal policies xt (s) are simply the solutions to the optimization problems embedded in Bellman's equation. In a nite horizon model, we adopt the convention that the optimizing agent faces decisions up to and including a nal decision period T < 1. The agent faces no decisions after the terminal period T , but may earn a nal reward VT +1 (sT +1 ) in the subsequent period that depends on the realization of the state in that period. The terminal value is typically xed by some economically relevant terminal condition. In many applications, VT +1 is identically zero, indicating that no rewards are earned by the agent beyond the terminal decision period. In other applications, VT +1 may specify a salvage value earned by the agent after making his nal decision in period T. For the nite horizon discrete Markov decision model to be well posed, the terminal value VT +1 must be speci ed by the analyst. Given the terminal value function, the nite horizon decision model in principle may be solved recursively by repeated application of Bellman's equation: having VT +1 , solve for VT (s) for all states s; having VT , solve for VT 1 (s) for all states s; having VT 1 , solve for VT 2 (s) for all states s; and so on. The process continues until V0 (s) is derived for all states s. Because only nitely many actions are possible, the optimization problem embedded in Bellman's equation can always be solved by performing nitely many arithmetic operations. Thus, the value functions of a nite horizon discrete Markov decision model are always well-de ned, although in some cases more than one policy of state-contingent actions may yield the maximum expected stream of rewards, that is, the optimal action may not be unique. If the decision problem has an in nite horizon, the value functions will not depend on time t. We may, therefore, disregard the time subscripts and denote the common value function by V . Bellman's equation therefore becomes the vector xed-point equation "

X

#

V (s) = max f (x; s) + Æ P (s0 jx; s)V (s0 ) ; s 2 S: x2X (s) s0 2S

CHAPTER 7. DISCRETE STATE MODELS

180

If the discount factor Æ is less than one, the mapping underlying Bellman's equation is a strong contraction. The Contraction Mapping Theorem thus guarantees the existence and uniqueness of the in nite horizon value function.1

7.2 Economic Examples Speci cation of a discrete Markov decision model requires several pieces of information: the state space, the action space, the reward function, the state transition function or state transition probabilities, the discount factor Æ , the time horizon T , and, if the model has nite horizon, the terminal value VT +1 . This section provides seven economic examples that illustrate how the necessary information is speci ed and how the Bellman equation is formulated.

7.2.1 Mine Management A mine operator must determine the optimal ore extraction schedule for a mine that will be shut down and abandoned after T years of operation. The price of extracted ore is p dollars per ton and the total cost of extracting x tons of ore in any year is c = x2 =(1+ s) dollars, where s is the tons of ore remaining in the mine at the beginning of the year. The mine currently contains s tons of ore. Assuming the amount of ore extracted in any year must be an integer number of tons, what extraction schedule maximizes pro ts? This is a nite horizon, deterministic model with time t = f1; 2; : : : ; T g measured in years. The state variable

s 2 S = f0; 1; 2; : : : ; sg denotes tons of ore remaining in the mine at the beginning of the year. The action variable x 2 X (s) = f0; 1; 2; : : : ; sg denotes tons of ore extracted over the year. The state transition function is s0 = g (s; x) = s x: The reward function is f (s; x) = px x2 =(1 + s): 1 Value functions in in nite horizon problems could be time dependent if f , P , or Æ displayed time

dependence. However, this creates diÆculties in developing solution methods, and we have chosen not to explicitly consider this possibility. Fortunately, most in nite horizon economic model do not display such time dependence.

CHAPTER 7. DISCRETE STATE MODELS

181

The value of the mine, given it contains s tons of ore at the beginning of year t, satis es Bellman's equation Vt (s) = max fpx x2 =(1 + s) + ÆVt+1 (s x)g; s2S x2f0;1;2;:::;sg subject to the terminal condition VT +1 (s) = 0; s 2 S:

7.2.2 Asset Replacement - I At the beginning of each year, a manufacturer must decide whether to continue operating with an aging physical asset or replace it with a new one. An asset that is a years old yields a pro t contribution p(a) up to n years, after which the asset becomes unsafe and must be replaced by law. The cost of a new asset is c. What replacement policy maximizes pro ts? This is an in nite horizon, deterministic model with time t = f1; 2; : : : ; T g measured in years. The state variable a 2 A = f1; 2; : : : ; ng denotes the age of the asset in years. The action variable ; replaceg a < n x 2 X (a) = ffkeep replaceg a=n denotes the keep-replacement decision. The state transition function is keep 0 a = g (a; x) = a1 + 1 xx = = replace. The reward function is a) x = keep f (a; x) = pp((0) c x = replace. The value of an asset of age a satis es Bellman's equation V (a) = maxfp(a) + ÆV (a + 1); p(0) c + ÆV (1)g: Bellman's equation asserts that if the manufacturer keeps an asset of age a, he earns p(a) over the coming year and begins the subsequent year with an asset worth V (a+1); if he replaces the asset, on the other hand, he earns p(0) c over the coming year and begins the subsequent year with an asset worth V (1). Actually, our language is a little loose here. The value V (a) measures not only the current and future net earnings of an asset of age a, but also the net earnings of all future assets that replace it.

CHAPTER 7. DISCRETE STATE MODELS

182

7.2.3 Asset Replacement - II Consider the preceding example, but suppose that the productivity of the asset may be enhanced by performing annual service maintenance. Speci cally, at the beginning of each year, a manufacturer must decide whether to replace the asset with a new one or, if he elects to keep the old one, whether to service it. An asset that is a years old and has been serviced s times yields a pro t contribution p(a; s) up to and age of n years, after which the asset becomes unsafe and must be replaced by law. The cost of a new asset is c and the cost of servicing an existing asset is k. What replacement policy maximizes pro ts? This is an in nite horizon, deterministic model with time t = f1; 2; : : : ; T g measured in years. The state variables a 2 A = f1; 2; : : : ; ng s 2 S = f0; 1; : : : ; ng denote the age of the asset in years and the number of servicings it has undergone, respectively. The action variable service, no actiong a < n x 2 X (a; s) = ffreplace, replaceg a = n: ; The state transition function is 8 x = replace < (1; 0) (a0 ; s0 ) = g (a; s; x) = (a + 1; s + 1) x = service : (a + 1; s) x = no action: The reward function is 8 x = replace < p(0; 0) c f (a; s; x) = p(a; s + 1) k x = service : p(a; s) x = no action: The value of asset of age a that has undergone s servicings must satisfy Bellman's equation V (a; s) = maxf p(0; 0) c + ÆV (1; 0); p(a; s + 1) k + ÆV (a + 1; s + 1); p(a; s) + ÆV (a + 1; s)g: Bellman's equation asserts that if the manufacturer keeps an asset of age a, he earns p(a) over the coming year and begins the subsequent year with an asset worth V (a+1); if he replaces the asset, on the other hand, he earns p(0) c over the coming year and begins the subsequent year with an asset worth V (1). Actually, our language is a little loose here. The value V (a) measures not only the current and future earnings of an asset of age a, but also the optimal earnings of all future assets that replace it.

CHAPTER 7. DISCRETE STATE MODELS

183

7.2.4 Option Pricing An American put option gives the holder the right, but not the obligation, to sell a speci ed quantity of a commodity at a speci ed strike price on or before a speci ed expiration date. In the Cox-Ross-Rubinstein binomial option pricing model, the price of the commodity is assumed to follow a two-state discrete jump process. Speci cally, if the price of the commodity is p in period t, then its price in period t + 1 will be pu with probability q and p=u with probability 1 q where:

p

u = exp( t) > 1 p t 1 r 21 2 q = 2+ 2 Æ = exp( rt): Here, r is the annualized interest rate, continuously compounded, is the annualized volatility of the commodity price, and t is the length of a period in years. Assuming the current price of the commodity is p0 , what is the value of an American put option if it has a strike price p and if it expires T years from today? This is a nite horizon, stochastic model where time t 2 f0; 1; 2; : : : ; N g is measured in periods of length t = T=N years each. The state is2

p = commodity price p 2 S = fp1 ui ji = N

1; N; : : : ; N; N + 1g:

The action is

x = decision to keep or exercise x 2 X = fkeep; exerciseg; the state transition probability rule is

P (p0jx; p) =

8 < :

q p0 = pu 1 q p0 = p=u 0 otherwise

the reward function is = keep f (p; x) = 0p p xx = exercise 2 In this example, we alter our notation to conform with standard treatments of option valuation.

Thus, the state is the price, denoted by p, the number of time periods until expiration is N , and T reserved for the time to expiration (in years).

CHAPTER 7. DISCRETE STATE MODELS

184

The value function

Vt (p) = option value at t, if commodity price is p, must satisfy Bellman's equation

Vt (p) = maxf p p; qÆVt+1 (pu) + (1 q )ÆVt+1 (p=u) g subject to the post-terminal condition

VN +1 (p) = 0 Note that if the option is exercised, the owner receives p p. If he does not exercise the option, however, he earns no immediate reward but will have an option in hand the following period worth Vt+1 (pu) with probability q and Vt+1 (p=u) with probability 1 q . In option expires in the terminal period, making it valueless the following period; as such, the post-terminal salvage value is zero.

7.2.5 Job Search At the beginning of each week, an in nitely-lived worker nds himself either employed or unemployed and must decide whether to be active in the labor market over the coming week by working, if he is employed, or by searching for a job, if he is unemployed. An active employed worker earns a wage w. An active unemployed worker earns an unemployment bene t u. An inactive worker earns a psychic bene t v from additional leisure, but no income. An unemployed worker that looks for a job will nd one with probability p by the end of the week. An employed worker that remains at his job will be red with probability q at the end of the week. What is the worker's optimal labor policy? This is a in nite horizon, stochastic model with time t = f1; 2; : : : ; 1g measured in weeks. The state is

s = employment state s 2 S = funemployed(0); employed(1)g and the action is

x = labor force participation decision x 2 X = finactive(0); active(1)g:

CHAPTER 7. DISCRETE STATE MODELS

185

The state transition probability rule is

P (s0js; x) =

8 > > > > > > < > > > > > > :

1 x = 0; s0 = 0 1 p x = 1; s = 0; s0 = 0 p x = 1; s = 0; s0 = 1 q x = 1; s = 1; s0 = 0 1 q x = 1; s = 1; s0 = 1 0 otherwise;

(inactive worker) (searches, nds no job) (searches, nds job) (works, loses job) (works, keeps job)

and the reward function is 8 (inactive, receives leisure) < v x=0 f (s; x) = u x = 1; s = 0 (searching, receives bene t) : w x = 1; s = 1 (working, receives wage) The value function

V (s) = Value of being in employment state s at beginning of week; must satisfy Bellman's equation

V (s) =

maxfv + ÆV (0); u + ÆpV (1) + Æ (1 p)V (0)g; s = 0 maxfv + ÆV (0); w + ÆqV (0) + Æ (1 q )V (1)g; s = 1

7.2.6 Optimal Irrigation Water from a dam can be used for either irrigation or recreation. Irrigation during the spring bene ts farmers, but reduces the dam's water level during the summer, damaging recreational users. Speci cally, farmer and recreational user bene ts in year t are, respectively, F (xt ) and G(yt ), where xt are the units of water used for irrigation and yt are the units of water remaining for recreation. Water levels are replenished by random rainfall during the winter. With probability p, it rains one unit; with probability 1 p is does not rain at all. The dam has a capacity of M units of water and excess rainfall ows out of the dam without bene t to either farmer or recreational user. Derive the irrigation ow policy that maximizes the sum of farmer and recreational user bene ts over an in nite time horizon. This is a in nite horizon, stochastic model with time t = f1; 2; : : : ; 1g measured in years. The state is

s = units of water in dam at beginning of year s 2 S = f0; 1; 2; : : : ; M g

CHAPTER 7. DISCRETE STATE MODELS

186

and

x = units of water released for irrigation during year x 2 X (s) = f0; 1; 2; : : : ; sg: The state transition probability rule is

P (s0js; x) =

8 < :

p s0 = min(s x + 1; M ) (rain) 1 p s0 = s x; (no rain) 0 otherwise

and the reward function is

f (s; x) = F (x) + G(s x): The value function

V (s) = Value of s units of water in dam at beginning of year t: must satisfy Bellman's equation:

V (s) = x=0 max ff (s; x) + ÆpV (min(s x + 1; M )) + Æ(1 p)V (s x)g: ;1;:::;s

7.2.7 Optimal Growth Consider an economy comprising a single composite good. Each year t begins with a predetermined amount of the good st , of which an amount xt is invested and the remainder is consumed. The social welfare derived from consumption in year t is u(st xt ). The amount of good available in year t + 1 is st+1 = xt + t+1 f (xt ) where is the capital survival rate (1 minus the depreciation rate), f is the aggregate production function, and t+1 is a positive production shock with mean 1. What consumption-investment policy maximizes the sum of current and expected future welfare over an in nite horizon? This is an in nite horizon, stochastic model with time t 2 f0; 1; 2; : : :g measured in years. The model has a single state variable

st = stock of good at beginning of year t st 2 [0; 1) and a single action variable

xt = amount of good invested in year t

CHAPTER 7. DISCRETE STATE MODELS

187

subject to the constraint 0 xt st :

The reward earned by the optimizing agent is

u(st

xt ) = social utility in t:

State transitions are governed by

st+1 = xt + t+1 f (xt ) where

t = productivity shock in year t: The value function, which gives the sum of current and expected future social welfare, satis es Bellman's equation

V (s) = 0max fu(s x) + ÆEV ( x + f (x))g; xs

s > 0:

7.2.8 Renewable Resource Problem A social planner wishes to maximize the discounted sum of net social surplus from harvesting a renewable resource over an in nite horizon. For year t, let st denote the resource stock at the beginning of the year, let xt denote the amount of the resource harvested, let ct = c(xt ) denote the total cost of harvesting, and let pt = p(xt ) denote the market clearing price. Growth in the stock level is given by st+1 = g (st xt ). What is the socially optimal harvest policy? This is an in nite horizon, deterministic model with time t 2 f0; 1; 2; : : :g measured in years. There is one state variable,

st = stock of resource at beginning of year t st 2 [0; 1); and one action variable,

xt = amount of resource harvested in year t, subject to the constraint 0 xt st :

The net social surplus is Z xt

0

p( ) d

c(xt ):

CHAPTER 7. DISCRETE STATE MODELS

188

State transitions are governed by

st+1 = g (st

xt ):

The value function, which gives the net social value of resource stock, satis es Bellman's equation Z x

V (s) = 0max f xs

0

p( ) d

c(x) + ÆV (g (s x))g:

7.2.9 Bioeconomic Model In order to survive, an animal must forage for food in one of m distinct areas. In area x, the animal survives predation with probability px , nds food with probability qx , and, if it nds food, gains ex energy units. The animal expends one energy unit every period and has a maximum energy carrying capacity s. If the animal's energy stock drops to zero, it dies. What foraging pattern maximizes the animal's probability of surviving T years to reproduce at the beginning of period T + 1? This is a nite horizon, stochastic model with time t = f1; 2; : : : ; T g measured in foraging periods. The state is

s = stock of energy s 2 S = f0; 1; 2; : : : ; sg; the action is

x = foraging area x 2 X = f1; 2; : : : ; mg: The state transition probability rule is, for s = 0,

P (s0js; x) = and, for s > 0,

P (s0js; x)

1 s0 = 0 (death is permanent) 0 otherwise;

8 px qx > > < = p(1x (1 p q) x ) > x > :

0

The reward function is

f (s; x) = 0:

s0 = min(s; s 1 + ex ) (survive, nds food) s0 = s 1 (survive, no food) s0 = 0 (does not survive) otherwise.

CHAPTER 7. DISCRETE STATE MODELS

189

Here, s = 0 is an absorbing state that, once entered, is never exited. More to the point, an animal whose energy stocks fall to zero dies, and remains dead. The reward function for periods 1 through T is zero, because there is only one payo, surviving to procreate, and this payo is earned in period T + 1. The value function

Vt (s) = probability of procreating, given energy stocks s in period t must satisfy Bellman's equation

Vt (s) = maxfpx qx Vt+1 (min(s; s 1 + e)) + px (1 qx )Vt+1 (s 1)g; x2X

for t 2 1; : : : ; T , with Vt (0) = 0, subject to the terminal condition

VT +1 (s) =

0 s=0 1 s>0

7.3 Solution Algorithms Below, we develop numerical solution algorithms for stochastic discrete time, discrete space Markov decision models. The algorithms apply to deterministic models as well, provided one views a deterministic model as a degenerate special case of the stochastic model for which the transition probabilities are all zeros or ones. To develop solution algorithms, we must introduce some vector notation and operations. Assume that the states S = f1; 2; : : : ; ng and actions X = f1; 2; : : : ; mg are indexed by the rst n and m integers, respectively. Let v 2 c0 (0), one can show that ore will always be extracted provided there are stocks remaining. However, it is not possible to rule out the possibility that in

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

231

some states it will be optimal to extract all that remains in the mine. That is, the upper bound on x may be binding. As such, the Euler conditions take the form of a complementarity condition. More speci cally, the shadow price of the resource (s) is characterized by the following:

p c0 (x) Æ(s x) = (s) = Æ(s x) + max(; 0) where the ore extracted x and the long-run marginal pro t of extraction must satisfy the complementarity condition 0 x s;

x > 0 =) 0;

x < s =) 0:

Thus, in any period, ore is extracted until the long-run marginal pro t is driven to zero or the content of the mine is exhausted, whichever comes rst. Under the assumption p > c0 (0), the model admits only one steady state: s = x = 0, = p c0 (0), and = (1 Æ ) . That is, the mine will be worked until its contents are depleted. Until such time that the content of the mine is depleted,

pt = c0t + Æt t = Æt+1 : where pt is the market price and c0t is the marginal cost of extraction. That is, the market price of extracted ore equals the shadow price of unextracted ore plus the marginal cost of extraction. Also, the current-valued shadow price of unextracted ore will grow at the rate of interest, or equivalently, the present-value shadow price will remain constant.

8.3.4 Optimal Water Management A water planner wishes to maximize social bene ts derived from the water collected in a reservoir. The water may be used either for irrigation or recreation. Irrigation during the spring bene ts agricultural producers, but reduces the reservoir level during the summer, damaging recreational users. Speci cally, if s is the water level at the beginning of spring and an amount x is released for irrigation, producer bene ts will be a(x) and recreational user bene ts will be u(s x). Water levels are replenished during the winter months by i.i.d. random rainfalls , implying that the reservoir level at the beginning of each year is a controlled Markov process

st+1 = st

xt + t+1 :

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

232

What irrigation policy maximizes the sum of current and expected future bene ts to producers and users combined? This is an in nite horizon, stochastic model with one state variable, the reservoir water level at beginning of the year s, and one choice variable, the amount of water released for irrigation x, which is subject to the constraint 0 x s: The current reward is the sum of producer and user bene ts f (s; x) = a(x) + u(s x): The value of the water in the reservoir satis es Bellman's equation V (s) = 0max fa(x) + u(s x) + ÆEV (s x + )g: xs

Assuming a0 (0) and u0 (0) are suÆciently large, the constraints will not be binding at an optimal solution and the shadow price of water (s) will satisfy the Euler equilibrium conditions a0 (x) u0 (s x) ÆE(s x + ) = 0 (s) = u0 (s x) + ÆE(s x + ): It follows that along the optimal path a0t = t = u0t + ÆEt+1 where a0t and u0t are the marginal producer and user bene ts, respectively. Thus, on the margin, the bene t received by producers this year from releasing one unit of water must equal the marginal bene t received by users this year from retaining the unit of water plus the bene ts of having that unit available for either irrigation or recreation the following year. The certainty-equivalent steady-state water level s , irrigation level x , and shadow price solve the equation system x = a0 (x ) = u0 (s x ) = (1 Æ )a0 (x ) where is mean annual rainfall. These conditions imply that the certainty-equivalent steady-state irrigation level and shadow price of water are not aected by the interest rate. The certainty-equivalent steady-state reservoir level, however, is aected by the interest rate. Totally dierentiating the above equation system and making reasonable assumptions about the curvature of the bene t functions: @s Æ 2 a0 = 00 < 0: @r u That is, as the interest rate rises, the certainty-equivalent steady-state reservoir level falls.

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

233

8.3.5 Optimal Monetary Policy A monetary authority wishes to control the nominal interest rate x in order to minimize the volatility of the in ation rate s1 and the gross domestic product (GDP) gap s2 . Speci cally, the authority wishes to minimize expected discounted stream of weighted squared deviations from zero targets 1 L(s) = s> s 2 where s is a 2x1 vector containing the in ation rate and the GDP gap and is a 2x2 constant positive de nite matrix of weights. The in ation rate and the GDP gap are a joint controlled linear Markov process

st+1 = + st + x + where and are 2x1 constant vectors, is a 2x2 constant matrix, and is a 2x1 random vector with mean zero. For political reasons, the nominal interest rate x cannot be negative. What monetary policy minimizes the sum of current and expected future losses? This is an in nite horizon, stochastic model with two state variables, the in ation rate s1 and the GDP gap s2 , and one choice variable, the nominal in ation rate x, which is subject to the constraint x 0: In order to formulate this problem as a maximization problem, one may posit a reward function that equals the negative of the loss function f (s) = L(s): Given this assumption, the sum of current and expected future rewards V (s) satis es Bellman's equation V (s) = max f L(s) + ÆEV (g(s; x; ))g: 0x Given the structure of the model, one cannot preclude the possibility that the nonnegativity constraint on the optimal nominal interest rate will be binding in certain states. As such, the shadow price function (s) is characterized by the Euler conditions

Æ >E(g (s; x; ) =

(s) = s + Æ >E(g (s; x; )) where the nominal interest rate x and the long-run marginal reward from increasing the nominal interest rate must satisfy the complementarity condition

x 0;

0;

x > 0 =) = 0:

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

234

It follows that along the optimal path

Æ >Et t+1 = t t = st + Æ >Et+1 xt 0;

t 0;

xt > 0 =) t = 0:

Thus, in any period, the nominal interest rate is reduced until either the long-run marginal reward or the nominal interest rate is driven to zero.

8.3.6 Production-Adjustment Model A competitive price-taking rm wishes to manage production so as to maximize long run pro ts, given that production is subject to adjustment costs. In particular, if the rm produces a quantity q , it incurs production costs c(q ) and adjustment costs 0:5a(q l)2 , where l is the preceding period's (lagged) production. The rm can sell any quantity it produces at the prevailing market price, which is an exogenous Markov process

pt+1 = g (pt ; t+1 ): What production policy maximizes the value of the rm? This is an in nite horizon, stochastic model with two state variables, the current market price p and lagged production l, and one choice variable, production q , which is subject to the nonnegativity constraint q 0. The current reward, short-run pro ts, equals revenue less production and adjustment costs f (p; l; q ) = p q c(q ) 0:5a(q l)2 : The value V (p; l) of the rm, given the market price p and the previous period's production l, satis es Bellman's equation

V (p; l) = max fp q 0q

c(q ) a(q

l) + ÆEV (g (p; ); q )g:

Assuming a positive optimal production level in all states, the shadow price of lagged production (p; l) will satisfy the Euler equilibrium conditions

p c0 (q ) a0 (q (p; l) = a0 (q

l) + ÆE(g (p; ); q ) = 0 l):

It follows that along the optimal path

pt = c0t + (a0t

ÆEa0t+1 )

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

235

where c0t and a0t are the marginal production and adjustment costs in period t. Thus, price equals the marginal cost of production plus the net (current less future) marginal adjustment cost. The certainty-equivalent steady-state production q is obtained by assuming p is xed at its long-run mean p:

p = c0 (q ) + (1 Æ )a0 (0):

8.3.7 Production-Inventory Model A competitive price-taking rm wishes to manage production and inventories so as to maximize long-run pro ts. The rm begins each period with a predetermined stock of inventory s and decides how much to produce q and how much to store x, buying or selling the resulting dierence s + q x on the open market at the prevailing price p. The rm's production and storage costs are given by c(q ) and k(x), respectively, and the market price follows a purely exogenous Markov process

pt+1 = g (st ; t+1 ): What production policy and inventory policy maximizes the value of the rm? This is an in nite horizon, stochastic model with two state variables, the current market price p and beginning inventories s, and two choice variables, production q and ending inventories x, both of which are subject to nonnegativity constraints q 0 and x 0. The current reward, short-run pro ts, equals net revenue from marketing sales or purchases, less production and storage costs:

f (p; s; q; x) = p(s + q

x) c(q ) k(x):

The value V (p; s) of the rm, given market price p and beginning inventories s, satis es Bellman's equation

V (p; s) = 0max fp(s + q q;0x

x) c(q ) k(x) + ÆEV (g (p; ); x)g:

If production is subject to increasing marginal costs and c0 (0) is suÆciently small, then production will be positive in all states and the shadow price of beginning inventories (p; s) will satisfy the Euler equilibrium conditions:

p = c0 (q ) ÆE(g (p; ); x) p k0 (x) = (p; s) = p

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY x 0;

0;

236

x > 0 =) = 0:

It follows that along the optimal path,

pt = c0t xt 0;

Et pt+1

pt

kt0 0;

x > 0 =) Et pt+1

pt

kt0 = 0:

where pt denotes the market price, c0t denotes the marginal production cost, and kt0 denotes the marginal storage cost. Thus, the rm's production and storage decisions are independent. Production is governed by the conventional short-run pro t maximizing condition that price equal the marginal cost of production. Storage, on the other hand, is entirely driven by intertemporal arbitrage pro t opportunities. If the expected marginal pro t from storing is negative, then no storage is undertaken. Otherwise, stocks are accumulated up to the point at which the marginal cost of storage equals the present value expected appreciation in the market price. The certainty-equivalent steady-state obtains when p is xed at its long-run mean p, in which case no appreciation can take place and optimal inventories will be zero. The certainty-equivalent steady-state production is implicitly de ned by the short-run pro t maximization condition.

8.3.8 Optimal Feeding An livestock producer feeds his stock up to period T and then sells it at the beginning of period T + 1 at a xed price p per unit weight. Each period, the producer must determine how much grain x to feed his livestock, given that grain sells at a constant unit cost c. The weight of the livestock at the beginning of each period is a controlled rst-order deterministic process

st+1 = g (st ; xt ): What feeding policy maximizes pro t, given that the weight of the livestock in the initial period, t = 0, is s? This is an nite horizon, deterministic model with one state variable, the livestock weight at beginning of the period s 2 [s; 1), and one choice variable, the amount of feed purchased x 2 [0; 1), which is subject to the constraint x 0: The value of livestock weighing s in period t satis es Bellman's equation

Vt (s) = max f cx + ÆVt+1(g(s; x))g; x0 subject to the terminal condition

VT +1 (s) = ps:

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

237

If the marginal weight gain gx at zero feed is suÆciently large, the nonnegativity constraint of feed will never be binding. Under these conditions, the shadow price of livestock weight in period t, t (s), will satisfy the Euler equilibrium conditions:

Æt+1 (g (s; x))gx(s; x) = c t (s) = Æt+1 (g (s; x))gs(s; x) subject to the terminal condition

T +1 (s) = p: It follows that along the optimal path

Æt+1 gx;t = c t = Æt+1 gs;t where gx;t and gs;t represent, respectively, the marginal weight gain from feed and the marginal decline in the livestock's ability to gain weight as it grows in size. Thus, the cost of feed must equal the value of the marginal weight gain. Also, the present valued shadow price grows at a rate that exactly counters the marginal decline in the livestock's ability to gain weight.

8.4 Linear-Quadratic Control The linear-quadratic control problem is an unconstrained Markov decision model with a quadratic reward function

f (s; x) = F0 + Fss + Fx x + 0:5s>Fsss + s>Fsx x + 0:5x>Fxx x and a linear state transition function

g (s; x; ) = G0 + Gs s + Gx x + : Here, s is an n-by-1 state vector, x is an m-by-1 action vector, F0 is a known constant, Fs is a known 1-by-n vector, Fx is a known 1-by-m vector, Fss is a known n-by-n matrix, Fsx is a known n-by-m matrix, Fxx is a known m-by-m matrix, G0 is a known n-by-1 vector, Gs is a known n-by-n matrix, and Gx is a known n-by-m vector. Without loss of generality, the shock is assumed to have a mean of zero. The linear-quadratic control model is of special importance because it is one of the few discrete time continuous state Markov decision models with a nite-dimensional solution. By a conceptually simple but algebraically burdensome induction proof

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

238

omitted here, one can show that the optimal policy and shadow price functions of the in nite horizon linear-quadratic control model are both linear in the state variable:

x(s) = 0 + s s (s) = 0 + s s: Here, 0 is an m-by-1 vector, s is an m-by-n matrix, 0 is an n-by-1 vector, and s is an n-by-n matrix. The parameters 0 and s of the shadow price function are characterized by the nonlinear vector xed point Riccati equations 0 = [ÆGs >s Gx + Fsx][ÆGx >s Gx + Fxx >] 1 [ÆGx >[s G0 + 0 ] + Fx >] +ÆGs> [sG0 + 0 ] + Fs > s = [ÆGs >s Gx + Fsx][ÆGx >s Gx + Fxx >] 1 [ÆGx >sGs + Fsx >] +ÆGs> sGs + Fss:

These nite-dimensional xed-point equations can typically be solved in practice using function iteration. The recursive structure of these equations allow one to rst solve for s by applying function iteration to the second equation, and then solve for 0 by applying function iteration to the rst equation. Once the parameters of the shadow price function have been computed, one can compute the parameters of the optimal policy via algebraic operations: 0 = [ÆGx >sGx + Fxx >] 1 [ÆGx>[s G0 + 0 ] + Fx >] s

= [ÆGx >s Gx + Fxx>] 1 [ÆGx >sGs + Fsx >]

The relative simplicity of the linear-quadratic control problem derives from the fact that the optimal policy and shadow price functions are known to be linear, and thus belong to a nite dimensional family. The parameters of the linear functions, moreover, are characterized as the solution to a well-de ned nonlinear vector xedpoint equation. Thus, the apparently in nite-dimensional Euler functional xedpoint equation may be converted into nite-dimensional vector xed-point equation and solved using standard nonlinear equation solution methods. This simpli cation, unfortunately, is not generally possible for other types of discrete time continuous state Markov decision models. A second simplifying feature of the linear-quadratic control problem is that the shadow price and optimal policy functions depend only on the mean of the state shock, but not its variance or higher moments. This is known as the certainty-equivalence property of the linear-quadratic control problem. It asserts that the solution of the

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

239

stochastic problem is the same as the solution of the deterministic problem obtained by xing the state shock at its mean of zero. Certainty equivalence also is not a property of more general discrete time continuous state Markov decision models. Because linear-quadratic control models are relatively easy to solve, many analysts compute approximate solutions to more general Markov decision models using the method of linear-quadratic approximation. Linear quadratic approximation calls for all constraints of the general problem to be discarded and for its reward and transition functions to be replaced with by their second- and rst-order approximations about the steady-state. This approximation method, which is illustrated in the following chapter, works well in some instances, for example, if the state transition rule is linear, constraints are non-binding or non-existent, and if the shocks have relatively small variation. However, in most economic applications, linear-quadratic approximation will often render highly inaccurate solutions that dier not only quantitatively but also qualitatively from the true solution. For this reason, we strongly discourage the use of linear-quadratic approximation, except in those cases where the assumptions of the linear quadratic model are known to hold globally, or very nearly so.

8.5 Dynamic Games Dynamic game models attempt to capture strategic interactions among a small number of dynamically optimizing agents when the actions of one agent aects the welfare of the others. To simplify notation, we consider only in nite horizon games. The theory and methods developed, however, can be easily adapted to accommodate nite horizons. The discrete time continuous state Markov m-agent game has the following structure: In every period, each agent i observes the state of an economic process s 2 S , takes an action xi 2 X , and earns a reward fi (s; xi ; x i ) that depends on the state of the process and both the action taken by the agent and the actions taken by the m 1 other agents x i . The state of the economic process is a jointly controlled Markov process. Speci cally, the state of the economic process in period t + 1 will depend on the state in period t, the actions taken by all m agents in period t, and an exogenous random shock t+1 that is unknown in period t:

st+1 = g (st ; xt ; t+1 ): As with static games, the equilibrium solution to a Markov game depends on the information available to the agents and the strategies they are assumed to pursue. We will limit discussion to noncooperative Markov perfect equilibria, that is, equilibria that yield a Nash equilibrium in every proper subgame. Under the assumption that each agent can perfectly observe the state of the process and knows the policies

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

240

followed by the other agents, a Markov perfect equilibrium is a set of m policies of state-contingent actions xi : S 7! X , i = 1; 2; : : : ; m, such that policy xi maximizes the present value of agent i's current and expected future rewards, discounted at a per-period factor Æ , given that other agents pursue their policies x i (). That is, for each agent i, xi () solves T X

max E Æ t f (s ; x (s ); x i (st )) fx()g 0 t=0 i t i t

The Markov perfect equilibrium for the m-agent game is characterized by a set of m simultaneous Bellman equations Vi (s) = max fi (s; x; x i (s)) + ÆE Vi (g (s; x; x i(s); )) : x2Xi (s) whose unknowns are the value functions Vi () and optimal policies xi (), i = 1; 2; : : : ; m of the dierent agents. Here, Vi (s) denotes the maximum current and expected future rewards that can be earned by agent i, given that other agents pursue their optimal strategies.

8.5.1 Capital-Production Game Consider two in nitely-lived rms that produce perishable goods that are close substitutes (say, donuts and bagels). Each rm i begins period t with a predetermined capital stock ki and must decide how much to produce qi . Its production cost ci (qi ; ki ) depends on both the quantity produced and the capital stock. Prices are determined by short-run market clearing conditions (Cournot competition). More speci cally, rm i receives price pi = Pi (q1 ; q2 ) that depends both on its output and the output of its competitor. The rm must also decide how much to invest in capital. Speci cally, if the rm invests in new capital xi , it incurs a cost hi (xi ) and its capital stock at the beginning of the following period will be (1 )ki + xi where is the capital depreciation rate. What are the two rm's optimal production and investment policies? This is an in nite horizon, deterministic 2-agent dynamic game with two state variables, the capital stocks of the two producers, k1 and k2 . Each agent i has two decision variables, production qi and investment xi , which are subject to the nonnegativity constraints qi 0 and xi 0. His current reward, net revenue, equals Pi (q1 ; q2 )qi ci (qi ; ki) hi (xi ). The Markov perfect equilibrium for the productioncapital game is represented by a pair of Bellman equations, one for each rm, which take the form Vi (k1 ; k2 ) = q max fPi(q1; q2 )qi ci(qi; ki) hi(xi ) + ÆEVi(k^1; k^i)g i 0;xi 0 where k^i = (1 )ki + xi .

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

241

8.5.2 Risk-Sharing Game Consider two in nitely-lived agents who must make consumption-investment decisions. Each period, each agent i begins with a predetermined level of wealth si , of which an amount xi is invested, and the remainder is consumed, yielding an utility ui (si xi ). Agent i's wealth at the beginning of period t + 1 is determined entirely by his investment in period t and an income shock t+1 , which is unknown at the time the investment decision is made. More speci cally, wealth follows a controlled Markov process

sit+1 = gi (xit ; it+1 ): Suppose now that the two agents co-insure against exogenous income risks by agreeing to share their wealth in perpetuity. Speci cally, the agents agree that, at the beginning of any given period t, the wealthier of the two agents will transfer a certain proportion of the wealth dierential to the poorer agent. Under this scheme, agent i's wealth in period t + 1, after the transfer, will equal

sit+1 = (1 )gi (xit ; it+1 ) + gj (xjt ; jt+1 ): where j 6= i. If the wealth transfer is enforceable, but agents are free to consume and invest freely, moral hazard will arise. In particular, both agents will have incentives to shirk investment in favor of current consumption when co-insured. How will insurance aect the agents' behavior, and for what initial wealth states s1 and s2 and share parameter will both agents be willing to enter into the insurance contract? How does the correlation in the wealth shocks aect the value of the insurance contract? This is an in nite horizon, stochastic 2-agent dynamic game with two state variables, the wealth levels of the two agents s1 and s2 . Each agent i has a single decision variable, his investment xi , which is subject to the constraint 0 xi s^i . His current period reward, current utility, equals ui (^si xi ). The Markov perfect equilibrium for the redistribution game is represented by a pair of Bellman equations, one for each agent, which take the form

Vi (s1 ; s2 ) = max fui(^si 0xi s^i

xi ) + ÆEVi (^s1 ; s^2 )g;

where s^i = (1 )gi (xi ; i ) + gj (xj ; j ). Here, Vi (s1 ; s2 ) denotes the maximum expected lifetime utility that can be obtained by agent i.

8.5.3 Marketing Board Game Suppose that two countries are the sole producers of a commodity and that, in each country, a government marketing board has the exclusive power to sell the commodity

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

242

on the world market. The marketing boards compete with each other, attempting to maximize the present value of their own current and expected future income from commodity sales. More speci cally, the marketing board in country i begins each period with a pre-determined supply si of the commodity, of which it exports a quantity qi and stores the remainder si qi at a total cost ci (si qi ). The world market price will depend on the total amount exported by both countries, p = p(q1 + q2 ). The supplies available in the two countries at the beginning period t + 1 are given by

sit+1 = xit + yit where new production in both countries, y1t and y2t , are assumed to be exogenous and independently and identically distributed over time. What are the optimal export strategies for the two marketing boards? This is an in nite horizon, stochastic 2-agent dynamic game with two state variables, the beginning supplies in the two counties s1 and s2 . The marketing board for country i has a single decision variable, the export level qi , which is subject to the constraint 0 xi si . Country i's current reward, net income, equals p(q1 + q2 )qi ci (si qi ). The Markov perfect equilibrium for the marketing board game is captured by a pair of Bellman equations, one for each marketing board, which take the form

Vi (s1 ; s2 ) = 0max fp(q1 + q2 )qi q s i

i

ci (si

qi ) + ÆEy Vi (s1

q1 + y1 ; s2

q2 + y2 )g:

Here, Vi (s1 ; s2 ) denotes the maximum current and expected future income that can be earned by marketing board i, given that marketing board j remains committed to its export policy.

8.6 Rational Expectations Models We now examine dynamic stochastic models of economic systems in which arbitragefree equilibria are enforced through the collective, decentralized actions of atomistic dynamically optimizing agents. We assume that agents are rational in the sense that their expectations are consistent with the implications of the model as whole. Examples of phenomenon that may be studied in a rational expectations framework include asset returns in a pure exchange economy, pricing of primary commodities, and agricultural production subject to price controls. We limit attention to dynamic models of the following form: At the beginning of period t, an economic system emerges in a state st . Agents observe the state of the system and, by pursuing their individual objectives, produce a systematic response xt

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

243

governed by an equilibrium condition that depends on expectations of the following period's state and action

f (st ; xt ; Et h(st+1 ; xt+1 )) = 0: The economic system then evolves to a new state st+1 that depends on the current state st and response xt , and an exogenous random shock t+1 that is realized only after the system responds at time t:

st+1 = g (st ; xt ; t+1 ): In many applications, the equilibrium condition f = 0 admits a natural arbitrage interpretation. In these instances, fi > 0 indicates activity i generates pro ts on the margin, so that agents have a collective incentive to increase xi ; fi < 0 indicates that activity i generates loses on the margin, so that agents have a collective incentive to decrease xi . An arbitrage-free equilibrium exists if and only if f = 0. The state space S 2 0. The unit cost of storage is

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

253

k dollars per period; due to spoilage, a proportion of inventories held at the beginning of one period do not survive to the following period. The rm's initial inventories are x0 where 0 < x0 < Q. The rm wishes to minimize the present value of the cost of meeting its contractual obligation; assume a discount factor Æ < 1. (a) Identify the state and action variables, the reward function, and the transition function of this problem. (b) Write Bellman's functional equation. What does the value function represent? (c) Derive the Euler conditions and interpret them. What does the shadow price function represent? (d) Assuming increasing marginal cost, c00 > 0, qualitatively describe the optimal production plan. (e) Assuming decreasing marginal cost, c00 < 0, qualitatively describe the optimal production plan. 8.12. A subsistence farmer grows and eats a single crop. Production, yt , depends on how much seed is on hand at the beginning of the year, kt , according to yt = kt where 0 < < 1. The amount kept for next year's seed is the dierence between the amount produced and the amount consumed, ct :

kt+1 = yt

ct :

The farmer has a time-additive logarithmic utility function and seeks to maximize T X t=0

Æ t ln(ct ):

subject to having an initial stock of seed, k0 . (a) Identify the state and action variables, the reward function, and the transition function of this problem. (b) Write Bellman's functional equation. What does the value function represent? (c) Derive the Euler conditions and interpret them. What does the shadow price function represent?

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

254

(d) Show that the value function has the form V (kt ) = A + B ln(kt ) and that the optimal decision rule for this problem is kt+1 = Cyt ; nd the values for A, B , and C . 8.13. A rm competes in a mature industry whose total pro t is a xed amount X every year. If the rm captures a fraction pt of total industry sales in year t, it makes a pro t pt X . The fraction of sales captured by the rm in year t is a function pt = f (pt 1 ; at 1 ) of the fraction it captured the preceding year and its advertising expenditures the preceding year, at 1 . Find the advertising policy that maximizes the rm's discounted pro ts over a xed time horizon of T years. Assume p0 and a0 are known. (a) Identify the state and action variables, the reward function, and the transition function of this problem. (b) Write Bellman's functional equation. What does the value function represent? (c) Derive the Euler conditions and interpret them. What does the derivative of value function represent? (d) What conditions characterize the steady-state optimal solution? 8.14. A corn producer's net per-acre revenue in year t is given by

ct = pyt

cxt

wlt

where p is the unit price of corn ($/bu.), yt is the corn yield (bu./acre), c is the unit cost of fertilizer ($/lb.), xt is the amount of fertilizer applied (lbs./acre), w is the wage rate ($/man-hour), and lt is the amount of labor employed (manhours/acre). The per-acre crop yield in year t is a function

yt = f (lt ; xt ; st ) of the amount of labor employed and fertilizer applied in year t and the level of fertilizer carryin st from the preceding year. Fertilizer carryout in year t is a function

st+1 = f (xt ; st )

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

255

of the amount of fertilizer applied and the level of fertilizer carryin in year t. Assume that future corn prices, fertilizer costs, and wage rates are known with certainty. The corn producer wishes to maximize the expected present value of net revenues over a nite horizon of T years. Formulate the producer's optimization problem. Speci cally, (a) Identify the state and action variables, the reward function, and the transition function of this problem. (b) Write Bellman's functional equation. What does the value function represent? (c) Derive the Euler conditions and interpret them. What does the derivative of value function represent? (d) What conditions characterize the steady-state optimal solution? 8.15. The role of commodity storage in intertemporal allocation has often been controversial. In particular, the following claims have often been made: a) Competitive storers, in search of speculative pro ts, tend to hoard a commodity|that is, they collectively store more than is socially optimal, and b) A monopolistic storer tends to dump a commodity at rst in order to extract monopoly rents in the future|that is, he/she stores less than is socially optimal. Explore these two propositions in the context of a simple intraseasonal storage model in which a given amount Q of a commodity is to be allocated between two periods. Consumer demand is given by pi = a qi for periods i = 1; 2, and the unit cost of storage between periods is k. There is no new production in period 2, so q1 + q2 = Q. Speci cally, answer each of the following: (a) Determine the amount stored under the assumption that there are a large number of competitive storers. (b) Determine the amount stored under the assumption that there is a single pro t-maximizing storer who owns the entire supply Q at the beginning of period 1. (c) Taking expected total consumer surplus less storage costs as a measure of societal welfare, determine the socially optimal level of storage. Address the two comments above. (d) Consider an Economist who rejects net total surplus as a measure of social welfare. Why might he/she still wish to nd the level of storage that maximizes total surplus? To simplify the analysis, assume that the discount factor is 1 and that the storer(s) are risk neutral and possess perfect price foresight.

CHAPTER 8. CONTINUOUS STATE MODELS: THEORY

256

8.16. Consider an industry of identical price taking rms. For the representative rm, let st denote beginning capital stock, let xt denote newly purchased capital stock, let qt = f (st + xt ) denote production, let k denote the unit cost of new capital, and let > 0 denote the survival rate of capital. Furthermore, let pt = p(qt ) be the market clearing price. Find the perfect foresight competitive equilibrium for this industry. 8.17. Show that the competitive storage model in section 8.6.2 can be formulated with the equilibrium storage function as the sole unknown. Hint: Write the arbitrage storage condition in the form f (st ; xt ; Et h(xt+1 )) = 0 for some appropriately de ned function h. 8.18. Show that the competitive storage model of section 8.6.2 can be recast as a dynamic optimization problem. In particular, formulate a dynamic optimization problem in which a hypothetical social planner maximizes the discounted expected sum of consumer surplus less storage costs. Derive the Euler conditions to show that, under a suitable interpretation, they are identical to the rational expectations equilibrium conditions of the storage model. 8.19. Consider the production-inventory model of section 8.3.7. Show that the value function is of the form V (p; s) = ps + W (p) where W is the solution to a Bellman functional equation. Can you derive general conditions under which one can reduce the dimensionality of a Bellman equation? 8.20. Consider the monetary policy model of section 8.3.5. Derive the certaintyequivalent steady-state in ation rate, GDP gap, nominal interest rate, and shadow prices under the simplifying assumption that the nominal interest rate is unconstrained. 8.21. Demonstrate that the problem " 1 X

#

V (st ; dt ; pt ) = max E0 Æ t U (ct ) s.t. st+1 = st + (dt st ct 2[0;dt st ] t=0 leads to the Euler condition

ÆEt [U 0 (ct+1 )(pt+1 + dt+1 )] = U 0 (ct )pt :

ct )=pt :

Chapter 9 Discrete Time Continuous State Dynamic Models: Methods This chapter discusses numerical methods for solving discrete time continuous state dynamic economic models. Such models give rise to functional equations whose unknowns are entire functions de ned on a subset of Euclidean space. For example, the unknown of Bellman's equation

V (s) = max ff (s; x) + ÆEV (g (s; x; ))g x2X (s) is the value function V (). And the unknown of a rational expectations equilibrium condition

f (s; x(s); Eh(g (s; x(s); ); x(g (s; x(s); )))) = 0 is the response function x(). In most applications, these functional equations lack known closed form solution and can only be solved approximately using computational methods. Among the computational methods available, linear-quadratic approximation and space discretization historically have been popular among economists due to the relative ease with which they can be implemented. However, in most applications, these methods either provide unacceptably poor approximations or are computationally ineÆcient. In recent years, economists have begun to experiment with projection methods pioneered by physical scientists. Among the various projection methods available, the collocation method is the most useful for solving dynamic models in Economics and Finance. In most applications, the collocation method is exible, accurate, and numerically eÆcient. It can also be developed directly from basic numerical integration, approximation, and root nding techniques. 257

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

258

The collocation method employs a conceptually straightforward strategy to solve functional equations. Speci cally, the unknown function is approximated using a linear combination of n known basis functions whose n coeÆcients are xed by requiring the approximant to satisfy the functional equation, not at all possible points of the domain, but rather at n prescribed points called the collocation nodes. The collocation method eectively replaces an in nite-dimensional functional equation with a nite-dimensional nonlinear equation that can be solved using standard numerical root nding, xed-point, and complementarity techniques. Unfortunately, the widespread applicability of the collocation method to economic and nancial models has been hampered by the absence of publicly available general purpose computer code. We address this problem by developing computer routines that perform the essential computations for a broad class of dynamic economic and nancial models. Below, the collocation method is developed in greater detail for single- and multiple-agent decision Bellman equations and rational expectations models. Application of the method is illustrated with a variety of examples.

9.1 Traditional Solution Methods Before discussing collocation methods for continuous state Markov decision models in greater detail, let us brie y examine the two numerical techniques that historically have been popular among economists for computing approximate solutions to such models: space discretization and linear-quadratic approximation. Space discretization calls for the continuous state Markov decision model to be replaced with a discrete state and action decision model that closely resembles it. The resulting discrete state and action model is then solved using the dynamic programming methods discussed in Chapter 7. To \discretize" the state space of a continuous state Markov decision problem, one partitions the state space S into nitely many regions, S1 ; S2 ; : : : ; Sn . If the action space X is also continuous, it too is partitioned into nitely many regions X1 ; X2 ; : : : ; Xm . Once the space and action spaces have been partitioned, the analyst selects representative elements, si 2 Si and xj 2 Xj , from each region. These elements serve as the state and action spaces of the approximating discrete state discrete action Markov decision problem. The transition probabilities of the discrete state discrete action space problem are computed by integrating with respect to the density of the random shock:

P (si0 jsi ; xj ) = Pr[g (si; xj ; ) 2 Si0 ]: When the state and action spaces are bounded intervals on the real line, say, S = [smin ; smax ] and X = [xmin ; xmax ], it is often easiest to partition the spaces so that the nodes are equally-spaced and the rst and nal nodes correspond to the endpoints

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

259

of the intervals. Speci cally, set si = smin + (i 1)ws and xj = xmin + (j 1)wx, for i = 0; 1; : : : ; n and j = 0; 1; : : : ; m, where ws = (smax smin )=(n 1) and wx = (xmax xmin )=(m 1). If the model is stochastic, the transition probabilities of the approximating discrete state decision model are given by

P (si0 jsi ; xj ) = Pr[si0

ws =2 g (si; xj ; ) si0 + ws =2]:

Another popular method for solving dynamic optimization models is linear-quadratic approximation. Linear-quadratic approximation calls for the state transition function g and objective function f to be replaced with linear and quadratic approximants, respectively. Linear-quadratic approximation is motivated by the fact that an unconstrained Markov decision problem with linear transition and quadratic objective has a closed-form solution that is relatively easy to derive numerically. Typically, the linear and quadratic approximants of g and f are constructed by forming the rst- and second-order Taylor expansions around the certainty-equivalent steady-state. When passing to the linear-quadratic approximation, any constraints on the action, including nonnegativity constraints, must be discarded. The rst step in deriving an approximate solution to a continuous state Markov decision problem via linear-quadratic approximation is to compute the certaintyequivalent steady-state. If denotes the mean shock, the certainty-equivalent steadystate state s , optimal action x , and shadow price are characterized by the nonlinear equation system:

fx (s ; x ) + Æ gx (s ; x ; ) = 0 = fs (s ; x ) + Æ gs(s ; x ; ) s = g (s ; x ; ): Typically, the nonlinear equation may be solved for the steady-state values of s , x , and using standard nonlinear equation methods. In one-dimensional state and action models, the conditions can often be solved analytically. Here, fx, fs , gx , and gs denote partial derivatives whose dimensions are 1 m, 1 n, n m, and n n, respectively, where n and m are the dimensions of the state and action spaces, respectively. Here, the certainty-equivalent steady-state shadow price is expressed as a 1 n row vector. The second step is to replace the state transition function g and the reward function f , respectively, with their rst- and second-order Taylor series approximants expanded around the certainty-equivalent steady-state:

f (s; x)

f + fs(s s) + fx(x x ) + 0:5(s s)>fss (s s ) (x x ) + 0:5(x x )>f (x +(s s )>fsx xx

x )

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

260

g (s; x; ) g + gs (s s ) + gx (x x ): , and f are the values and partial derivatives Here, f , g , fs , fx , gs, gx , fss , fsx xx of f and g evaluated at the certainty-equivalent steady-state. If n and m are the dimensions of the state and action spaces, respectively, then the orders of these vectors and matrices are as follows: f is a constant, fs is 1 n, fx is 1 m, fss is n n, is m m, g is n 1, g is n n, and g is n m. fsx is n m, fxx s x The shadow price and optimal policy functions of the resulting linear-quadratic control problem will be linear. Speci cally:

x(s) = x + (s s ) (s) = + (s s ): The slope matrices of the policy and shadow price functions, and , are characterized by the nonlinear vector xed point equations = [Æg >g + f ][Æg >g + f >] 1 [Æg >g + f >] + Æg >g + f s

x

sx

x

x

xx

x

s

sx

s

s

ss

>] 1 [Æg >g + f >]: = [Ægx >gx + fxx x s sx

These xed point equations can usually be solved using numerically by function iteration, typically with initial guess = 0, or, if the problem is one dimensional, analytically by applying the quadratic formula. In particular, if the problem has = f 2 , a condition often enone dimensional state and action spaces, and if fss fxx sx countered in economic problems, then the slope of the shadow price function may be computed analytically as follows: = [f g 2 2f f g g + f g 2 f =Æ ]=g 2 ss x

ss xx s x

xx s

xx

x

9.2 The Collocation Method In order to describe the collocation method for solving continuous state Markov decision models, we will limit our discussion to in nite-horizon models with onedimensional state and action spaces and univariate shocks. The presentation generalizes to models with higher dimensional states, actions, and shocks, but at the expense of cumbersome additional notation required to track the dierent dimensions.1 1 The routines included in the Compecon library accompanying the book admit higher dimensional

states, actions, and shocks.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

261

Consider, then, Bellman's equation for an in nite horizon discrete time continuous state dynamic decision problem

V (s) = max ff (s; x) + ÆEV (g (s; x; ))g: x2X (s) Assume that the state space is a bounded interval of the real line, S = [smin ; smax ], and the actions either are discrete or are continuous and subject to simple bounds a(s) x b(s) that are continuous functions of the state. Further assume that the reward function f (s; x) and state transition function g (s; x; ) are twice continuously dierentiable functions of their arguments. To compute an approximate solution to Bellman's equation via collocation, one employs the following strategy: First, write the value function approximant as a linear combination of known basis functions 1 ; 2 ; : : : ; n whose coeÆcients c1 ; c2 ; : : : ; cn are to be determined:

V (s)

n X j =1

cj j (s):

Second, x the basis function coeÆcients c1 ; c2 ; : : : ; cn by requiring the approximant to satisfy Bellman's equation, not at all possible states, but rather at n states s1 ; s2 ; : : : ; sn , called the collocation nodes. Many collocation basis-node schemes are available to the analyst, including Chebychev polynomial and spline approximation schemes. The best choice of basis-node scheme is application speci c, and often depends on the curvature of the value and policy functions. The collocation strategy replaces the Bellman functional equation with a system of n nonlinear equations in n unknowns. Speci cally, to compute the value function approximant, or more precisely, to compute the n coeÆcients c1 ; c2 ; : : : ; cn in its basis representation, one must solve the nonlinear equation system X j

n X

cj j (si ) = max ff (si ; x) + ÆE cj j (g (si; x; ))g: x2X (si ) j =1

The nonlinear equation system may be compactly expressed in vector form as the collocation equation c = v (c): Here, , the collocation matrix, is the n by n matrix whose typical ij th element is the j th basis function evaluated at the ith collocation node ij = j (si )

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

262

and v , the collocation function, is the function from smax), disp('Warning: increase smax'), end; end

If the Bellman residuals are poor and there are attempts to extrapolate within vmax are detected, the minimum and/or maximum state should be extended and the model should be solved again. The interpolation interval should be repeatedly adjusted in this manner until extrapolation beyond the interval no longer occurs or the residual function becomes acceptably small.

9.3 Postoptimality Analysis Although the optimal policy and shadow price functions reveal a great deal about the nature of the optimized dynamic process, they give an incomplete picture of the model's implications. Given an economic model, we typically wish to describe the dynamic behavior of the optimized process and how this behavior changes with variations model parameters or assumptions. Given a dynamic economic model, we typically characterize the model's solution in one of two ways. Steady-state analysis examines the long-run tendencies of the optimized process, abstracting from the initial state and the path taken by the process over time. Dynamic path analysis focuses on how the system evolves over time, starting from a given initial condition.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

270

Given a deterministic dynamic model, steady-state and dynamic path analysis are relatively straightforward to perform. As we have seen, the steady-state of a deterministic process is typically characterized by a system of nonlinear equations. The system can be solved numerically and totally dierentiated to generate explicit expressions describing how the steady-state varies with changes in model parameters. Dynamic path analysis can be performed through a simple deterministic simulation of the process, which requires repeated evaluations of the optimal policy and state transition functions. In particular, if x(s) is the computed optimal policy function and g (s; x) is the transition function, then, given an initial state s0 , the path taken by the state variable may be computed iteratively as follows: st+1 = g (st ; x(st )): Given the path of the state variable st , it is then usually straightforward to generate the path taken by any other endogenous variable. The analysis of stochastic models is a bit more involved. Stochastic models do not generate an unique, deterministic path from a given initial state. A stochastic process may take any one of many possible paths, depending on the realizations of the random shocks. Often, it is instructive to generate one such possible path to illustrate the volatility that an optimized process is capable of exhibiting. This is performed by a simple Monte Carlo simulation in which a sequence of pseudorandom shocks are generated for the process using a random number generator. In particular, given the computed optimal policy function x(s), the transition function g (s; x; ), an initial state s0 , and a pseudorandom sequence of t , a representative path may be generated iteratively as follows: st+1 = g (st ; x(st ); t+1 ): A more revealing analysis of the dynamics generated by a stochastic model is to draw not a single representative path, but rather the expected path of the process. The expected path may be computed by generating a large number of independent representative paths and averaging the results at each point in time. The expected path is typically smooth and converges to a steady-state mean value. The steady-state of a stochastic process is a distribution, not a point. Typically, it will suÆce to compute the mean and standard deviation of the steady-state distribution for selected endogenous variables. The most common approach to computing steady-state means and variances is through the use of Monte Carlo simulation. Monte Carlo simulation is used to generate a single representative path of long horizon, say 10,000 periods. The values of the endogenous variable thus generated collectively re ect the steady-state distribution of the variable. In practice, we simply accumulate the rst and second moments of the variable with each simulated period, and compute the means and the standard deviation at the conclusion of the simulated long-run history. In many instances we are interested in seeing how certain properties of the model vary as the parameters of the model change. Typically, we focus on the relationship between the steady-state mean or variance of a given endogenous variable and an

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

271

exogenous parameter of interest. In order to perform sensitivity analysis, one performs Monte Carlo simulations at chosen values of the parameter and constructs a leastsquares t to the graph points generated in this fashion.

9.4 Computational Examples 9.4.1 Asset Replacement Consider the asset replacement model of Section 8.2.1 assuming that an asset produces q (a) = (50 2:5a 2:5a2 ) units of output in its ath period of operation, up to period a = 10, and that the output price is p = 2. Further assume that the replacement cost k is an exogenous continuous-valued rst-order Markov process kt+1 = g (kt; t+1 ) = k + (kt k) + t+1 where t is i.i.d. normal(0; 2). The collocation method calls for the analyst to select n basis functionsP j and n collocation nodes (ki ; ai ), and form the value function approximant V nj=1 cj j whose coeÆcients cj solve the collocation equation n X j =1

cj j (ki ; ai ) =

maxfp q (ai ) + Æ

n X j =1

wk cj j (k^ik ; ai + 1); p q (0) ki + Æ

n X j =1

wk cj j (k^ik ; 1)g:

where k^ik = g (ki; k ) and where k and wk represent Gaussian quadrature nodes and weights for the normal shock. In practice, one may solve the asset replacement model using Compecon library routines as follows:4

Step 1 Code model function le: function out = mfdp01(flag,s,x,e,price,cbar,gamma); switch flag case 'f'; % REWARD FUNCTION out = price*(50-2.5*s(:,2)-2.5*s(:,2).^2).*(1-x)... +(price*50-s(:,1)).*x; case 'g'; % STATE TRANSITION FUNCTION out(:,1) = cbar + gamma*(s(:,1)-cbar) + e; out(:,2) = min(s(:,2)+1,10).*(1-x) + x; end 4 Functioning Matlab code for this example is contained in the Compecon library demonstration le demdp01.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

272

The model function le returns the values of the reward and transition functions at arbitrary vectors of states s, actions x, and shocks e. Passing the ag 'f' returns the reward function value f and passing the ag 'g' returns the transition function value g.

Step 2 Enter model parameters: delta price cbar gamma sigma

= = = = =

0.9; 2.0; 100; 0.5; 15;

Here, the discount factor, output price, long-run mean replacement cost, replacement cost autoregression coeÆcient, and standard deviation of replacement cost shock are speci ed, respectively.

Step 3 Discretize shock: m = 5; [e,w] = qnwnorm(m,0,sigma^2);

Here, the normal replacement cost shock is discretized using a ve node Gaussian quadrature scheme.

Step 4 Specify basis functions and collocation nodes: n = 60; cmin = 30; cmax = 190; fspace = fundefn('lin',n,cmin,cmax,[],[1:10]'); snodes = funnode(fspace); s = gridmake(snodes);

Here, a 60-function nite dierence basis on the interval [30; 190] is used to approximate the value function along its continuous dimension (replacement cost) and the associated collocation nodes are used to formulate the collocation equation.

Step 5 Construct the action space: x = [0;1];

Here, the action space is dichotomous.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

273

Step 6 Pack model structure: model.func = 'mfdp01'; model.discount = delta; model.e = e; model.w = w; model.actions = x; model.discretestates = 2; model.params = {price cbar gamma};

Here, model is a structured variable whose elds contain the elements of the dynamic decision model. The rst eld contains the name of the model function le 'mfdp01'; the remaining elds contain the discount factor delta, shock values e, shock probabilities w, the action space x, the index of the discrete state (age) discretestates, and model function parameters params, respectively.

Step 7 Provide judicious guesses for values at the collocation nodes: vinit = zeros(size(s,1),1);

Here, the value function is initialized to zero.

Step 8 Solve the decision model: [c,s,v,x,resid] = dpsolve(model,fspace,snodes,vinit);

The Compecon routine dpsolve accepts as input the model structure model, basis functions fspace, collocation nodes snodes, and initial guess for the value function vinit. It then solves the collocation equation, returning as output the basis coeÆcients c, and the optimal values v, optimal actions x, and Bellman equation residuals resid at a re ned state grid s.

Step 8 Perform postoptimality analysis. Figure 9.1a gives the value of the rm as a

function of the asset replacement costs for dierent asset ages. For any given asset age, the value of the rm is downward sloping and kinked at the critical replacement cost, below which the asset is replaced. Figure 9.1b gives the Bellman equation residual for the nite dierence basis approximant as a function of the asset replacement costs for dierent asset ages. The residual exhibits noticeable errors at the critical replacement costs, which can be expected due to the discontinuous derivatives of the value function at those points.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS Value Function

274

Approximation Residual

600

0.05

580 0

560 −0.05

540 −0.1

Residual

Value

520

500

−0.15

−0.2

480 −0.25

460

−0.3

440

−0.35

420

400 20

40

60

80

100

120

140

160

180

200

−0.4 20

40

60

80

Replacement Cost

100

120

140

160

180

200

Replacement Cost

Figure 9.1: Solution to Asset Replacement Model

9.4.2 Timber Cutting Consider the timber cutting model of Section 8.2.2 assuming that the stand biomass s grows at a deterministic rate st+1 = K + exp (st K ). Further assume a constant pro t contribution per unit of biomass p and constant cost of replanting C . The collocation method calls for the analyst to select n basis functions P j and n collocation nodes (si ), and form the value function approximant V nj=1 cj j whose coeÆcients cj solve the collocation equation n X j =1

cj j (si ) = maxfÆ

n X j =1

cj j (g (si))); P si

C +Æ

n X j =1

cj j (0)g:

In practice, one may solve the timber cutting model using Compecon library routines as follows:5

Step 1 Code model function le: function out = mfdp02(flag,s,x,e,price,C,K,alpha); switch flag case 'f'; out = (price*s-C).*x; case 'g';

5 Functioning Matlab code for this example is contained in the Compecon library demonstration

le demdp02.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

275

out = ((K+exp(-alpha)*(s-K))).*(1-x); end

The model function le returns the values of the reward and transition functions at arbitrary vectors of states s, actions x, and shocks e. Passing the ag 'f' returns the reward function value f and passing the ag 'g' returns the transition function value g.

Step 2 Enter model parameters: delta price C K alpha

= = = = =

0.95; 1; 0.2; 0.5; 0.1;

Here, the discount factor, output price, replanting cost, carrying capacity, and speed of mean reversion are speci ed, respectively.

Step 3 Specify basis functions and collocation nodes: n = 350; fspace = fundefn('lin',n,0,K); snodes = funnode(fspace);

Here, a 350-function nite dierence basis on the interval [0; K ] and the associated standard collocation nodes are used to formulate the collocation equation.

Step 4 Construct the action space: x = [0;1];

Here, the action space is dichotomous.

Step 5 Pack model structure: model.func = 'mfdp02'; model.discount = delta; model.actions = x; model.params = {price C K alpha};

Here, model is a structured variable whose elds contain the elements of the dynamic decision model. The rst eld contains the name of the model function le 'mfdp02'; the remaining elds contain the discount factor delta, the action space x, and model function parameters params, respectively.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

276

Step 6 Provide judicious guesses for values at the collocation nodes: vinit = zeros(size(snodes));

Here, the value function is initialized to zero.

Step 7 Solve the decision model: [c,s,v,x,resid] = dpsolve(model,fspace,snodes,vinit);

The Compecon routine dpsolve accepts as input the model structure model, basis functions fspace, collocation nodes snodes, and initial guess for the value function vinit. It then solves the collocation equation, returning as output the basis coeÆcients c, and the optimal values v, optimal actions x, and Bellman equation residuals resid at a re ned state grid s. Value Function

Approximation Residual

−5

0.5

0.5

x 10

0 0.45 −0.5 0.4

0.35

Residual

Value of Land

−1

0.3

−1.5

−2

−2.5 0.25 −3 0.2 −3.5

0.15

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

−4

Biomass

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

Biomass

Figure 9.2: Solution to Timber Cutting Model

Step 8 Perform postoptimality analysis. Figure 9.2a gives the value of the stand as a function of the biomass. Figure 9.2b gives the Bellman equation residual for the nite dierence basis approximant.

9.4.3 Optimal Economic Growth Consider the optimal economic growth model of Section 8.3.1 assuming a social bene t function u(c) = c1 =(1 ), an aggregate production function f (x) = x , and an i.i.d.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

277

lognormal(0; 2) production shock . The collocation method calls for the analyst to select n basis functions j and n collocation nodes si , and form the value function P approximant V nj=1 cj j whose coeÆcients cj solve the collocation equation n X j =1

cj j (si ) = 0max f(s xs i i

x)1 =(1

) + Æ

m X n X k=1 j =1

wk cj j ( x + k x )g

where k and wk represent Gaussian quadrature nodes and weights for the lognormal shock. In practice, one may solve the optimal economic growth model using Compecon library routines as follows:6

Step 1 Code model function le: function [out1,out2,out3] = mfdp07(flag,s,x,e,alpha,beta,gamma); switch flag case 'b'; % BOUND FUNCTION out1 = zeros(size(s)); out2 = s; case 'f'; % REWARD FUNCTION out1 = ((s-x).^(1-alpha))/(1-alpha); out2 = -(s-x).^(-alpha); out3 = -alpha*(s-x).^(-alpha-1); case 'g'; % STATE TRANSITION FUNCTION out1 = gamma*x + e.*x.^beta; out2 = gamma + beta*e.*x.^(beta-1); out3 = (beta-1)*beta*e.*x.^(beta-2); end

The model function le returns the values and derivatives of the bound, reward, and transition functions at arbitrary vectors of states s, actions x, and shocks e. Passing the ag 'b' returns the lower and upper bounds on the action xl and xu; passing the

ag 'f' returns the reward function value and its rst and second derivatives with respect to the action, f, fx, and fxx; and passing the ag 'g' returns the transition function value and its rst and second derivatives with respect to the action, g, gx, and gxx.

Step 2 Enter model parameters:

6 Functioning Matlab code for this example is contained in the Compecon library demonstration

le demdp07.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS delta alpha beta gamma sigma

= = = = =

278

0.9; 0.2; 0.5; 0.9; 0.1;

Here, the discount factor, utility function parameter, production elasticity, capital survival rate, and production shock volatility are speci ed, respectively.

Step 3 Discretize shock: m = 3; [e,w] = qnwlogn(m,0,sigma^2);

Here, the lognormal production shock is discretized using a three node Gaussian quadrature scheme.

Step 4 Specify basis functions and collocation nodes: n = 10; smin = 5; smax = 10; fspace = fundefn('cheb',n,smin,smax); snodes = funnode(fspace);

Here, the rst ten Chebychev polynomials on the interval [5; 10] and the corresponding standard Chebychev nodes are selected to serve as basis functions and collocation nodes.

Step 5 Pack model structure: model.func = 'mfdp07'; model.discount = delta; model.e = e; model.w = w; model.params = {alpha beta gamma};

Here, model is a structured variable whose elds contain the elements of the dynamic decision model. The rst eld contains the name of the model function le 'mfdp07'; the remaining elds contain the discount factor delta, shock values e, shock probabilities w, and model function parameters params, respectively.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

279

Step 6 Provide judicious guesses for values and actions at the collocation nodes: estar = 1; xstar = ((1-delta*gamma)/(delta*beta))^(1/(beta-1)); sstar = gamma*xstar + xstar^beta; [vlq,xlq] = lqapprox(model,snodes,sstar,xstar,estar);

Here, the the certainty-equivalent steady-state shock, action, and state are computed analytically and passed to the Compecon library routine lqapprox, which returns the linear-quadratic approximation values and actions at the collocation nodes. The linear-quadratic approximation is used to initialize the collocation algorithm.

Step 7 Solve the decision model: [c,s,v,x,resid] = dpsolve(model,fspace,snodes,vlq,xlq);

The Compecon routine dpsolve accepts as input the model structure model, basis functions fspace, collocation nodes snodes, and initial guesses for the value function vlq and optimal actions xlq. It then solves the collocation equation, returning as output the basis coeÆcients c, and the optimal values v, optimal actions x, and Bellman equation residuals resid at a re ned state grid s.

Step 8 Perform postoptimality analysis. Figure 9.3a gives optimal investment as a

percent of wealth computed using both Chebychev collocation and linear-quadratic approximation. The Chebychev collocation approximant is upward sloping and the linear-quadratic approximant is downward sloping, indicating a qualitative dierence between the two. Figure 9.3b gives the Bellman equation residual for the Chebychev approximant. The residual possesses zeros at the collocation nodes by design and exhibits very nearly equal oscillations between the nodes, a property that is typical of Chebychev residuals when the underlying model is smooth and eectively unconstrained. In this example, a ten degree Chebychev approximation was suÆcient to solve the Bellman equation to a residual error of order 2 10 10 , approximately seven orders of magnitude more accurate than the linear-quadratic approximant, whose residual is not drawn. These results suggest that linear-quadratic approximation can yield globally inaccurate solutions even when the underlying model is smooth and the constraints on the actions are not binding. Figure 9.3c gives the expected path followed by the wealth level over time, beginning from a wealth level of 5. The expected path was computed by performing Monte Carlo simulations involving 2000 replications of twenty years in duration each, using the Compecon library routine dpsimul:

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS Approximation Residual

−9

Optimal Investment Policy

5

0.82 Chebychev L−Q

280

x 10

4

0.8

2

1 0.76

Residual

Investment as Percent of Wealth

3

0.78

0.74

0

−1

−2

0.72

−3 0.7

−4

0.68

5

5.5

6

6.5

7

7.5

8

8.5

9

9.5

−5

10

5

5.5

6

6.5

7

7.5

8

8.5

9

9.5

10

8.5

9

9.5

10

Wealth

Wealth

Expected Wealth

Steady State Distribution

7.5

0.09

0.08

7 0.07

0.06

Wealth

Probability

6.5 0.05

0.04

6 0.03

0.02

5.5

0.01

5

0

2

4

6

8

10

12

14

16

18

20

0

5

5.5

6

6.5

7

Year

7.5

8

Wealth

Figure 9.3: Solution to Optimal Economic Growth Model nyrs = 20; nrep = 2000; sinit = 5*ones(nrep,1); [spath,xpath] = dpsimul(model,sinit,nyrs,s,x);

As seen in this gure, expected wealth rises at a declining rate, converging asymptotically to a steady-state value of approximately 7.5. Figure 9.3d gives the steady-state distribution of the wealth level. The distribution, represented as an 80 bin histogram, was computed using using the Compecon library routine dpstst with a smoothing parameter of 5: nsmooth = 5;

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

281

nbin = 80; [ss,pi,xx] = dpstst(model,nsmooth,nbin,s,x);

As seen in this gure, the steady-state distribution is essentially bell-shaped with a mean of approximately 7.5, which is consistent with the Monte-Carlo state path simulations.

9.4.4 Public Renewable Resource Management Consider the public renewable resource management model of Section 8.3.2 assuming an inverse demand function p(x) = x , a constant cost of harvest k, and a deterministic state transition function g (s; x) = (s x) 0:5 (s x)2 . The collocation method calls for the analyst to select n basis functions j and n collocation nodes si , Pn and form the value function approximant V j =1 cj j whose coeÆcients cj solve the collocation equation n n X X x1 cj j (si ) = 0max f k x + Æ cj j ((si x) 0:5 (si x)2 )g: xsi 1 j =1 j =1 In practice, one may solve the public renewable resource management model using Compecon library routines as follows:7

Step 1 Code model function le: function [out1,out2,out3] = mfdp08(flag,s,x,e,alpha,beta,gamma,cost); switch flag case 'b'; % BOUND FUNCTION out1 = zeros(size(s)); out2 = s; case 'f'; % REWARD FUNCTION out1 = (x.^(1-gamma))/(1-gamma)-cost*x; out2 = x.^(-gamma)-cost; out3 = -gamma*x.^(-gamma-1); case 'g'; % STATE TRANSITION FUNCTION out1 = alpha*(s-x) - 0.5*beta*(s-x).^2; out2 = -alpha + beta*(s-x); out3 = zeros(size(s))-beta; end

7 Functioning Matlab code for this example is contained in the Compecon library demonstration

le demdp08.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

282

The model function le returns the values and derivatives of the bound, reward, and transition functions at arbitrary vectors of states s and actions x. Passing the ag 'b' returns the lower and upper bounds on the action xl and xu; passing the ag 'f' returns the reward function value and its rst and second derivatives with respect to the action, f, fx, and fxx; and passing the ag 'g' returns the transition function value and its rst and second derivatives with respect to the action, g, gx, and gxx.

Step 2 Enter model parameters: delta alpha beta gamma cost

= = = = =

0.9; 4.0; 1.0; 0.5; 0.2;

Here, the discount factor, growth function parameters, demand function parameter, and unit cost of harvest are speci ed, respectively.

Step 3 Specify basis functions and collocation nodes: n = 8; smin = smax = fspace snodes

6; 9; = fundefn('cheb',n,smin,smax); = funnode(fspace);

Here, the rst eight Chebychev polynomials on the interval [6; 9] and the associated standard Chebychev nodes are selected to serve as basis functions and collocation nodes.

Step 4 Pack model structure: model.func = 'mfdp08'; model.discount = delta; model.params = {alpha beta gamma cost};

Here, model is a structured variable whose elds contain the elements of the dynamic decision model. The rst eld contains the name of the model function le 'mfdp08'; the remaining elds contain the discount factor delta and model function parameters params, respectively.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

283

Step 5 Provide judicious guesses for values and actions at the collocation nodes: sstar = (alpha^2-1/delta^2)/(2*beta); xstar = sstar - (delta*alpha-1)/(delta*beta); [vlq,xlq] = lqapprox(model,snodes,sstar,xstar);

Here, the steady-state state and action are computed analytically and passed to the Compecon library routine lqapprox, which returns the linear-quadratic approximation values and actions at the collocation nodes. The linear-quadratic approximation is used to initialize the collocation algorithm.

Step 6 Solve the decision model: [c,s,v,x,resid] = dpsolve(model,fspace,snodes,vlq,xlq);

The Compecon routine dpsolve accepts as input the model structure model, basis functions fspace, collocation nodes snodes, and initial guesses for the value function vlq and optimal actions xlq. It then solves the collocation equation, returning as output the basis coeÆcients c, and the optimal values v, optimal actions x, and Bellman equation residuals resid at a re ned state grid s.

Step 7 Perform postoptimality analysis. Figure 9.4a gives optimal harvest as a

percent of resource stock computed using both Chebychev collocation and linearquadratic approximation. The Chebychev collocation approximant is upward sloping and the linear-quadratic approximant is downward sloping. Figure 9.4b gives the shadow price of the resource stock computed using both Chebychev collocation and linear-quadratic approximation. Both approximants are downward sloping, but the Chebychev approximant has a steeper slope. Figure 9.4c gives the Bellman equation residual for the Chebychev approximant. The residual possesses zeros at the collocation nodes by design and exhibits very nearly equal oscillations between the nodes. In this example, an eight degree Chebychev approximation was suÆcient to solve the Bellman equation to a relative residual error of order 2 10 10 . Figure 9.3d gives the path followed by the resource stock level over a twenty year period, beginning from a level of 6. The path was computed the Compecon library routine dpsimul: nyrs = 20; sinit = smin; [spath,xpath] = dpsimul(model,sinit,nyrs,s,x);

As seen in this gure, resource stock rises rapidly, eectively converging to its steadystate value of 4.5 within four years.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS Optimal Harvest Policy

284

Shadow Price Function

0.75

0.36 Chebychev L−Q

Chebychev L−Q 0.34

0.7

0.3

0.65

Price

Harvest as Percent of Stock

0.32

0.6

0.28

0.26

0.24 0.55 0.22

0.5

6

6.5

7

7.5

8

8.5

0.2

9

6

6.5

7

7.5

Available Stock

Approximation Residual

−9

8

x 10

8

8.5

9

Available Stock

State Path 7.5

6

4 7

Stock

Residual

2

0

−2 6.5

−4

−6

−8

6

6.5

7

7.5

8

8.5

9

6

0

2

4

6

Available Stock

8

10

12

14

16

18

20

Year

Figure 9.4: Solution to Public Renewable Resource Management Model

9.4.5 Private Nonrenewable Resource Management Consider the private nonrenewable resource management model of Section 8.3.3 assuming a constant output price and a cost of extraction c(s; x) = x2 =( + s) where and are positive constants. The collocation method calls for the analyst to select n basis functions P j and n collocation nodes si , and form the value function approximant V nj=1 cj j whose coeÆcients cj solve the collocation equation n X j =1

cj j (si ) = 0max f x xs i

n

X x2 =( + s) + Æ cj j (si j =1

x)g:

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

285

In practice, one may solve the private nonrenewable resource management model using Compecon library routines as follows:8

Step 1 Code model function le: function [out1,out2,out3] = mfdp09(flag,s,x,e,alpha,beta); switch flag case 'b'; % BOUND FUNCTION out1 = zeros(size(s)); out2 = s; case 'f'; % REWARD FUNCTION out1 = alpha*x - (x.^2)./(beta+s); out2 = alpha - 2*x./(beta+s); out3 = -2./(beta+s); case 'g'; % STATE TRANSITION FUNCTION out1 = s-x; out2 = -ones(size(s)); out3 = zeros(size(s)); end

The model function le returns the values and derivatives of the bound, reward, and transition functions at arbitrary vectors of states s and actions x. Passing the ag 'b' returns the lower and upper bounds on the action xl and xu; passing the ag 'f' returns the reward function value and its rst and second derivatives with respect to the action, f, fx, and fxx; and passing the ag 'g' returns the transition function value and its rst and second derivatives with respect to the action, g, gx, and gxx.

Step 2 Enter model parameters: delta = 0.9; alpha = 1.0; beta = 20.0;

Here, the discount factor, output price, and cost function parameter are speci ed, respectively.

Step 3 Specify basis functions and collocation nodes:

8 Functioning Matlab code for this example is contained in the Compecon library demonstration

le demdp09.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

286

n = 100; smin = 0; smax = 5; fspace = fundefn('spli',n,smin,smax); snodes = funnode(fspace);

Here, a 100 cubic spline basis on the interval [0; 5] and the corresponding standard nodes are selected to serve as basis functions and collocation nodes.

Step 4 Pack model structure: model.func = 'mfdp09'; model.discount = delta; model.params = {alpha beta};

Here, model is a structured variable whose elds contain the elements of the dynamic decision model. The rst eld contains the name of the model function le 'mfdp09'; the remaining elds contain the discount factor delta and model function parameters params, respectively.

Step 5 Provide judicious guesses for values and actions at the collocation nodes: xinit = snodes; vinit = zeros(size(snodes));

Here, since the model has no meaningful steady-state, the harvest is set equal to the stock level and the initial value function is set to zero to initialize the collocation algorithm.

Step 6 Solve the decision model: [c,s,v,x,resid] = dpsolve(model,fspace,snodes,vinit,xinit);

The Compecon routine dpsolve accepts as input the model structure model, basis functions fspace, collocation nodes snodes, and initial guesses for the value function vinit and optimal actions xinit. It then solves the collocation equation, returning as output the basis coeÆcients c, and the optimal values v, optimal actions x, and Bellman equation residuals resid at a re ned state grid s.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS Optimal Harvest Policy

287

Shadow Price Function

3

1

0.98

2.5 0.96

0.94

0.92

Price

Harvest

2

1.5

0.9

1

0.88

0.86

0.5 0.84

0

0

0.5

1

1.5

2

2.5

0.82

3

0

0.5

1

1.5

Available Stock Approximation Residual

−6

1

x 10

2

2.5

3

Available Stock State Path 3

2.5

0.5 2

0

Stock

Residual

1.5

1

−0.5

0.5

−1 0

−1.5

0

0.5

1

1.5

Available Stock

2

2.5

3

−0.5

0

2

4

6

8

10

12

14

16

18

20

Year

Figure 9.5: Solution to Private Nonrenewable Resource Management Model

Step 7 Perform postoptimality analysis. Figure 9.5a gives optimal harvest policy and the 45o line. A salient feature of the optimal policy is that, for stock levels roughly below 1, the upper bound on the extraction level is binding and the optimal policy is to extract all remaining stock. Figure 9.5b gives the shadow price of the resource stock. As seen in this gure, the shadow price exhibits an apparently discontinuous derivative or kink at the point at which the upper bound becomes binding. Figure 9.5c gives the Bellman equation residual for the cubic spline approximant. The residual exhibits a strong disturbance near the kink point, which is typical of spline and Chebychev polynomial approximations in the presence of kinks. Still, the residual produced with 100 cubic spline basis functions is small in the vicinity of the kink, on the order of 1 10 6 , and is several orders of magnitude smaller at stock levels

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

288

further removed from the kink. As seen in Figure 9.3d, if the initial stock level is 3, it will be optimal to extract the entire stock in exactly two years.

9.4.6 Optimal Monetary Policy Consider the optimal monetary policy model of Section 8.3.5 assuming a loss function 1 L(s) = (s s )> (s s ) 2 and a state transition function

g (s; x; ) = + s + x + where and are 2 1 constant vectors, is a 2 2 constant matrix, and is a 2 1 random with i.i.d. bivariate normal(0; ) shock . The collocation method calls for the analyst to select n basis functions j and n collocation nodes si , and form the Pn value function approximant V j =1 cj j whose coeÆcients cj solve the collocation equation n X j =1

cj j (si ) = max f L(si ) + Æ 0 x

m X n X k=1 j =1

wk cj j ( + s + x + k )g

where k and wk represent Gaussian quadrature nodes and weights for the normal shock. This example diers from the preceding continuous choice examples in that the state space is 2-dimensional. In practice, one may solve the optimal monetary policy model using Compecon library routines as follows:9

Step 1 Code model function le: function [out1,out2,out3] = mfdp11(flag,s,x,e,lambda,starget,a,b,c); [n ds] = size(s); switch flag case 'b'; % BOUND FUNCTION out1 = zeros(n,1); out2 = inf*ones(n,1); case 'f'; % REWARD FUNCTION starget = starget(ones(n,1),:); out1 = -0.5*((s-starget).^2)*lambda';

9 Functioning Matlab code for this example is contained in the Compecon library demonstration

le demdp11.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

289

out2 = zeros(n,1); out3 = zeros(n,1); case 'g'; % STATE TRANSITION FUNCTION out1 = a(ones(n,1),:) + s*b' + x*c + e; out2 = c(ones(n,1),:); out3 = zeros(n,ds); end

The model function le returns the values and derivatives of the bound, reward, and transition functions at arbitrary vectors of states s, actions x, and shocks e. Passing the ag 'b' returns the lower and upper bounds on the action xl and xu; passing the

ag 'f' returns the reward function value and its rst and second derivatives with respect to the action, f, fx, and fxx; and passing the ag 'g' returns the transition function value and its rst and second derivatives with respect to the action, g, gx, and gxx.

Step 2 Enter model parameters: delta = 0.9; a = [0.9 0.4]; b = [0.8 0.5; 0.2 0.6]; c = [-0.8 0.0]; lambda = [0.3 1]; starget = [0 1]; cov = 0.04*eye(2);

Here, the discount factor, transition function parameters, loss function preference weights, state targets, and shock covariance matrix are speci ed, respectively.

Step 3 Discretize shock: m = [3 3]; mu = [0 0]; [e,w] = qnwnorm(m,mu,cov);

Here, a 9-node discretization of the bivariate normal production shock is constructed by forming the Cartesian product of the three standard univariate nodes in each dimension.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

290

Step 4 Specify basis functions and collocation nodes: n = [10 10]; smin = [-15 -10]; smax = [15 10]; fspace = fundefn('spli',n,smin,smax); scoord = funnode(fspace); snodes = gridmake(scoord);

Here, a 100-function bivariate Chebychev polynomial basis on the square f(s1 ; s2 )j 15 s1 15; 10 s2 10g is constructed by forming the tensor products of the rst ten univariate Chebychev polynomials along each dimension; also, a 100-node collocation grid within the square is constructed by forming the Cartesian product of the ten standard Chebychev nodes along each dimension. Note that snodes will be a 100 by 2 matrix.

Step 5 Pack model structure: model.func = 'mfdp11'; model.discount = delta; model.e = e; model.w = w; model.params = {lambda starget a b c};

Here, model is a structured variable whose elds contain the elements of the dynamic decision model. The rst eld contains the name of the model function le 'mfdp11'; the remaining elds contain the discount factor delta, shock values e, shock probabilities w, and model function parameters params, respectively.

Step 6 Provide judicious guesses for values and actions at the collocation nodes: estar = [0 0]; sstar = starget; xstar = (sstar(1)-a(1)-b(1,:)*sstar')/c(1); [vlq,xlq] = lqapprox(model,snodes,sstar,xstar,estar);

Here, the the certainty-equivalent steady-state shock, state, and action are computed analytically and passed to the Compecon library routine lqapprox, which returns the linear-quadratic approximation values and actions at the collocation nodes. The linear-quadratic approximation is used to initialize the collocation algorithm.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

291

Step 7 Solve the decision model: [c,s,v,x,resid] = dpsolve(model,fspace,snodes,vlq,xlq);

The Compecon routine dpsolve accepts as input the model structure model, basis functions fspace, collocation nodes snodes, and initial guesses for the value function vlq and optimal actions xlq. It then solves the collocation equation, returning as output the basis coeÆcients c, and the optimal values v, optimal actions x, and Bellman equation residuals resid at a re ned state grid s. Optimal Monetary Policy

Approximation Residual

0.2

25 0.1

20

Deviation

Nominal Interest Rate

30

15 10

0

−0.1

−0.2

5 0 10

−0.3 10

15

5

15

5

10 0

10

5

0

5

0 −5

0 −5

−5

−5

−10 −10

Inflation Rate

−10

−15

−10

Inflation Rate

GDP Gap

Expected State Path

14

9

12

8

10

7

Inflation Rate

10

GDP Gap

8

6

4

6

5

4

2

3

0

2

−2

1

2

4

6

8

10

Year

12

GDP Gap

Expected State Path

16

−4 0

−15

14

16

18

20

0 0

2

4

6

8

10

12

14

16

18

20

Year

Figure 9.6: Solution to Optimal Monetary Policy Model

Step 8 Perform postoptimality analysis. Figure 9.6a gives optimal nominal interest

rate as a function of the underlying in ation rate and GDP gap. A salient feature of

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

292

the solution is that the nonnegativity constraint on the nominal interest rate is binding for low GDP gaps and in ation rates. Although the model possesses a quadratic objective and a linear state transition function, the exact solution cannot be derived via linear-quadratic approximation due to the binding constraint. Figure 9.6b gives the Bellman equation residual for the Chebychev approximant. The residual exhibits discernable turbulence along the boundary at which the nonnegativity constraint becomes binding, but is relatively small elsewhere. The residual can be reduced, but only at the expense of additional nodes along each direction. Unfortunately, doubling the basis functions and nodes in each direction quadruples the necessary computational eort due to the product rule construction of the bivariate basis and collocation grid. The Compecon library routine dpsimul was used to simulate the model 5000 times over a twenty year period starting from an initial GDP gap of 10% and in ation rate of 15%. Figure 9.6c indicates that the expected GDP gap will initially drop dramatically, overshooting its target of zero, but over time converges asymptotically to its target. Figure 9.6d, on the other hand, indicates that the expected in ation rate will drop monotonically steadily, eventually converging to its target of 1.

9.4.7 Production-Adjustment Model Consider the production-adjustment model of Section 8.3.6 assuming a linear cost of production function c(q ) = q , a stochastic constant elasticity inverse demand curve q , a quadratic adjustment cost a(q l) = 0:5(q l)2 , and an i.i.d. lognormal(0; 2) demand shock . In practice, one may solve the production-adjustment model using Compecon library routines as follows:10

Step 1 Code model function le: function [out1,out2,out3] = mfdp12(flag,s,x,e,alpha,beta,kappa); n = size(s,1); l = s(:,1); d = s(:,2); q = x; switch flag case 'b'; % BOUND FUNCTION out1 = zeros(n,1); out2 = inf*ones(n,1); case 'f'; % REWARD FUNCTION

10 Functioning Matlab code for this example is contained in the Compecon library demonstration

le demdp12.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

293

out1 = d.*q.^(1-beta) - kappa*q - 0.5*alpha*((q-l).^2); out2 = (1-beta)*d.*q.^(-beta) - kappa - alpha*(q-l); out3 = -beta*(1-beta)*d.*q.^(-beta-1) - alpha; case 'g'; % STATE TRANSITION FUNCTION out1 = [q e]; out2 = [ones(n,1) zeros(n,1)]; out3 = zeros(n,2); end

The model function le returns the values and derivatives of the bound, reward, and transition functions at arbitrary vectors of states s, actions x, and shocks e. Passing the ag 'b' returns the lower and upper bounds on the action xl and xu; passing the

ag 'f' returns the reward function value and its rst and second derivatives with respect to the action, f, fx, and fxx; and passing the ag 'g' returns the transition function value and its rst and second derivatives with respect to the action, g, gx, and gxx.

Step 2 Enter model parameters: delta beta kappa alpha sigma

= = = = =

0.9; 0.5; 0.5; 0.5; 0.4;

Here, the discount factor, demand elasticity, unit production cost, marginal production cost, and demand shock volatility are speci ed, respectively.

Step 3 Discretize shock: m = 3; [e,w] = qnwlogn(m,0,sigma^2);

Here, the lognormal demand shock is discretized using a three node Gaussian quadrature scheme.

Step 4 Specify basis functions and collocation nodes: n = [10 15]; smin = [xstar-1.0 e(1)]; smax = [xstar+3.0 e(m)];

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

294

fspace = fundefn('cheb',n,smin,smax); scoord = funnode(fspace); snodes = gridmake(scoord);

Here, a 150-function bivariate Chebychev polynomial basis is constructed by forming the tensor products of the rst ten and rst fteen univariate Chebychev polynomials along rst and second state dimension, respectively; also, a 150-node collocation grid is constructed by forming the Cartesian product of the ten and fteen standard Chebychev nodes along each dimension. Note that snodes will be a 150 by 2 matrix.

Step 5 Pack model structure: model.func = 'mfdp12'; model.discount = delta; model.e = e; model.w = w; model.params = {alpha beta kappa};

Here, model is a structured variable whose elds contain the elements of the dynamic decision model. The rst eld contains the name of the model function le 'mfdp12'; the remaining elds contain the discount factor delta, shock values e, shock probabilities w, and model function parameters params, respectively.

Step 6 Provide judicious guesses for values and actions at the collocation nodes: estar = 1; xstar = ((1-beta)/kappa)^(1/beta); sstar = [xstar 1]; [vlq,xlq] = lqapprox(model,snodes,sstar,xstar,estar);

Here, the the certainty-equivalent steady-state shock, action, and state are computed analytically and passed to the Compecon library routine lqapprox, which returns the linear-quadratic approximation values and actions at the collocation nodes. The linear-quadratic approximation is used to initialize the collocation algorithm.

Step 7 Solve the decision model: [c,s,v,x,resid] = dpsolve(model,fspace,snodes,vlq,xlq);

The Compecon routine dpsolve accepts as input the model structure model, basis functions fspace, collocation nodes snodes, and initial guesses for the value function vlq and optimal actions xlq. It then solves the collocation equation, returning as output the basis coeÆcients c, and the optimal values v, optimal actions x, and Bellman equation residuals resid at a re ned state grid s.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS Optimal Production Policy

Value Function

3.5

7.5

3

7

2.5

6.5

2

Value

Production

295

1.5

6 5.5

1

5

0.5

4.5

0 2

4 2 4

1.5

4

1.5

3

3

2

1

2

1

1 0.5

Demand Shock

0

1 0.5

Demand Shock

Lagged Production

0

Lagged Production

Expected Policy Path 1.2

Approximation Residual

1.1 −6

x 10

1

1

0.9

Production

Residual

0.5

0

−0.5

0.8

0.7

0.6

0.5 −1 2

0.4 4

1.5

3 1

Demand Shock

0.3

2

1 0.5

0

0.2 0

Lagged Production

2

4

6

8

10

12

14

16

18

20

Year

Figure 9.7: Solution to Production-Adjustment Model

Step 8 Perform postoptimality analysis. Figure 9.7a shows that optimal production

as a monotonically increasing function of the demand shock and the preceding period's production. Figure 9.7b gives the value of the rm as a function of the demand shock and the preceding period's production. Value is an increasing function of the demand shock, but a concave function of lagged production. Figure 9.7c gives the Bellman equation residual for the approximant. The residual exhibits discernable turbulence for low values of the demand shock. However, the maximum residuals are on the order of 1 10 7 times the value of the rm. The Compecon library routine dpsimul was used to simulate the model 5000 times over a twenty year period starting from an production of 0.3. Figure 9.7d indicates that production can be expected to adjust gradually toward an steady-state mean value of approximately 1.1.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

296

9.5 Dynamic Game Methods Recall from Section 8.5 that the Markov perfect equilibrium of an m-agent in nitehorizon dynamic game is characterized by a set of m simultaneous Bellman equations

Vp(s) = max fp (s; xp; x p (s)) + ÆE Vp(g (s; xp; x p (s); )) ; xp 2Xp (s) p = 1; 2; : : : ; m, whose unknowns are the m value functions Vp () and the associated optimal policies xp (), all of which are de ned on the state space S . For the sake of discussion, assume that the state space is a bounded interval of Euclidian space, S = [smin ; smax ], and that each agent p's actions are constrained to an interval on the real line, Xp(s) = [ap (s); bp (s)]. Further assume that the reward functions fp and state transition function g are twice continuously dierentiable functions of their arguments.11 To compute an approximate solution to the system of Bellman functional equations via collocation, one employs the following strategy: First, write the value function approximants as linear combinations of known basis functions 1 ; 2 ; : : : ; n whose coeÆcients cp1 ; cp2 ; : : : ; cpn, are to be determined: Vp(s)

n X j =1

cpj j (s):

Second, x the mn basis function coeÆcients cp1 ; cp2; : : : ; cpn by requiring the approximants to satisfy their respective Bellman equations, not at all possible states, but rather at n states s1 ; s2 ; : : : ; sn , called the collocation nodes. The collocation strategy replaces the m Bellman functional equations with a system of mn nonlinear equations in mn unknowns. Speci cally, to compute the value function approximants, or more precisely, to compute the mn basis coeÆcients cp1 ; cp2 ; : : : ; cpn in their basis representations, one solves the equation system X j

n X

cpj j (si ) = max ffp (si ; xpi ; x pi) + ÆE cpj j (g (si; xpi ; x pi; ))g: xpi 2Xp (si ) j =1

for p = 1; 2; : : : ; m and i = 1; 2; : : : ; n, where xpi is action taken by agent p and x pi are the actions taken by his competitors when the state is si . The nonlinear equation system may be compactly expressed in vector form as a system of simultaneous collocation equations cp = vp (cp ; x p): 11 The presentation generalizes to models with dimensional individual action spaces, but at the

expense of cumbersome additional notation that oers little additional insight.

CHAPTER 9. CONTINUOUS STATE MODELS: METHODS

297

Here, cp is the n by 1 vector of basis coeÆcients of agent p's value function approximant; x p is the (m 1)n vector of his competitors actions at the state nodes; , the collocation matrix, is the n by n matrix whose typical ij th element is the j th basis function evaluated at the ith collocation node ij = j (si );

and vp , agent p's collocation function, is the function from <mn to C VW + 21 W 2 w>wVW W ; C;w s.t.

P

i wi

= 1. The FOC associated with this maximization problem are

U 0 (C ) = VW ; W VW + W 2 VW W w and

X i

wi = 1;

(10a)

1 = 0;

(10b) (10c)

where is a Lagrange multiplier introduced to handle the adding-up constraint on the wi . A bit of linear algebra applied to (10b) and (10c) will demonstrate that the 10 If prices were not geometric Brownian motion the coeÆcients and would be functions of

current prices and the Bellman's Equation would have additional terms representing derivatives of the value function with respect to prices, which would make the problem considerably harder to solve.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

352

optimal portfolio weight vector, w, can be written as a linear combination of vectors, and , that are independent of the investor's preferences:

w = + (W );

(11)

where

11 = > 1 ; 1 1

= 1

1> 1>

1 11 1

and

VW ; W VW W This has a nice economic interpretation. When asset prices are generated by geometric Brownian motion, a portfolio separation result occurs, much like in the static CAPM model. Only two portfolios are needed to satisfy all investors, regardless of their preferences. One of the portfolios has weights proportional to 1 1, the other to 1 ( ( > )1). The relative amounts held in each portfolio depend on the investor's preferences, with more of the rst portfolio being held as the degree of risk aversion rises (as (W ) decreases). This is understandable when it is noticed that the rst portfolio is the minimum risk portfolio, i.e., solves the problem (W ) =

min > ; s.t. > 1 = 1: Furthermore, the expected return on the minimum risk portfolio is >; hence the term ( >)1 can therefore be thought of as an \excess" return vector, i.e., the expected returns over the return on the minimum risk portfolio. The problem is therefore reduced to determining the two decision rule functions for consumption and investment decisions, C (W ) and (W ), that satisfy:

U 0 (C (W )) = VW (W ) and

VW (W ) : W VW W (W ) Notice that the two fund separation result is a result of the assumption that asset prices follow geometric Brownian motions and not the result of any assumption about (W ) =

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

353

preferences. Given the enormous simpli cation that it allows, it is small wonder that nancial economists like this assumption.

Example: Neoclassical Growth Model

Ramsey introduced what has become a standard starting place for studying optimal economic growth. The basic model has been re ned and extended in numerous ways. We present here simple version.11 A single (aggregate) good economy is governed by a production technology, f . The net output from the production process depends on the level of the capital stock K . That output can either be consumed at rate C or invested, thereby increasing the capital stock. A social utility function depends on the rate of consumption, U (C ); a social planner attempts to maximize the discounted stream of social utility over an in nite time horizon, using a constant discount factor . The optimization problem can be expressed in terms of K , the state variable, and C , the control variable, as follows Z 1

max e t U (C )dt; C (t) 0 subject to the state transition function K 0 = q (K ) C . This is a deterministic in nite time problem so VKK and Vt do not enter the Bellman's equation. The Bellman's equation for this problem is

V (K ) = max U (C ) + V 0 (K ) (q (K ) C ) C

The maximization problem requires that

U 0 (C ) = V 0 (K ):

(12)

We can derive an Euler equation form for this problem by eliminating the value function, thereby obtaining a dierential equation for consumption in terms of current capital stock. Applying the Envelope Theorem,

V 0 (K ) = q 0 (K )V 0 (K ) + [q (K ) C ]V 00 (K ):

(13)

Combining (12), (13) and the fact that V 00 (K ) = U 00 (C )C 0 (K ) yields

U 0 (C ) 0 (q (K ) ) = (q (K ) C )C 0 (K ): U 00 (C ) Thus the optimal decision rule C (K ) solves a rst order dierential equation. 11 We alter Ramsey's original formulation by including a discount factor in the optimization prob-

lem, as is standard in modern treatments.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

354

The boundary condition for this dierential equation is that the solution passes through the point (K ; C ) which simultaneously solves dK=dt = 0 and the Euler condition: q 0 (K ) = C = q (K ):

Example: Non-Renewable Resource Management

A rm that manages a non-renewable resource obtains a net return ow of Ax1 per unit of time, where x is the rate at which the resource is extracted. The stock of the resource is governed by dS = xdt: The extraction rate is bounded below by 0 (x 0) and constrained to equal 0 if the stock is 0 (S = 0 ) x = 0). The manager seeks to solve Z 1 1 V (S ) = max E e Ax d : x 0 The Bellman's equation for the problem is V (S ) = max Ax1 xVs : x

The boundary condition is that V (0) = 0. The rst order optimality condition is VS (S ) = (1 )Ax : Using an Euler equation approach, apply the envelope theorem to obtain VS = xVSS : We have an expression for VS from the optimality condition and this can be dierentiated with respect to S to obtain dx (1 )Ax = (1 )Ax : dS Simplifying, this yields dx = ; dS which, with the boundary condition that x = 0 when S = 0, produces the optimal control x(S ) = S and the value function 1 V (S ) = AS :

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

355

10.3 Free Boundary Problems We have already seen how boundary conditions are needed to determine the solution to dynamic models in continuous time. Many important problems in economics, however, involve boundaries in the state space which must be determined as part of the solution. Such problems are known as free boundary problems. The boundary marks the location where some discrete action is taken, generally taking the form of eecting an instantaneous change in the value of a continuous or a discrete state.12 Table 10.2 contains a classi cation of dierent free boundary problems that have appeared in the economics literature. An important distinction, both in understanding the economics and in solving the problem numerically, is whether the boundary can be crossed. If the control is such that it maintains a state variable within some region de ned by the free boundary, the problem is a barrier problem and we will solve a dierential equation in this region only. For example, the stock of a stochastic renewable resource can be harvested in such a way as to keep the stock level below some speci ed point. If the stock rises to this point, it is harvested in such a way as to maintain it at the boundary (barrier control) or to move it to some point below the boundary (impulse control).

Table 10.2: Types of Free Boundary Problems BARRIERS: Problem

Action at Boundary

Impulse control Jump from trigger to target Barrier control Move along boundary TRANSITIONAL BOUNDARIES: Problem Action at Boundary Discrete states Bang-bang

Change state Switch between control extrema

In barrier controls problems, the barrier de nes a trigger point at which, if reached, one maintains the state at the barrier by exactly osetting any movements across the

12 In the physical sciences free boundary problems are also known as Stefan problems. A commonly

used example is the location of the phase change between liquid and ice, where the state space is measured in physical space coordinates.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

356

barrier. Typically, such a control is optimal when there are variable costs associated with exerting the control. In such a situation it is only optimal to exert the control if the marginal change in the state osets the marginal cost of exerting the control. In impulse control problems, if the barrier is reached one takes an action that instantaneously moves the state to a point inside the barrier. An (s; S ) inventory control system is an example of an impulse control in which the state is the level of inventory, which is subject to random demand. When the inventory drops to the level s, an order to replenish it to level S is issued. Typically such controls are optimal when there is a xed cost associated with exerting the control; the control is exerted only when the bene t from exerting the control covers the xed cost. The other major type of free boundary problem arises when, in addition to one or more continuous state variables, there is also a state that can take on discrete set of values. In this case, boundaries represent values of the continuous states at which a change in the discrete state occurs. For example, consider a rm that can either be actively producing or can be inactive (a binary state variable). The choice of which state is optimal depends on a randomly uctuating net output price. Two boundaries exist that represent the prices at which the rm changes from active to inactive or from inactive to active (it should be clear that the latter must be above the former to prevent the rm from having to be continuously changing!). An important special case of the discrete state problem is the so-called optimal stopping problem; the exercise of an American option is perhaps the most familiar example. Stopping problems arise when the choice of one of the discrete state values is irreversible. Typically the discrete state takes on two values, active and inactive. Choosing the inactive state results in an immediate one time payout. An American put option, for example, can be exercised immediately for a reward equal to the option's exercise price less the price of the underlying asset. It is optimal to exercise when the underlying asset's price is so low that it is better to have the cash immediately and reinvest it than to wait in hopes that the price drops even lower. Another important special case is the so-called stochastic bang-bang problem. Such problems arise when it is optimal to exert a bounded continuous control at either its maximum or minimum level. Eectively, therefore, there is a binary state variable that represents which control level is currently being exerted. The free boundary determines the values of the continuous variables at which it is optimal to change the binary state. A couple points should be mentioned now and borne in mind whenever considering free boundary problems. First, it is useful to distinguish between the value function evaluated using an arbitrary boundary and the value function using the optimal choice of the boundary. The value function (the present value of the return stream) using an arbitrary barrier control is described by a second order partial differential equation subject to the appropriate boundary conditions; this is the message

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

357

of the Feynman-Kac equation (see Appendix A, Section A.5.3). The optimal choice of the boundary must then add additional restrictions that ensure its optimality. We therefore distinguish in Table 10.2 between a point, S a , on an arbitrary boundary and a point, S , on the optimal boundary. As we shall see in the next chapter, this distinction is particularly important when using a strategy to nd the free boundary that involves guessing its location, computing the value function for that guess, and then checking whether the optimality condition holds. Related to this is an understanding the number of boundary conditions that must be applied. Here are some rules that should help you avoid problems. First, any non-stochastic continuous state will have one partial derivative and will require one boundary condition. On the other hand, any stochastic state variable will have second order derivatives and will generally need two boundary conditions.13 These statements apply to arbitrary controls. For optimality we will require an additional boundary condition for each possible binary choice. The additional constraints can be derived formally by maximizing the value function for an arbitrary barrier with respect to the location of the barrier, which for single points means solving an ordinary maximization problem and for functional barriers means solving an optimal control problem. In all of these cases one can proceed as before by de ning a Bellman's Equation for the problem and solving the resulting maximization problem. The main new problem that arises lies in determining the region of the state space over which the Bellman's Equation applies and what conditions apply at the boundary of this region. We will come back to these points so, if they are not clear now, bear with us. Now let us consider each of the main types of problem and illustrate them with some examples.

10.3.1 Impulse Control Impulse and barrier control problems arise when the reward function includes the size of the change in a state variable caused by exerting some control. Such problems typically arise when there are transactions costs associated with exerting a control, in which case it may be optimal to exert the control at an in nite rate at discrete selected times. In addition, the reward function need not be continuous in S . The idea of an in nite value for the control may seem puzzling at rst and one may feel that it is unrealistic. Consider that in many applications encountered in economics the control represents the rate of change in a state variable. The state is typically a stock of some asset measured in quantity units. The control is thus a

ow rate, measured in quantity units per unit time. If the control is nite, the state 13 The exception to this rule of thumb involves processes that exhibit singularities at natural

boundaries, which can eliminate the need to specify a condition at this boundary

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

358

cannot change quickly; essentially the size of the change in the state must be small if the time interval over which the change is measured is small. In many situations, however, we would like to have the ability to change the state very quickly in relation to the usual time scale of the problem. For example, the time it takes to cut down a timber stand may be very small in relation to the time it takes for the stand to grow to harvestable size. In such situations, allowing the rate of change in the state to become in nite allows us to change the state very quickly (instantaneously). Although this makes the mathematics somewhat more delicate, it also results in simpler optimality conditions with intuitive economic interpretations. Consider the single state case in which the state variable governed by

dS = [(S ) + x]dt + (S )dz and the reward function that is subject to xed and variable costs associated with exerting the control:

f (S; S; x) =

8 > > > < > > > :

r (S ) c ( S ) F r0 (S ) r+(S ) c+ (S ) F +

if x < 0 if x = 0 if x > 0

with c (0) = c+ (0) = 0. In this formulation there are xed costs, F and F +, and variable costs, c and c+ , associated with exerting the control, both of which depend on the sign of the control. Typically, we would assume that the xed costs are nonnegative. The variable costs, however, could be negative; consider the salvage value from selling o assets. To rule out the possibility of arbitrage pro ts, when the reward is increasing in the state (rS 0), we require that F + + c+ (z ) + F + c ( z ) > 0 for any positive z ; thereby preventing in nite pro ts to be made by continuous changes in the state. With continuous time diusion processes, which are very wiggly, any strategy that involved continuous readjustment of a state variable would become in nitely expensive and could not be optimal. Instead the optimal strategy is to change the state instantly in discrete amounts, thereby incurring the costs of those states only at isolated points in time. An impulse control strategy would be optimal when there are positive xed costs (F + ; F > 0). Barrier control strategies (which we discuss in the next section) arise when the xed cost components of altering the state are zero. With impulse control, the state of the system is reset to a new position (a target) when a boundary is reached (a trigger). It may be the case that either or both the trigger and target points are endogenous. For example, in a cash management

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

359

situation, a bank manager must determine when there is enough cash-on-hand (the trigger) to warrant investing some of it in an interest bearing account and must also decide how much cash to retain (the target). Alternatively, in an inventory replacement problem, an inventory is restocked when it drops to zero (the trigger), but the restocking level (the target) must be determined (restocking occurs instantaneously so there is no reason not to let inventory fall to zero). A third possibility arises in an asset replacement problem, where the age at which an old machine is replaced by a new one must be determined (the trigger), but the target is known (the age of a new asset). In any impulse control problem, a Feynman-Kac Equation governs the behavior of the value function on a region where control is not being exerted. The boundaries of the region are determined by value matching conditions that equate the value at the trigger point with the value at the target point less the cost of making the jump. Furthermore, if the trigger is subject to choice, a smooth pasting condition is imposed that the marginal value of changing the state is equal to the marginal cost of making the change. A similar condition holds at the target point if it is subject to choice.

Example: Asset Replacement

Consider the problem of when to replace an asset that produces a physical output, y (A), where A is the state variable representing the age of the asset. The asset's value also depends on the net price of the output, P , and the net cost of replacing the asset, c. This is a deterministic problem in which the state dynamics are simply dA = dt. The reward function is y (A)P . Thus the Bellman equation is

V (A) = y (A)P + V 0 (A): This dierential equation is solved on the range A 2 [0; A ], where A is the optimal replacement age. The boundary conditions are given by the value matching condition:

V (0) = V (A ) + c and the optimality (smooth pasting) condition:

V 0 (A ) = 0 The smooth pasting condition may not be obvious, but it is intuitively reasonable if one considers that an asset which is older than A should always be immediately replaced. Once past the age of A , therefore, the value function is constant: V (A) = V (A ) = V (0) c, for A A . No optimality condition is imposed at the lower boundary (A = 0) because this boundary is not a decision variable.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

360

Before leaving the example, a potentially misleading interpretation should be discussed. Although it is not unusual to refer to V (A) as the value of an age A asset, this is not quite correct. In fact, V (A) represents the value of the current asset, together with the right to earn returns from future replacement assets. The current asset will be replaced at age A and has value equal to the discounted stream of returns it generates: Z A A

e t P y (A + t)dt;

0 but the value function is

V (A) =

Z A A

e t P y (A + t)dt + e (A A) V (A )

0 Thus the current asset at age A has value V (A) e (A A) V (A ):

Example: Timber Harvesting

The previous example examined an asset replacement problem in which the asset generated a continuous stream of net returns. In some cases, however, the returns are generated only at the replacement time. Consider a forest stand that will be clear-cut on a date set by the manager. The stand is allowed to grow naturally at a biologically determined rate according to

p

dS = (m S )dt + Sdz: The state variable here represents the biomass of the stand and the parameter m represents a biological equilibrium point. When the stand is cut, it is sold for a net return of P S . In addition, the manager incurs a cost of C to replant the stand, which now has size S = 0. The decision problem is to determine the optimal cutting/replanting stand size, using a discount rate of . The Bellman equation is

V = (m S )V 0 (S ) + 12 2 SV 00 (S ); for S 2 [0; S ], where S is determined by boundary conditions V (S ) = V (0) + P S and

V 0 (S ) = P

C value matching smooth pasting.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

361

If the stand starts at a size above S it is optimal to cut/replant immediately. Clearly the marginal value of additional timber when S > S is the net return from the immediate sale of an additional unit of timber. Hence, for S > S , V (S ) = V (S ) + p(S S ) and V 0 (S ) = P: As in the previous example, the value function refers not to the value of the timber on the stand but rather to the right to cut the timber on the land in perpetuity.

10.3.2 Barrier Control In barrier control problems it is optimal to maintain the state within a region by keeping it on the region's boundary whenever it would otherwise tend to move outside of it and to do nothing when the state is in the interior of the region. This, of course, assumes that the state is suÆciently controllable so that such a policy is feasible. Barrier control problems can be thought of as limiting cases of impulse control problems as the size of any xed costs go to zero. When this happens, the size of the jump goes to zero, so the trigger and target points become equal. This represents something of a dilemma because the value matching condition between the target and jump points becomes meaningless when these points are equal. The resolution of this dilemma is to shift the value matching condition to the rst derivative and the smooth pasting to the second derivative (the latter is sometimes referred to as a super-contact condition).

Example: Capacity Choice A rm can install capital, K , to produce an output with a net return of P . Capital produces Q(K ) units of output per unit of time, but the capital depreciates at rate Æ . The rm wants to determine V (Kt ) = max I

Z 1 t

e

h

i

P q (K ) CI d;

s.t.

dK = (I

ÆK )dt;

together with the constraint that I 0. This is an in nite horizon, deterministic control problem. The Bellman's Equation for this problem is

V (K ) = max P q (K ) CI I

(I

ÆK )V 0 (K ):

The KKT condition associated with optimal I is

C

V 0 (K ) 0; I 0 and (V 0 (K ) C )I = 0:

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

362

This suggests that the rate of investment should be 0 when the marginal value of capital is less than C and that the rate should be suÆciently high (in nite) to ensure that the marginal value of capital never falls below C . We assume that capital exhibits positive but declining marginal productivity. The optimal control is speci ed by a value K such that investment is 0 when K > K (implying low marginal value of capital) and is suÆcient high to ensure that K does not fall below K . If K starts below K , the investment policy will be to invest at an in nite rate so as to move instantly to K , incurring a cost of (K K )C in the process. If K starts at K , the investment rate should be just suÆcient to counteract the eect of depreciation. Summarizing, the optimal investment policy is

I=

8 > > > < > > > :

1

for K < K for K = K : for K > K

ÆK 0

The value function for any arbitrary value of K can now be determined. To do so, rst de ne the function T (K; K ) to represent the time it takes for the capital stock to reach K is it is current equal to K . Clearly T = 0 if K K . In the absence of investment, the capital stock evolves according to Kt+h = e Æh Kt ; hence T = ln(K=K )=Æ for K > K . The value function is 8

K e 0 It is clear that value matching holds; i.e. the value function is continuous. Not so obvious is the fact that the derivative of the value function is also continuous. The left hand derivative is clearly equal to C and a few simple computations will show that the right hand derivative is also.14 This illustrates the point made above that the usual smooth-pasting condition (i.e., the continuity of the rst derivative) is not an optimality condition in barrier control problems. To determine the optimal choice of K , notice that we can use the Bellman equation to express the value function for K > K : 1 V (K ; K ) = [P q (K ) ÆKVK (K ; K )] :

14 For K > K V 0 (K ) =

Z

0

T

e

P q 0 (e

Æ

K )d + e

T

P q (e

ÆT

K)

e

T

V (K )

dT : dK

Using dT=dK = 1=(ÆK ) and T (K ; K ) = 0 and simplifying yields the desired result.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

363

Setting the derivative of this expression with respect to K to 0 ÆK VK (K ; K ) = VKK (K; K ); and noting that VK (K ; K ) = C implies that VKK (K ; K ) = VKK (K ; K ), demonstrates that the appropriate optimality condition is to nd K such that

VKK (K ) = 0; implying continuity of the second derivative. To complete the problem we apply the Envelope Theorem to the Bellman equation to note that

VK = P q 0(K ) ÆVK

ÆKVKK :

Using the fact that VK (K ) = C and VKK (K ) = 0 yields the condition satis ed by the optimal K : P 0 C= q (K ): +Æ This is the same expression one obtains by setting the derivatives in (14) equal to 0 and solving for K = K .15

10.3.3 Discrete State/Control Problems We turn now to problems involving transitional boundaries. In such problems, controls are not exerted on a continuous state variable to force it to remain within some region. Instead, the boundary typically represents the values of the state at which a decision is made to change from one discrete state to another. In the simplest form of these problems, a termination decision is taken. So-called optional stopping problems include the exercise of American style options and asset abandonment. More complicated problems arise when projects can be activated and deactivated. The problem 15 We should express a note of caution here. When the depreciation rate is 0, the second derivative

condition does not apply and, in fact, the second derivative is discontinuous at the optimal K . The intuition is clear, however. When Æ = 0 the capital stock stays the same unless actively moved. Since disinvestment is not allowed (I 0), if the marginal value of capital is less than the cost of capital, no change in the capital stock is warranted. However, if the marginal value of capital is less than C , then the capital stock should be immediately increased to the point where the present value of the marginal unit of capital equals the cost of capital: C = P q 0 (K )=:

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

364

then becomes one of determining the value of the project if active, given that one can deactivate it, together with the value of the project if inactive, given that it can be activated. The solution involves two boundaries, one which determines when the project should be activated (given that it is currently inactive), the other when it should be deactivated (given that it is currently active). The hallmark of transitional boundary problems is that there is a distinct value function on either side of the boundary and there are conditions that must apply to both of these functions at the boundary. Thus the boundary and the value functions on both sides must all be simultaneously determined. For arbitrary speci cations of the boundary, we require that the two value functions, net of switching costs, are equal at the boundary (value matching) and for the optimal boundary, we require that their derivatives are equal at the boundary (smooth-pasting or high contact).

Optimal Stopping Problems The optimal stopping problem is in many ways the simplest of the free boundary problems and arises in situations involving a once and for all decision. For example, suppose a rm is attempting to decide whether a certain project should be undertaken. The value of the project depends on a stochastic return that the project, once developed, will generate. The state variable can therefore be taken to be the present value of the developed project. Furthermore, the rm must invest a speci ed amount to develop the project. In this simple framework, the state space is partitioned into a region in which no investment takes place (when the present value of the developed project is low) and a region in which the project would be undertaken immediately. The boundary between these two areas represents the value of the state, that, if reached from below, would trigger the investment. It is important to emphasize that optimal stopping problems, although they have a binary control, dier from other binary control problems in that one value of the control pays out an immediate reward, after which no further decisions are made. The one time nature of the control makes the problem quite dierent from and, actually, easier to solve than problems with binary controls that can be turned on and o. Stopping problems in continuous time are characterized by a random state governed by

dS = (S )dt + (S )dz; a reward stream f (S ) that is paid so long as the process is allowed to continue and a payout function R(S ) that is received when the process is stopped (for now we consider only in nite time discounted time autonomous problems; this will be relaxed presently).

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

365

Another way to view the stopping problem is as a problem of choosing an optimal time to stop a process. This leads to the following formal statement of the problem "Z # t (S ) V (S ) = max E e f (S )d + e t (S ) R(S ) : t (S ) 0 This value function is described by the dierential equation V (S ) = f (S ) + (S )VS (S ) + 21 2 (S )VSS (S ) (15) The optimal control problem consists of nding the boundary between the regions on which the process should be stopped and those on which it should be allowed to continue. For the present, assume that there is a single such switching point, S , with S < S indicating that the process should be allowed to continue. Thus the dierential equation is satis ed on [S; S ], where S is a (known) lower bound on the state. Any speci c choice of a control consists of a choice of the stopping point, say S . At this point the value function, to be continuous, must equal the reward

V (S a ) = R(S a ); (the value-matching condition). The optimal choice of S a is determined by the smooth pasting condition

VS (S ) = R0 (S ); the optimal choice makes the derivative of the value function equal the derivative of the reward function at the boundary between the continuation and stopping regions. Intuitively, the value matching and smooth pasting conditions are indierence relations; at S the decision maker is indierent between continuing and stopping. The value function must, therefore, equal the reward and the marginal value of an additional unit of the state variable must be equal regardless of whether the process is stopped or allowed to continue. This is the simplest of the optimal stopping problems. We can make them more complex by allowing time to enter the problem either through non-autonomous rewards, state dynamics or stopping payment or by imposing a nite time horizon. In the following example we examine a nite horizon problem.

Example: Exercising an American Put Option An American put option, if exercised, pays K P , where K is the exercise or strike price. P is the random price of the underlying asset, which evolves according to dP = (P )dt + (P )dz:

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

366

The option pays nothing when it is being held, so f (P ) = 0. Let T denote the option's expiration date, meaning that it must be exercised on or before t = T (if at all). In general, the option is written on a traded asset so we may use the form of the Bellman's Equation that is discounted at the risk-free rate and with mean function replaced by rP ÆP (see Section 10.2.2):

ÆP ) VP + 21 2 (P )VP P on the continuation region, where Æ represents the income ow (dividend, convenience yield, etc.) from the underlying asset. Notice that the constraint that t T means that the value function is a function of time and so Vt must be included in the Bellman's Equation. The solution involves determining the optimal exercise boundary, P (t). Unlike the previous problem, in which the optimal stopping boundary was a single point, the boundary here is a function of time. For puts, P (t) is a lower bound so the continuation region on which the Bellman's Equation is de ned is [P ; 1). The boundary conditions for the put option are rV = Vt + (rP

V (P; T ) = max(K P; 0) (terminal condition) V (P ; t) = K P (value matching) VP (P ; t) = 1 (smooth-pasting) and,

V (1; t) = 0:

Example: Machine Abandonment

Consider a situation in which a machine produces an output worth P per unit time, where

dP = P dt + P dz; i.e., that P is a geometric Brownian motion process. The machine has an operating cost of c per unit time. If the machine is shut down, it must be totally abandoned and thus is lost. Furthermore, at time T , the machine must be abandoned. At issue is the optimal abandonment policy for an agent who maximizes the ow of net returns from the machine discounted at rate . For the nite time case de ne as equal to the time remaining until the machine must be abandoned, so = T t and d = dt. The optimal policy can be de ned in terms of a function, P ( ); for P > P ( ) it is optimal to keep the machine running, whereas for P < P ( ) it is optimal to abandon it.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

367

The current value of the operating machine satis es the Bellman's equation V = P c V + P VP + 21 2 P 2 VP P : and boundary conditions

V (P; 0) = 0 VP (1; ) = (1 e V (P ; ) = 0 VP (P ; ) = 0

)=(

terminal condition ) natural boundary condition value matching condition smooth pasting condition

The rst boundary condition states that the machine is worthless when it must be abandoned. The second condition is derived by considering the expected value of an in nitely-lived machine that is never abandoned:

V (P; ) =

P

c

1 e

(the derivation of this result is left as an exercise). An alternative upper boundary condition is that VP P (1; ) = 0. The remaining two conditions are the value matching and smooth pasting conditions at P ( ).

General Transitional Boundaries An optimal stopping problem exhibits complete irreversability; an inactivated (exercised) option cannot be reactivated. Optimal stopping problems can put into a more general framework by viewing them as having a binary state variable representing the active/inactive states. In an optimal stopping problem, the cost of moving from the inactive to the active state is eectively in nite, thus precluding this possibility. More generally, however, it may be possible to move back and forth between states. In general, suppose that there is a state variable, D, that can take on integer values from 1 to n, as well as a continuous state variable (possibly vector-valued) governed by

dS = (S )dt + (S )dz: The control variable is one that allows any of the n discrete state to be chosen; hence x(S; D) takes on values in the set f1; : : : ; ng. In addition, there is a cost to switching from D = i to D = j of F ij . A decision rule de nes the n sets i as the values of S such that S 2 i ) x(S; i) = i. i is the set of values of S for which a decision rule speci es that the

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

368

discrete state remain unchanged. The boundaries of the i represent states at which it is optimal to change the value of D. It is important to note, however, that the presence of xed transition costs makes it possible that the i are overlapping sets ( i \ j 6= ;). The solution can be expressed as a set of n functions, V i (S ), representing the value function for each of the n values of the discrete state. From a computational point of view, it is only necessary to de ne V i (S ) over the points in i , and to determine the set of switching points S ij , for each (i; j ). The Bellman equation is i (S ); rV i (S ) = f (S; i) + (S )VSi (S ) + 12 2 (S )VSS

for S 2 i . In addition, at any points, S ij on the boundary of i at which a switch from i to j is eected, it must be true that

V i (S ij ) = V j (S ij ; j ) F ij to ensure that no arbitrage opportunities exist. Furthermore, if the switch point is optimal, the smooth pasting condition also holds

VSi (S ij ) = VSj (S ij ):

Example: Entry/Exit

Consider a rm that can either be not producing at all or be actively producing q units of a good per period at a cost of c per unit. In addition to the binary state Æ (Æ = 0 for inactive, Æ = 1 for active), there is also an exogenous stochastic state representing the return per unit of output, P , which is a geometric Brownian motion process:

Pt = (P )dt + (P )dz: We assume there are xed costs of activating and deactivating of I and E , with I + E 0 (to avoid arbitrage opportunities). The value function is

V (P; Æ ) = E

Z 1

t Æ (P

e c)dt the discounted costs of switching states; 0 where Æ = 1 if active, 0 if inactive. For positive transition costs, it is reasonable that such switches should be made infrequently. Furthermore it is intuitively reasonable that the optimal control is to activate when P is suÆciently high, P = Ph , and to deactivate when the price is suf ciently low, P = Pl . It should be clear that Pl < Ph , otherwise in nite transactions costs would be incurred. The value function can therefore be thought of as a pair of

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

369

functions, one for when the rm is active, V a , and one for when it is inactive, V i . The former is de ned on the interval [Pl ; 1), the latter on the interval [0; Ph]. On the interior of these regions the value functions satisfy the Feynman-Kac equations

V a = P c + (P )VPa + 2 (P )VPaP : V i = (P )VPi + 2 (P )VPi P

(16)

At the upper boundary point, Ph, the rm will change from being inactive to active at a cost of I . Value matching requires that the value functions dier by the switching cost: V i (Ph) = V a (Ph) I . Similarly at the point Pl the rm changes from an active state to an inactive one; hence V i (Pl ) E = V a (Pl ). Value matching holds for arbitrary choices of Pl and Ph . For the optimal choices the smooth pasting conditions must also be satis ed:

VPi (Pl ) = VPa (Pl ) and

VPi (Ph ) = VPa (Ph ): In this problem, the exit is irreversible in the sense that reentry is as expensive as initial investment. A re nement of this approach is to allow for temporary suspension of production, with a per unit time maintenance change. Temporary suspension is generally preferable to complete exit (so long as the maintenance charge is not prohibitive). The discrete state for this problem takes on 3 values; its solution is left as an exercise.

10.3.4 Stochastic Bang-Bang Problems Bang-bang control problems arise when both the reward function and the state transition dynamics are linear in the control and the control is bounded. In such cases it is optimal to set the control at either its upper or lower bound. The control problem thus becomes one of dividing the state space into a set of points at which the control is at its upper bound and a set at which it is at its lower bound. Equivalently, the problem is to nd the boundary between the two sets. If there is no cost to switching the control from the lower to upper bound, we are in precisely the same situation that we discussed in the last section when the switching costs go to zero. The optimal value function and control is found in a similar fashion: de ne a Feynman-Kac Equation on each side of the boundary and require that the value functions on either side of the boundary are equal up to their second derivative.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

370

The general bang-bang problem has reward function of the form

f0 (S ) + f1 (S )x and state dynamics of the form

dS = [g0 (S ) + g1 (S )x]dt + (S )dz: Furthermore the control is constrained to lie on a given interval:

xa x xb : The Bellman's equation for this problem is

V = max f0 (S ) + f1 (S )x + [g0 (S ) + g1 (S )x]VS + 21 2 (S )VSS x subject to the control constraint. The Karush-Kuhn-Tucker conditions for this problem indicate that x=

8 < :

xa if f1 (S ) + g1 (S )VS (S ) > 0 xb if f1 (S ) + g1 (S )VS (S ) < 0

This suggests that there is a point, S , at which

f1 (S ) + g1 (S )VS (S ) = 0:

(17)

Assuming that VS is decreasing in S , this suggests that we must solve for two functions, one for S < S that solves a V a = f0 (S ) + f1 (S )xa + [g0 (S ) + g1 (S )xa ]VSa + 12 2 (S )VSS (18) and the other for S > S that solves b : V b = f0 (S ) + f1 (S )xb + [g0 (S ) + g1 (S )xb ]VSb + 21 2 (S )VSS (19) We will need three side conditions at S to completely specify the problem and to nd the optimal location of S , namely that

V a (S ) = V b (S ) VSa (S ) = VSb (S ) f1 (S ) + g1 (S )VS (S ) = 0:

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

371

Combining these conditions with (18) and (19) we see that a (S ) = V b (S ); VSS SS

i.e., with the optimal choice of S the value function is continuous up to its second derivative.

Example: Harvesting a Renewable Resource

Consider a manager of a renewable biological resource who must determine the optimal harvesting strategy. The state variable, the stock of the resource, is stochastic,

uctuating according to

dS = [S (1 S ) hS ]dt + Sdz; where h, the control, is the proportional rate at which the resource is harvested. Assume that the per unit return is p and that 0 h C . The manager seeks to solve

V (S ) = max E h

Z 1

e

t phSdt

:

0 In the notation of general problem, xa = 0, xb = C , f0 (S ) = 0, f1 (S ) = pS , g0 (S ) = S (1 S ) and g1 (S ) = S . The Bellman equation for this problem is

V = max phS + (S (1 S ) hS ) VS + 12 2 S 2 VSS : h The assumptions the stock dynamics imply that V (0) = 0 (once the stock reaches zero it never recovers and hence the resource is worthless). At high levels of the stock, the marginal value of an additional unit to the stock becomes constant and hence VSS (1) = 0. The rst order conditions for this problem suggest that it is optimal to set h = C if VS < p and set h = 0 if VS > p. The interpretation of these conditions is straightforward: only harvest when the value of a harvested unit of the resource is greater than an unharvested one and then harvest at maximum rate. Thus the problem becomes one of nding the sets S 0 = fS : VS > pg and

S C = fS : VS < pg

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

372

where

V

S (1 S )VS

V

(S (1 S )

1 2 S 2 VSS = 0 2

and

CS ) VS

1 2 S 2 VSS 2

on S 0

pCS = 0 on S C

The solution must also satisfy the boundary conditions at 0 and 1 and the continuity conditions at any points S such that VS (S ) = p. The fact that S (1 S ) hS is concave in S implies that S will be a single point, with S 0 = [0; S ) and S C = (S ; 1).

Example: Production with a Learning Curve

More complicated bang-bang problems arise when there are two state variables. The free boundary is then a curve, which typically must be approximated. Consider the case of a rm that has developed a new production technique. Initially production costs are relatively high but decrease as the rm gains more experience with the process. It therefore has an incentive to produce more than it otherwise might due to the future cost reductions it thereby achieves. To make this concrete, suppose that marginal and average costs are constant at any point in time but decline at an exponential rate in cumulative production until a minimum marginal cost level is achieved. The problem facing the rm is to determine the production rule that maximizes the present value of returns (price less cost times output) over an in nite horizon: Z 1

e

rt (P

C (Q)) x dt; 0 where r is the risk-free interest rate and the two state variables are P , the output price, and Q, the cumulative production to date. The state transition equations are max x

dP = P dt + P dz and

dQ = x dt; where x is the production rate, which is constrained to lie of the interval [0; xc ]. The price equation should be interpreted as a risk-neutral process. The cost function is given by

C (Q) =

8 < :

ce ce

Q

Qm

if Q < Qm ; = c if Q Qm

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

373

once Q Qm , the per unit production cost is a constant but for Q < Qm it declines exponentially. The Bellman equation for this problem is rV = max (P C (Q)) x + xVQ + P VP + 12 2 P 2 VP P x s.t. 0 x xc . The problem thus is of the stochastic bang-bang variety with the optimality conditions given by:

P P

C (Q) + VQ < 0 C (Q) + VQ > 0

) x=0 ) x = xc:

Substituting the optimal production rate into the Bellman Equation and rearranging yields the partial dierential equation rV (P; Q) = P VP (P; Q) + 21 2 P 2 VP P + max(0; P C (Q) + VQ(P; Q))xc : The boundary conditions for this problem require that

V (0; Q) = 0 VP (1; Q) = xc =Æ and that V , VP , and VQ be continuous. The rst boundary condition re ects the fact that 0 is an absorbing state for P ; hence is P reaches 0, no revenue will ever be generated and hence the rm has no value. The second condition is derived from computing the expected revenue if the rm always produces at maximum capacity, as it would if the price were to get arbitrarily large (i.e., if the probability that the price falls below marginal cost becomes arbitrarily small). The derivative of the expected revenue is xc =Æ . As illustrated in Figure 10.1, the (Q; P ) state space for this problem is divided by a curve P (Q) that de nes a low price region in which the rm is inactive and a high price region in which it is active. Furthermore, for Q > Qm the location of P (Q) is equal to c because, once the marginal cost is at its minimum level, there is nothing to be gained from production when the price is less than the marginal production cost. For Q > Qm the problem is simpli ed by the fact that VQ = 0. Thus V is a function of P alone and the value of the rm satis es rV (P ) = P VP (P ) + 12 2 P 2 VP P + max(0; P C (Q))xc : For Q < Qm , on the other hand, VQ 6= 0 and the location of the boundary P (Q) must be determined simultaneously with the value function.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

374

Sequential Learning: Optimal Activation Boundary 50 Qm 45

Production Region:

40

Production

V(P,Q) must be 35

Region:

computed numerically

V known

P

30 *

25

P

20

15 Non−Production Region:

10

A(Q) computed from

Non−Production

value matching condition

5

Region: V known

0

0

5

10

15

20

25

Q

Figure 10.1 A third boundary condition V (P; Qm ) = V (P ) (de ned below) is a \terminal" condition in Q. Once Qm units have been produced the rm has reached its minimum marginal cost. Further production decisions do not depend on Q nor does the value of the rm, V . An explicit solution can be derived for Q > Qm : 8

assets. The fraction of wealth held in the riskless asset is 1 i wi = 1 w 1. a) Show that the wealth process can be follows

dW = [W (r + w>( r1)) C ]dt + w>dz: W b) Write the Bellman's Equation for this problem and the associated rst order condition. c) Show that it is optimal to hold a portfolio consisting of the risk-free asset and a mutual fund with weights proportional to 1 ( r1). d) Derive expressions for w>( r1) and w>w and use them to concentrate the Bellman equation with respect to w. 1 C e) Suppose that U (C ) = 1 . Verify that the optimal consumption rate is proportional to the wealth level and nd the constant of proportionality. 10.8. Portfolio Choice Continued Continuing the previous problem, de ne (W ) = V 0 (W )=V 00 (W ). Show that C (W ) and (W ) satisfy a system of rst order dierential equations. Use this result to verify that C is aÆne in W and is a constant when U (C ) = e C . 10.9. Stochastic Nonrenewable Resource Management Suppose that the resource stock discussed on page 354 evolved according to

dS = xdt + Sdz: Verify that the optimal control has the form

x(S ) = S ; and, in so doing, determine the values of and . Also obtain an expression for the value function. You should check that your answer in the limiting case that = 0 is the same as that given on page 354.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

380

10.10. Nonrenewable Resources with Stochastic Prices As in the example on page 354, a resource is extracted at rate x, yielding a ow of returns Ax1 . The stock of the resource is governed by dS = xdt. Here, however, we treat A as a random shock process due to randomness in the price of the resource governed by

dA = (A)dt + (A)dz: The rm would like to maximize the expected present value of returns to extraction, using a discount rate of . a) State the rm's optimization problem. b) State the associated Bellman's equation. c) State the rst order optimality condition and solve for the optimal extraction rate (as a function of the value function and its derivatives). 10.11. Timber Lease A government timber lease allows a timber company to cut timber for T years on a stand with B units of biomass. The price of cut timber is governed by

p

dp = (p p)dt + pdW: With a cutting rate of x and a cutting cost of Cx2 =2, discuss how the company can decide what to pay for the lease, given a current price of p and a discount rate of (assume that the company sells timber as it is cut). Hint: introduce a remaining stand size, S , with dS = xdt (S is bounded below by 0) and set up the dynamic programming problem. 10.12. Timber Harvesting with Deterministic Growth Suppose that the timber harvesting problem discussed on page 360 is nonstochastic. The Bellman equation can then be rewritten in the form

V : m S Verify that the solution is of the form V0 =

V = k(m S )

= ;

where k is a constant of integration to be determined by the boundary conditions. There are two unknowns to be determined, k and S . Solve for k in terms of S and derive an optimality condition for S as a function of parameters.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

381

10.13. Fishery Management A monopolist manager of a shery faces a state transition function

dS = [S (M

S ) x]dt + 2 (S )dW:

The price is constant and the cost function has a constant marginal cost that is inversely proportional to the stock level. In addition, a xed cost of F is incurred if any shing activity takes place. The reward function can thus be written

p

C x F Æx>0 : S

This is an impulse control problem with two endogenous values of the state, Q and R, with Q < R. When S R, the stock of sh is harvested down to Q. Express the Bellman equation for S R and the boundary conditions that determine the location of Q and R (assume a discount rate of ).

V (S ) = S (M

S )VS (S ) +

2 (S ) V (S ); for S 2 [0; R]: 2 SS

V (R) V (Q) = p(R Q) C ln(R=Q) F: Vs(R) = p C=R Vs(Q) = p C=Q: 10.14. Capital Investment Consider an investment situation in which a rm can add to its capital stock, K , at a cost of C per unit. The capital produces output at rate q (K ) and the net return on that output is P . Hence the reward function facing the rm is

f (K; P; I ) = P q (K ) CI: K is clearly a controllable state, with dK = Idt:

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

382

P , on the other hand, is stochastic and is assumed to be governed by dP = P dt + P dz; (geometric Brownian motion). Using a discount rate of , the Bellman equation for this problem is

V (K; P ) = max P q (K ) CI + IVK (K; P ) + P VP (K; P ) + 21 2 P 2 VP P (K; P ): I There are, however, no constraints on how fast the rm can add capital and hence it is reasonable to suppose that, when it invests, it does so at an in nite rate, thereby keeping its investment costs to a minimum. The optimal policy, therefore, is to add capital whenever the price is high enough and to do so in such a way that the capital stock price remains on or above a curve K (P ). If K > K (P ), no investment takes place and the value function therefore satis es

V (K; P ) = P q (K ) + P VP (K; P ) + 12 2 P 2 VP P (K; P ): This is a simpler expression because, for a given K , it can be solved more or less directly. It is easily veri ed that the solution has the form

V (K; P ) = A1 (K )P 1 + A2 (K )P 2 +

P q (K )

where the i solves 12 2 ( 1) + = 0. It can be shown, for > > 0, that 2 < 0 < 1 < 1 . For the assumed process for P , 0 is an absorbing barrier so the term associated with the negative root must be forced to equal zero by setting A2 (K ) = 0 (we can drop the subscripts on A1 (K ) and 1 ). At the barrier, the marginal value of capital must just equal the investment cost:

VK (K (P ); P ) = C:

(20)

Consider now the situation in which the rm nds itself with K < K (P ) (for whatever reason). The optimal policy is immediately to invest enough to bring the capital stock to the barrier. The value of the rm for states below the

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

383

barrier, therefore, is equal to the value at the barrier (for the same P ) less the cost of the new capital:

V (K; P ) = V (K (P ); P ) (K (P ) K )C: This suggests that the marginal value of capital equals C when K < K (P ) and hence does not depend on the current price. Thus, in addition to (20), it must be the case that

VKP (K (P ); P ) = 0:

(21)

Use the barrier conditions (20) and (21) to obtain explicit expressions for the optimal trigger price P (K ) and the marginal value of capital, A0 (K ). Notice that to determine A(K ) and therefore to completely determine the value function, we must solve a dierential equation. The optimal policy, however, does not depend on knowing V , and, furthermore, we have enough information now to determine the marginal value of capital for any value of the state (K; P ). Write a program to compute and plot the optimal trigger price curve are displayed in using the parameters

c

= = = =

0 0:2 0:05 1

and the following two alternative speci cations for q (K ):

q (K ) = ln(K + 1) p q (K ) = K: 10.15. Cash Management Consider the manager of a cash account subject to random deposits and withdrawals. In the absence of active management the account is described by absolute Brownian motion

dS = dt + dz:

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

384

The manager must maintain a positive cash balance. When the account hits 0, the manager must draw funds from an interest bearing account. To increase the cash account by z units, the manager bears a cost of f + cz , i.e., there are both xed and proportional variable costs of control. Similarly, the manager can place funds in the interest bearing account by withdrawing an amount z from the cash account, incurring costs of F + Cz . Suppose the manager uses a discount rate of and the interest bearing account generates interest at rate r. It is clear that the manager will want to adjust the account only at discrete times so as to minimize the adjustment costs. A control policy can therefore be described as a choice of three cash levels, S1 S2 S3 , where S1 is the amount of the addition to the fund when it hits 0, S3 is the trigger level for withdrawing funds (adding them to the interest bearing account) and S2 is the target level (i.e., S3 S2 units are withdrawn when the fund hits S3 ). The value function associated with this problem solves the Bellman equation16

V (S ) = V 0 (S ) + 21 2 V 00 (S ); for S 2 [0; S3 ] with the side conditions that

V (0) = V (S1 ) f

(r= + c)S1

and

V (S3 ) = V (S2 ) F + (r= C )(S3

S2 ):

Furthermore, an optimal policy satis es

V 0 (S1 ) = (r= + c) and

V 0 (S3 ) = V 0 (S2 ) = (r= C ):

16 Although it is not necessary to solve the problem, it is useful to understand why these conditions

are appropriate. The value function here is interpreted as the present value of the current cash position, which does not depend on how much money is in the interest bearing account at the present moment. Cash pays no current ows and hence the Bellman equation is homogeneous (no reward term). The cost of withdrawing funds from the interest bearing account equals the control cost plus the opportunity cost of the lost interest, which is equal to r= times the amount withdrawn. The cost of adding funds to the interest bearing account equals the control cost less the present value of the interest earned on the funds put into the account (r= times the amount of these funds).

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

385

The Bellman equation can be solved explicitly:

V (S ) = A exp(S ) + B exp( S ); where and are chosen to solve the dierential equation and A and B are chosen to satisfy the side conditions. Write a MATLAB procedure that accepts the parameters , , , r, f , F , c, and C and returns the parameters A, B , , , S1 , S2 , and S3 . Also determine how the program needs to be modi ed if the proportional costs (c and C ) are zero. Check your code using the following parameter values: = 0, = 0:5, = 0:4, r = 0:5, f = 1, F = 0:5, c = 0:1, and C = 0:1. You should obtain the result that S1 = 0:7408, S2 = 0:8442, and S3 = 2:2216. 10.16. Entry/Suspension/Exit The Entry/Exit problem discussed beginning on page 368 can be extended to allow for temporary suspension of production. Suppose that a maintenance fee of m is needed to keep equipment potentially operative. In the simple entry/exit problem there were two switching costs, I and E . Now there are 6 possible switching costs, which will generically be called F ij . With D = 1 representing the active production state, D = 2 the temporarily suspended state and D = 3 the exited state, de ne the Bellman equations and boundary conditions satis ed by the solution. 10.17. Non-Renewable Resource Management The demand for a nonrenewable resource is given by

p = D(q ) = q ; where q is the extraction rate. For simplicity, assume the resource can be extracted at zero cost. The total stock of the resource is denoted by S (with S (0) = S0 ), and is governed by the transition function

dS = qdt: a) For the social planner's problem, with the reward function being the social surplus, state the Bellman's equation and the optimality condition, using discount rate . Use the optimality condition to nd the concentrated Bellman's equation. b) Guess that V (S ) = S . Verify that this is correct and, in doing so, determine and .

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

386

c) Determine the time value, T , at which the resource is exhausted. d) Solve the problem using an optimal control (Hamiltonian) approach and verify that the solutions are the same. 10.18. Renewable Resource Management with Adjustment Costs Consider an extension to the renewable resource problem discussed on page 371. Suppose that the harvest rate is still constrained to lie on [0; C ] but that it cannot be adjusted instantaneously. Instead assume that the rate of adjustment in the harvest rate, x, must lie on [a; b], with a < 0 < b, with the proviso that x 0 is h = 0 and x 0 is h = C . This problem can be addressed by de ning h to be a second state variable with a deterministic state transition equation:

dh = xdt: The optimal control for this problem is de ned by two regions, one in which x = a and one in which x = b. The boundary between these regions is a curve in the space [0; 1) [0; C ]. Write the PDEs that must be satis ed by the value functions in each region and the value-matching and smooth pasting conditions that must hold at the boundaries. 10.19. Optimal Sales from an Inventory Consider a situation in which an agent has an inventory of S0 units of a good in inventory, all of which must be sold within T periods. It costs k dollars per unit of inventory per period to store the good. In this problem there is a single control, the sales rate q , and two state variables, the price P and the inventory level S . The price is an exogenously given Ito process:

dP = (P; t)dt + (P; t)dz: The amount in storage evolves according to

dS = qdt: Furthermore it is assumed that both the state and the control must be nonnegative. The latter assumes that the agent cannot purchase additional amounts to replenish the inventory, so that sales are irreversible.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

387

The problem can be written as

V (S; P; t) = max Et q(S;P;t)

Z T t

e

rt (qP

kS ) dt

subject to the above constraints. What is Bellman's equation for this problem? Treat the problem as an optimal stopping problem so q = 0 when the price is low and q = 1 when the price is high. At or above the stopping boundary all inventory is sold instantaneously. State the Bellman's equation for the regions above and below the stopping boundary. State the value-matching and smooth-pasting conditions that hold at the boundary. 10.20. Learning-By-Doing with Deterministic Price Suppose in the sequential learning that the price is deterministic ( = 0) and the r Æ . In this case, once production is initiated, it is never stopped. Use this to derive an explicit expression for V (P; Q), where P P (Q). In this case, because production occurs at all times,

V (P; Q) =

Z 1

0

e

r (P

C (Q ))d;

where Pt solves the homogeneous rst order dierential equation

dPt = (r dt

Æ )P

and Z 1

0

e

r C (Q

)d

=

Z Qm Q

0

e

r C (Q

Q)d + c

Z 1 Qm Q

e

r d:

Also show that, for P < P , the value function can be written in the form f (P; P (Q))V (P (Q); Q). Combining these two results, determine the optimal activation boundary in the deterministic case. Verify that your answer satis es the Bellman equation.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

388

Appendix A Dynamic Programming and Optimal Control Theory Many economists are more familiar with optimal control theory than with dynamic programming. This appendix provides a brief discussion of the relationship between the two approaches. As stated previously, optimal control theory is not naturally applied to stochastic problems but it is used extensively in deterministic ones. The Bellman equation in the deterministic case is

V = max f (S; x) + Vt + g (S; x)VS ; x where x is evaluated at its optimal level. Suppose we totally dierentiate the marginal value function with respect to time: dVS dS = VSt + VSS = VSt + VSS g (S; x): dt dt Now apply the Envelope Theorem to the Bellman equation to determine that

VS = fS (S; x) + VtS + g (S; x)VSS + VS gS (S; x): Combining these expressions and rearranging yields dVS = VS fS VS gS : (22) dt This can be put in a more familiar form by de ning = VS . Then (22), combined with the FOC for the maximization problem and the state transition equation can be written as the following system 0 = fx (S; x) + gx (S; x)

d = fS (S; x) gS (S; x) dt and

dS = g (S; x): dt These relationships are recognizable as the Hamiltonian conditions from optimal control theory, with the costate variable representing the shadow price of the state variable (expressed in current value terms).17 17 See Kamien and Schwartz, pp. 151-152 for further discussion.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

389

The message here is that dynamic programming and optimal control theory are just two approaches to arrive at the same solution. It is important to recognize the distinction between the two approaches, however. Optimal control theory leads to three equations, two of which are ordinary dierential equations in time. Optimal control theory therefore leads to expressions for the time paths of the state, control and costate variables as functions of time: S (t), x(t) and (t). Dynamic programming leads to expressions for the control and the value function (or its derivative, the costate variable) as functions of time and the state. Thus dynamic programming leads to decision rules rather than time paths. In the stochastic case, it is precisely the decision rules that are of interest, because the future time path, even when the optimal control is used, will always be uncertain. For deterministic problems, however, DP involves solving partial dierential equations, which tend to present more challenges than ordinary dierential equations.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

390

Appendix B Deriving the Boundary Conditions for Resetting Problems It is instructive to view the resetting problem from another perspective. In a simple resetting problem an asset is replaced at a discrete set of times when S = S , at which point a reward, f (S ) is obtained. Let us de ne (S; S ) to be the (random) time until the state rst hits S , given that it is now equal to S . The rst time the state hits S a reward worth f (S )e (S;S ) (in current units of account) will be generated and the state is reset to 0. The time elapsing after a resetting until the state next hits S depends on a random variable that has the same distributional properties as (0; S ) and is independent of previous hitting times (by the Markov property). The expected discounted rewards (i.e., the value function) can be therefore be written as 1 (S;S ) X i V (S ; S ) = f (S )E e E e (0;S )

=

f (S )E e (S;S )

1 E [e

(0;S ) ]

i=0

:

To simplify the notation, let (S; S ) = E e (S;S ) ; so the value function is f (S ) (S; S ) V (S ; S ) = : 1 (0; S ) From the de nition of it is clear that (S ; S ) = 0 so (S ; S ) = 1. Hence the boundary condition that

f (S ) : 1 (0; S ) Combining this with the lower boundary condition f (S ) (0; S ) V (0; S ) = 1 (0; S ) leads to the value matching condition that V (S ; S ) =

V (S ; S ) = V (0; S ) + f (S ): Notice that value matching does not indicate anything about the optimality of the choice of S . One way to obtain an optimality condition is to set the derivative

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

391

of V (S; S ) with respect to S equal to zero. After suitable rearrangement the FOC is, for every S , @ (S; S ) (S; S ) @ (0; S ) 0 f (S ) (S; S ) + f (S ) + = 0: (23) @S 1 (0; S ) @S In order to show that this is equivalent to the smooth pasting condition we will use two properties of . First, (S ; S ) is identically equal to 1, so @ (S ; S )=@S = 0. Combined with the fact that dS = 1; dS S =S this implies d (S ; S ) @ (S ; S ) @ (S ; S ) = + =0 dS @S @S and hence that @ (S ; S ) @ (S ; S ) = : @S @S The second fact, a result of the Markov assumption, is that

(S; S + dS ) = (S; S ) (S ; S + dS ): taking limits as dS ! 0 we see that @ (S; S ) @ (S ; S ) = (S; S ) : @S @S If we evaluate (23) at S = S and rearrange, it is straightforward to see that @ (S ; S ) (S ; S ) @ (0; S ) 0 + f (S ) = f (S ) @S 1 (0; S ) @S (0; S ) @ (S ; S ) = f (S ) 1 + 1 (0; S ) @S f (S ) @ (S ; S ) = 1 (0; S ) @S f (S ) @ (S ; S ) = 1 (0; S ) @S @V (S ; S ) = @S which is the desired result.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

392

Appendix C Deterministic Bang-Bang Problems The general form for a deterministic bang-bang type problem has a reward function

f0 (S ) + f1 (S )x state dynamics

dS = [g0 (S ) + g1 (S )x]dt and control constraint

xa x xb : Suppose we use a control, not necessarily optimal, with S as a switching point, e.g., set x = xa for S < S and x = xb for S > S .18 At S = S we choose x in such a way that dS=dt = 0. Summarizing, de ne

x(S; S a ) =

8 > > >

S a

> > > :

with xa < g0 (S a )=g1 (S a ) < xb . The value function satis es the dierential equation h i 1 V (S; S a ) = f0 (S ) + f1 (S )x(S; S a ) + g0 (S ) + g1 (S )x(S; S a ) VS (S; S a ) ; (24) which, evaluated at S = S , yields

V (S a ; S a )

1 = f (S a ) 0

f1

g (S (S a ) 0

a)

g1 (S a )

:

(25)

In spite of the discontinuity of the control at S , the value function is continuous, as is readily apparent by writing it as

V (S; S a ) =

Z 1

0

e

t (f

0 (S ) + f1 (S )x(S; S a )) dt;

and noting that as S approaches S from below (above), the amount of time during which the control is set at xa (xb ) goes to 0. 18 This assumes that the state is growing when xa is used and is shrinking when xb is used. It is

a simple matter to reverse these inequalities.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

393

The continuity of V can be used to demonstrate the continuity of VS (S; S ) at S = S , and to thereby determine its value:19 f1 (S a ) a a : (26) VS (S ; S ) = g1 (S a ) So far, however, we have only considered the value function for the control S . To choose the control optimally, we must pick S to satisfy

VS a (S; S a ) = 0: For S 6= S a we can dierentiate (24) to see that h i VS a (S; S a ) = 1 f1 (S ) + g1 (S )VS (S; S a ) xS a (S; S a )

+ g1

(S )x(S; S a )V

SS a

(S; S a ):

(27)

However, except at S = S , xS (S; S ) and VSS a (S; S a ) are zero and hence we only need to set this derivative to zero at S = S . (27) is not well de ned at S = S because the derivative xS (S; S ) is unde ned at this point. Instead we use the relationship dV (S a ; S a ) = VS (S a ; S a ) + VS a (S a ; S a ): dS a Rearranging this and using (25) and (26) we get dV (S a ; S a ) a a a VS (S a ; S a ) VS (S ; S ) = a dS a ) g (S a ) f1 (S a ) d f ( S 0 0 g1 (S a ) 1 f1 (S a ) + : = dS a g1 (S a ) 19 To determine the limit from below, note that continuity of V implies that

1 lima [f0 (S ) + f1(S )xa + (g0 (S ) + g1 (S )xa ) VS (S; S a )] %S 1 = f0 (S a ) + f1 (S a )xa + (g0 (S a ) + g1 (S a )xa ) lima VS (S; S a ) S %S a a f1 (S )g0 (S ) 1 f (S a ) V (S a ; S a ): = 0 g1 (S a ) Rearranging, we see this expression implies that f1 (S a )g0 (S a ) a a a a (g0 (S ) + g1 (S )xa ) lima V (S; S ) = f1 (S )xa + S %S g1 (S a ) a f1 (S ) a a = g (S ) + g1 (S )xa : g1 (S a ) 0 The same exercise can be applied to solving for the limit from above. lima V (S; S a ) = %S

S

S

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

394

Thus the optimal switching points are found by solving for the roots of this expression. It is possible that there are multiple roots, leading to a situation in which VS may be discontinuous at a root; this root represents an unstable equilibrium at which x is unde ned.

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

395

Bibliographic Notes Arbitrage methods for solving nancial asset pricing problems originated with Black and Scholes and Merton. The literature is now vast. A good introductory level discussion in found in Hull. For a more challenging discussion, see DuÆe. The mathematical foundations for modern asset pricing theory are discussed at an introductory level in Hull and Neftci. See also Shimko. Discussions of exotic option pricing models are found in Hull and Wilmott. Goldman et al. contains the original derivation of the boundary condition for lookback options. AÆne diusion models are discussed in DuÆe and Kan, Dai and Singleton and Fackler. Introductory level treatments of stochastic control problems are available in Dixit and Dixit and Pindyck. These books contain numerous examples as well as links to other references. A more rigorous treatment in found in Fleming and Rishel. The renewable resource harvesting problem is from Pindyck, the optimal investment from Cox et al., the portfolio choice example from Merton (1969) and Merton (1971). Boundary conditions associated with stochastic processes are discussed by Feller, who devised a classi cation scheme for diusion processes with singular boundaries (see discussion by Bharucha-Reid, sec. 3.3, and Karlin and Taylor (1981), Chap. 15.). Kamien and Schwartz is a classic text on solving dynamic optimization problems in economics; its primary focus is on deterministic problems solved via calculus of variations and use of Hamiltonian methods but contains a brief treatment of dynamic programming and control of Ito processes (Chapters 20 and 21). Other useful treatments of deterministic problems are found in Dorfman and Chiang. Malliaris and Brock contains an overview of Ito processes and stochastic control, with numerous examples in economics and nance. DuÆe contains a brief introductory treatment of stochastic control, with a detailed discussion of the portfolio choice problem rst posed in Merton (1969) and Merton (1971). A standard advanced treatment of stochastic control is Fleming and Rishel. Free boundary problems are increasingly common in economics. Dixit (1991), Dixit (1993a) and Dixit and Pindyck contain useful discussions of these problems. Several of the examples are discussed in these sources. Dixit (1993b) provides a good introduction to stochastic control, with an emphasis on free boundary problems. Dumas discusses optimality conditions; see also the articles in Lund and Oksendal. Homan and Sprekels and Antonsev et al. are proceedings of conferences on free boundary problems with an emphasis on problems arising in physical sciences. The original solution to the timber harvesting problem with replanting is attributed to Martin Faustmann, who discussed it in an article published in 1849. Irving Fisher discussed the related problem with abandonment in The Theory of Interest. For further discussion see Ganey, Hershleifer. Recently, ?? discussed the

CHAPTER 10. CONTINUOUS TIME - THEORY & EXAMPLES

396

stochastic version of the problem. The entry/exit example originates with Brennan and Schwartz and McDonald and Siegel. Numerous authors have discussed renewable resource management problems; see especially Mangel. The stochastic bang-bang problem is discussed most fully in Ludwig and Ludwig and Varrah, where detailed proofs and a discussion of the multiple equilibria situation can be found. The proof in the appendix to this chapter is modeled after a similar proof in Ludwig. The learning-by-doing example is from Majd and Pindyck and is also discussed in Dixit and Pindyck.

Chapter 11 Continuous Time Models: Solution Methods In the previous chapter we saw how continuous time economic models, whether deterministic or stochastic, result in solution functions that satisfy dierential equations. Ordinary dierential equations (ODEs) arise in in nite horizon single state models or in deterministic problems solved in terms of time paths. Partial dierential equations (PDEs) arise in models with multiple state variables or in nite horizon control problems. From a numerical point of view the distinction between ODEs and PDEs is less important than the distinction between problems which can be solved in a recursive or evolutionary fashion or those that require the entire solution be computed simultaneously because the solution at one point (in time and/or space) depends on the solution everywhere else. This is the distinction between initial value problems (IVPs) and boundary value problems (BVPs) that we discussed in Sections 5.7 and 6.8.3. With an IVP, the solution is known at some point or points and the solution near these points can then be (approximately) determined. This, in turn, allows the solution at still other point to be approximated and so forth. When possible, it is usually faster to use such recursive solution techniques. Numerous methods have been developed for solving PDEs. We concentrate on a particular approach that encompasses a number of the more common methods and which builds nicely on the material already covered in this book. Speci cally, the true but unknown solution will be replaced with a convenient approximating function, the parameters of which will be determined using collocation. For initial value type problems (IVPs), this approach will be combined with a recursive algorithm. We will also discuss free boundary problems. The basic approach for such problems is to solve the model taking the free boundary as given and then use the optimality condition to identify the location of the boundary. 397

CHAPTER 11. CONTINUOUS TIME - METHODS

398

There are a number of methods for solving PDEs and stochastic control problems that we do not discuss here. These include binary and trinomial tree methods, simulation methods and methods that discretize control problems and solve the related discrete problem. Although all of these methods have their place, we feel that providing a general framework that works to solve a wide variety of problems and builds on general methods developed in previous chapters is of more value than an encyclopedic account of existing approaches. Much of what is discussed here should look and feel familiar to readers that have persevered up to this point.1 We do, however, include some references to other approaches in the bibliographical notes at the end of the chapter.

11.1 Solving Arbitrage-based Valuation Problems In the previous chapter it was shown that nancial assets often satisfy an arbitrage condition in the form of the PDE r(S )V = Æ (S ) + Vt + VSS (S ) + 21 trace( (S ) (S )>VSS ): The speci c asset depends on the boundary conditions. For an asset that has a single payout at time T , the only boundary condition is of the form V (S; T ) = R(S ) and, as there are no dividends, Æ = 0. For zero-coupon default-free bonds the boundary condition is R(S ) = 1. For futures, European call options and European put options written on an underlying asset with price p = P (S ), the boundary conditions are, respectively, R(S ) = P (S ) and R(S ) = max(0; P (S ) K ) and R(S ) = max(0; K P (S )), where K is the option's strike price. Asset pricing problems of this kind are more easily expressed in terms of time-tomaturity rather than calendar time; let = T t. We will work with V (S; ) rather than V (S; t), necessitating a change of sign of the time derivative: V = Vt . The problem, of course, is that the functional form of V is unknown. Suppose, however, it is approximated with a function of the form V (S; ) (S )c( ), where is a suitable n-dimensional family of approximating functions and c( ) is an n-vector of time varying coeÆcients. When the state variable is one-dimensional, the arbitrage condition can be used to form a residual equation of the form2 h

i

(S )c0 ( ) (S )0(S ) + 12 2 (S )00 (S ) r(S )(S ) c( ) = (S )c( ):

(1)

1 It would be useful to at least be familiar with the material in Chapter 6. 2 For multi-dimensional states the principle is the same but the implementation is a bit messier.

We discuss this in Appendix 11.A.

CHAPTER 11. CONTINUOUS TIME - METHODS

399

A collocation approach to determining the c( ) is to select a set of n values for S , si , and to solve the residual equation with equality at these values. The residual function can then be written in the form c0 ( ) = Bc( ); where and B are both n n matrices. This is a rst order system of ordinary dierential equations in , with the known solution c( ) = exp( 1 B )c0 ; where c0 satis es the boundary condition R(S ) evaluated at the n values of the si (note: the exponential is a matrix exponential which can be computed using the Matlab function expm). Before illustrating this approach, a few additional comments are in order. It may be desirable to impose additional boundary conditions. This would require rede ning and B using fewer than n nodes and to concatenate to these any additional equations needed to impose the boundary conditions. Generally, this is not needed if the behavior at the boundaries is regular enough. The issue becomes more critical when free boundary problems are encountered. Another issue is especially important in option pricing problems, for which the terminal boundary is not smooth but rather has a kink at the strike price K . This suggests that the use of a polynomial approximation may not be appropriate. Instead a cubic spline, possibly with extra nodes at S = K , or a piece-wise linear approximation with nite dierence derivatives may be in order.

Example: Pricing Bonds

The CIR (Cox-Ingersoll-Ross) bond pricing model assumes that the risk-neutral process for the short interest rate is given by

p

dr = ( r)dt + rdz: Expressing the value of a bond in terms of time-to-maturity ( ), a bond paying 1 unit of account at maturity, has value V (r; ) that solves

V = ( r)Vr + 21 2 rVrr rV; with initial condition V (r; 0) = 1. To solve this model, rst choose a family of approximating functions with basis (r) and n collocation nodes, ri . Letting the basis functions and their rst two derivatives at these points be de ned as the n n matrices 0 , 1 and 2 , a system of collocation equations is given by 0 c0 ( ) = [( r)1 + 21 2 r2 r0 ]c( ) = Bc( ):

CHAPTER 11. CONTINUOUS TIME - METHODS

400

The term r0 is an abuse of notation; it indicates multiplying the n 1 vector r by an n n matrix 0 . Such a term is more properly written as diag(r)0 and can be obtained in Matlab using element-by-element multiplication as r(:,ones(n,1)).*Phi0

(see code below). The same comments also apply to the rst and second order terms. The following function solves the CIR bond pricing problem. function c=cirbond(fspace,tau,kappa,alpha,sigma) % Define nodes and basis r=funnode(fspace); Phi0=funbas(fspace,r,0); Phi1=funbas(fspace,r,1); Phi2=funbas(fspace,r,2); % Evaluate parameters m=kappa*(alpha-r); s=0.5*sigma.^2*r; % Define and solve the linear differential equation in the coefficients u=ones(size(r,1),1); B=m(:,u).*Phi1+s(:,u).*Phi2-r(:,u).*Phi0; B=Phi0\B; c0=Phi0\u; c=expm(full(tau*B))*c0;

The function's input arguments include a function de nition structure fspace indicating the family of approximating functions desired, the time to maturity, , and the model parameters, , and . The function returns the coeÆcient vector c . A script le, demfin01.m, demonstrates the use of the procedure. It uses a Chebyshev polynomial approximation of degree n = 20 on the interval [0; 2]. The solution function for a 30-year bond with parameter values = 0:1, = 0:05 and = 0:1 is plotted in Figure 11.1. Two points are in order concerning the procedure. First, Matlab's matrix exponential function expm requires that its argument be a full rather than a sparse matrix. Some basis functions (e.g., spline and piecewise linear) are stored as sparse matrices, so this ensures that the code will work regardless of the family of functions used. Second, the procedure uses the standard nodes for a given approximating family of functions. This typically requires upper and lower bounds to be speci ed. For the process used in the bond pricing example, a natural lower bound of 0 can be used. The upper bound is trickier, because the natural upper bound is 1. Knowledge of the underlying nature of the problem, however, should suggest an upper bound for the rate of interest. We have used 2, which should more than suÆce for countries that are not experiencing hyper-in ation.

CHAPTER 11. CONTINUOUS TIME - METHODS

401

Zero−Coupon Bond Price 0.45

0.4

0.35

V(r)

0.3

0.25

0.2

0.15

0.1

0.05

0

0.05

0.1

0.15

0.2

0.25

r

Figure 11.1 More generally, one should use an upper bound that ensures the result is not sensitive to the choice in regions of the state space that are important. In practice, this may necessitate some experimentation. A useful rule of thumb is that the computed value of V (S ) is not sensitive to the choice of S if the probability that ST = S, given St = S , is negligible. For in nite horizon problems with steady state probability distributions, one would like the steady state probability of S to be negligible. For this example, a known solution to the bond pricing problem exists (see exercise 10.2 on p. 376). The closed form solution can be used to compute the approximation error function, which is shown in Figure 11.2. The example uses a Chebyshev polynomial basis of degree n = 20; it is evident that this is more than suÆcient to obtain a high degree of accuracy.

11.1.1 Extensions and Re nements The approach to solving the asset pricing problems just described replaces the original arbitrage condition with one of the form c0 ( ) = Bc( );

with c(0) = V0 . The known solution c( ) = exp( 1 B ) 1 V0 can be put in recursive form c( + ) = exp( 1 B )c( ) = Ac( ):

CHAPTER 11. CONTINUOUS TIME - METHODS Zero−Coupon Bond Approximation Errors

−10

3

402

x 10

2

1

0

−1

−2

−3

−4

−5

0

0.05

0.1

0.15

0.2

0.25

r

Figure 11.2 The n n matrix A need only be computed once and the recursive relationship may then be used to compute solution values for a whole grid of evenly spaced values of . In the approach taken above, the existence of a known solution to the collocation dierential equation is due to the linearity of the arbitrage condition in V and its partial derivatives. If linearity does not hold, we will still be able to express the system in the form c0 (t) = B (c(t)), which can be solved using any convenient initial value solver such as the Runge-Kutta algorithm described in Section 5.7 or any of the suite of Matlab ODE solvers. This approach has been called the extended method of lines. The name comes from a technique called the method of lines, which treats = In and uses nite dierence approximations for the rst and second derivatives in S . The values contained in the c(t) vector are then simply the n values of V (si ; t). The extended method of lines simply extends this approach by allowing for arbitrary basis functions. We should point out that the system of ODEs in the extended method of lines is often \sti". This is a term that is diÆcult to de ne precisely and a full discussion is beyond the scope of this book. SuÆce it to say, a sti ODE is one that operates on very dierent time scales. The practical import of this is that ordinary evolutionary solvers such as Runge-Kutta and its re nements must take very small time steps to solve sti problems. Fortunately, so-called implicit methods for solving sti problems

CHAPTER 11. CONTINUOUS TIME - METHODS

403

do exist. The Matlab ODE suite provides two sti solvers, ode15s and ode23s. It is also possible to use nite dierence approximations for ; indeed, this is perhaps the most common approach to solving PDEs for nancial assets. Expressed in terms of time-to-maturity ( ), a rst order approximation with a forward dierence (in ) transforms (1) to

c( + ) c( ) = (S )c( ); or, equivalently, (S )

(S )c( + ) = [(S ) + (S )]c( ): Expressing this in terms of basis matrices evaluated at n values of S leads to c( + ) = [In + 1 B ]c( ): This provides an evolutionary rule for updating c( ), given the initial values c(0). [In + 1 B ] is a rst order Taylor approximation (in ) of exp( 1 B ). Hence the rst order dierencing approach leads to errors of O(2 ). A backwards (in ) dierencing scheme can also be used

(S )

c( ) c(

)

= (S )c( );

leading to

c(

) = [In

1 B ]c( )

or

c( + ) = [In 1 B ] 1 c( ): [In 1 B ] 1 is also a rst order Taylor approximation (in ) of exp( 1 B ) so this method also has errors of O(2 ). Although it may seem like the forward and backwards approaches are essentially the same, there are two signi cant dierences. First, the backwards approach de nes c( ) implicitly and the update requires a linear solve using the matrix [In 1 B ]. The forward approach is explicit and requires no linear solve. This point is relatively unimportant when the coeÆcients of the dierential equation are constant in because the inversion would need to be carried out only once. The point becomes more signi cant when the coeÆcients are time varying. As we shall see, this can happen even when the state process has constant (in time) coeÆcients, especially in free boundary problems.

CHAPTER 11. CONTINUOUS TIME - METHODS

404

The need for a linear solve would seem to make the backward (implicit) approach less desirable. It is possible, however, that the explicit forward approach is unstable. Both approaches replace the dierential system of equations with a system of dierence equations of the form x + = Ax : It is well known that such a system is explosive if any of the eigenvalues of A are greater than 1 in absolute value. In applications of the kind found in nancial applications, the matrix A = [In + 1 B ] can be assured of having small eigenvalues only by making small enough. On the other hand, the implicit method leads to a dierence equation for which A = [In 1 B ] 1 , which can be shown to be stable for any . Practically speaking, this means that the explicit may not be faster than the implicit method and may produce garbage if is not chosen properly. If the matrix A is explosive, small errors in the approximation will be magni ed as the recursion progresses, causing the computed solution to bear no resemblance to the the true solution.

A Matlab Asset Pricing Function: FINSOLVE Due to the common structure of the arbitrage pricing equation across a large class of nancial assets, it is possible to write general procedures for asset pricing. Such a procedure, finsolve, for solving an arbitrage condition for an asset that pays no dividends is shown in below. The function requires ve inputs, model, fspace, alg, snodes and N. The rst input, model, is a structure variable with the following elds: func the name of the problem de nition le T the time to maturity of the asset params a cell array of additional parameters to be passed to model.func A template for the function de nition le is: out1=func(flag,S,t,additional parameters); switch flag case 'rho' out1 = instantaneous risk-free interest rate case 'mu' out1 = drift on the state process case 'sigma' out1 = volatility on the state process case 'V0' out1 = exercise value of the asset end

CHAPTER 11. CONTINUOUS TIME - METHODS

405

The function uses the modi ed method of lines by default if alg is unspeci ed but explicit (forward) or implicit (backward) nite dierences can also be used to represent the derivative in by specifying the alg argument to be either 'implicit' or 'explicit' (the default is 'lines'). In addition, a method known as the CrankNicholson method, which averages the implicit and explicit methods, can be obtained by specifying 'CN'. function [c,V,A]=finsolve(model,fspace,alg,s,N) if ~exist('alg','var') | isempty(alg), alg='lines'; end if ~exist('N','var') | isempty(N), N=1; end probfile=model.func; T=model.T; n=prod(fspace.n); % Compute collocation matrix mu=feval(probfile,'mu',s,[],model.params{:}); sigma=feval(probfile,'sigma',S,[],model.params{:}); rho=feval(probfile,'rho',S,[],model.params{:}); V0=feval(probfile,'V0',S,[],model.params{:}); n=fspace.n; Phi0=funbas(fspace,s,0); % compute basis matrices Phi1=funbas(fspace,s,1); Phi2=funbas(fspace,s,2); v=0.5*sigma.*sigma; u=ones(n,1); B=mu(:,u).*Phi1+v(:,u).*Phi2-rho(:,u).*Phi0; B=funfitxy(fspace,Phi0,B); c0=funfitxy(fspace,Phi0,V0); Delta=T/N; switch method case 'lines' A=expm(full(Delta*B)); case 'explicit' A=eye(n)+Delta*B; case 'implicit' A=inv(eye(n)-Delta*B); case 'CN'

CHAPTER 11. CONTINUOUS TIME - METHODS

406

A=(inv(eye(n)-Delta*B) + eye(n)+Delta*B)/2; otherwise error('Method option is invalid') end c=zeros(n,N+1); c(:,1)=c0; for i=2:N+1 c(:,i)=A*c(:,i-1); end

The next section uses this function to solve the Black-Scholes option pricing model (the Matlab le demfin01 optionally uses finsolve to solve the CIR bond pricing example).

Example: Black-Scholes Option Pricing Formula

In Section 10.1, the Black-Scholes option pricing formula was introduced. The assumption underlying this formula is that the price of a dividend protected stock has risk-neutral dynamics given by

dS = rSdt + Sdz: The arbitrage condition is V = rSVS + 12 2 S 2 VSS rV with the initial condition V (S; 0) = max(S K; 0). A script le using the finsolve function is given below (see demfin02) . The family of piece-wise linear functions with nite dierence approximations for the derivatives (with pre x lin) is used. 50 evenly spaced nodal values on [0; 2K ] are used, along with 75 time steps using the implicit (backward in ) method. Notice that the function finsolve returns an n N + 1 matrix of coeÆcients; the rst column contains coeÆcients that approximate the terminal value. If only the values for timeto-maturity T are desired, all but the last column of the output can be discarded (hence the c=c(:,end); line). The approximation can be evaluated at arbitrary values of S using funeval(c,fspace,S). The delta and gamma of the option can also be evaluated using funeval. % Define parameters r=.05; delta=0; sigma=0.2; K=1; T=1; put=0;

CHAPTER 11. CONTINUOUS TIME - METHODS

407

clear model model.func='pfin02'; model.T=T; model.params={r,delta,sigma,K,put}; n=50; fspace=fundefn('lin',n,log(K/3),log(3*K)); s=funnode(fspace); % Call solution algorithm c=finsolve(model,fspace,'implicit',s,75); c=c(:,end);

The problem de nition le for this example follows: function out1=pfin02(flag,S,t,r,delta,sigma,K,put); n=size(S,1); switch flag case 'rho' out1=r+zeros(n,1); case 'mu' out1= (r-delta-0.5*sigma.^2); case 'sigma' out1=sigma; case 'V0' if put out1=max(0,K-exp(S)); else out1=max(0,exp(S)-K); end end

As a closed form solution exists for this problem, we can plot the approximation errors produced the method (the procedure BlackSch is available in the CompEcon toolbox). These are shown in Figure 11.3. The maximum absolute error is 5:44 10 4. It is simple to experiment with the alternate methods by changing the alg argument to the finsolve function. The family of approximating functions can also be changed easily by changing the input to the fundef function. The approximation errors in Table 11.1 were obtained in this manner. The approximation errors for all of these methods are roughly equivalent, with a slight preference for the cubic spline. Note, however, that the explicit approach

CHAPTER 11. CONTINUOUS TIME - METHODS

408

Table 11.1: Option Pricing Approximation Errors Method Function Family Lines Implicit Explicit Piecewise-linear 4.85 5.44 5.31 Cubic Splines 2.89 2.31 3.20 Maximum absolute errors on [0; 2K ] times 10 4 . Explicit cubic spline uses 250 time steps; other methods use 50 steps. Call Option Approximation Errors

−3

2

x 10

1.5

1

0.5

0

−0.5

−1 −1.5

−1

−0.5

0

0.5

1

1.5

S

Figure 11.3 using the cubic spline basis is explosive with under 200 time steps and the table gives approximation errors using 250 time steps. It should also be noted that a polynomial approximation does a very poor job in this problem due to its inability to adequately represent the initial condition, which has a discontinuity at K in its rst derivative, and, more generally, because of the high degree of curvature near S = K .

11.2 Solving Stochastic Control Problems In the previous chapter we saw that for problems of the form

V (S ) = max x(S )

Z 1 t

e

f (S; x)d;

s.t. dS = g (S; x)dt + (S )dz;

CHAPTER 11. CONTINUOUS TIME - METHODS

409

Bellman's equation takes the form

V (S ) = max f (S; x) + g (S; x)V 0 (S ) + 21 2 (S )V 00 (S ); x(S ) possibly subject to boundary conditions. When the functional form of the solution is unknown, the basic strategy for solving such problems will be essentially the same as in the discrete time case. The value function will be approximated using V (S ) (S )c, where c is an n-vector of coef cients. For in nite horizon problems, c can be found using either a value function and a policy function iteration. Given a guess of the value of c, the optimal value of the control can be solved (in principle) for a set of nodal values of S . (si )c = max f (si ; xi ) + g (si ; xi )0 (si )c + 12 2 (si )00 (si )c: xi This leads to the rst order conditions

fx (si ; xi ) + gx (si ; xi )0 (si )c = 0; which may admit a closed form solution, xi = x (si ; c). If there are no relevant boundary conditions, n values of S are used to form the n n basis matrices 0 , 1 and 2 . The three vectors de ned by fi = f (si ; xi ), mi = g (si; xi ) and vi = 0:5 2 (si ) are also computed. A function iteration algorithm can then be expressed as 1 1 0 f + [m1 + v 2 ] c c (as noted earlier, terms like m1 are an abuse of notation and signify diag(m)1 ). Policy function iteration uses c = [0 m1 v 2 ] 1 f: If there are relevant boundary conditions, the number of nodal values of S can be less than n by the number of additional conditions. Generally boundary conditions are linear in the value function and its derivatives and hence are linear in the approximation coeÆcients. These conditions can, therefore, be appended to the collocation conditions from the Bellman's Equation and c can be updated in essentially the same manner. This approach will be used extensively for solving free boundary in the next section. An alternative when one can solve explicitly for the optimal control (in terms of the value function) is to substitute the control out of the Bellman Equation. This results in (generally) a nonlinear dierential equation in S , which can be solved directly

CHAPTER 11. CONTINUOUS TIME - METHODS

410

using collocation. If the dierential equation is nonlinear, however, the collocation equations are also nonlinear and hence must be solved using a root nding algorithm. A general solver routine for stochastic control problems with continuous control variables can be developed along the same lines as the solver for the discrete time case (discussed beginning on p. ??). The method starts with an initial guess of the coeÆcients of an approximation of the value function. It then computes the optimal control given this guess. The value function coeÆcients are then updated using either policy or function iteration. This iterative process occurs until a convergence criterion is met. There are, in fact, some distinct computational advantages to using continuous time models because of three related facts. First, the Bellman equation is not stochastic; there is no need to perform numerical integration to compute an expectation. Second, to implement a Newton solution to the optimization problem, the rst order condition, fx (s; x) + Vs (s)gx(s; x) = 0, and its derivative need only be evaluated at nodal values of the state. Third, the rst order condition is relatively simple and can often be solved explicitly in the form x = x(s; Vs ), thereby eliminating entirely the need to perform use numerical optimization methods to determine the conditional optimal control. Even if no explicit solution is available, the computation of second derivative of the conditional value function is easier.3 In the discrete time case

vxx = fxx + Vsgxx + gx>Vss gx: In the continuous time case, the last of these terms does not appear because the value of the state at which V is evaluated is independent of x. A general solver for continuous time stochastic control problems is provided by scsolve. This solver requires that the user specify a model structure and problem de nition le as well as a family of approximating a functions, a set of collocation nodes and initial values for the value function at the collocation nodes. Optionally, an initial value for the optimal control may be passed. The model structure should 3 If the variance term is a function of x, the computation of the rst and second derivatives

must account for this.

vx = fx + Vs gx + vec(Vss )> x

and vxx = fxx + Vs gxx + x > (Id Vss )x + vec(Vss )> xx :

Here x is d2 p and x is d2 p p. The matrix product vec(Vss )> xx multiplies a 1 d2 matrix by a d2 p p array and returns a p p array. In Matlab this type of matrix multiplication is accomplished by reshape(A*reshape(B,d*d,p*p),p,p).

CHAPTER 11. CONTINUOUS TIME - METHODS

411

contain the following elds: func the name of the problem de nition le params a cell array of additional parameters to be passed to model.func For many continuous time problems, a solution to the rst order conditions (as a function of S and VS ) can be obtained in closed form. If this is the case, the problem de nition le should return these values when a flag value of x is passed. A template for the problem de nition le is: function out1=probdef(flag,s,x,Vs,additional parameters) switch flag case 'x' out1 = optimal value of the control case 'f' out1 = reward function case 'g' out1 = drift term in state transition equation case 'sigma' out1 = diffusion term in state transition equation case 'rho' out1 = discount rate end

A simpli ed (one-dimensional state and action) version of the solver is provided below. This version assumes that the optimal control can be explicitly calculated. % SCSOLVE1 Solves stochastic control problems % Simplified to handle the single state, single control case function cv=scsolve1(model,fspace,snodes,v0); maxiters=100; tol=sqrt(eps); % Compute part of collocation matrix that does not depend on x u=ones(1,fspace.n); rho=feval(scfile,'rho',s,[],[],varargin{:}); Phi0=funbas(fspace,s,0); B=rho(:,u).*Phi0; sigma=feval(scfile,'sigma',s,[],[],varargin{:}); sigma=0.5*sigma.*sigma; B=B-sigma(:,u).*funbas(fspace,s,2); % The part of the collocation matrix that does depend on x Phi1=funbas(fspace,s,1);

CHAPTER 11. CONTINUOUS TIME - METHODS

412

% Initialize coefficient and control vectors if isempty(v0) c=zeros(fspace.n,1); v0=zeros(fspace.n,1); else c=Phi0\v0; end v=v0; % Policy function iteration loop for i=1:maxiters Vs=Phi1*c; x=feval(scfile,'x',s,[],Vs,varargin{:}); f=feval(scfile,'f',s,x,[],varargin{:}); g=feval(scfile,'g',s,x,[],varargin{:}); c=(B-g(:,u).*Phi1)\f; v0=v; v=Phi0*c; e=max(abs(v-v0)); if e=maxiters, % print warning message disp(['Algorithm did not converge. Maximum error: ' num2str(e)]); end

If no explicit solution for the optimal control exists, the problem de nition le must return derivative information that can be used to numerically solve for the optimal control. In this case the a template for the problem de nition le is: function [out1,out2,out3]=probdef(flag,s,x,Vs,additional parameters) switch flag case 'f' out1 = reward function out2 = derivative of the reward function with respect to x out3 = second derivative of the reward function with respect to x case 'g' out1 = drift term in state transition equation out2 = derivative of the drift function with respect to x out3 = second derivative of the drift function with respect to x case 'sigma' out1 = diffusion term in state transition equation case 'rho'

CHAPTER 11. CONTINUOUS TIME - METHODS

413

out1 = discount rate end

Example: Renewable Resource Management

The problem of optimally managing a renewable resource was discussed beginning on page 345. There are a total of 9 parameters in the model, , , K , b, , c, , and . The problem de nition le for this example is provided below. It is complicated by the need to handle separately the cases in which = 1 or = 0 in order to avoid division by 0. out1=psc01(flag,s,x,Vs,alpha,beta,K,b,eta,C,gamma,sigma,rho) switch flag case 'x' Cost=C*s.^(-gamma); out1=b*(Cost+Vs).^(-eta); case 'f' Cost=C*s.^(-gamma); if eta~=1 % handle demand elasticity 1 factor1=1-1/eta; % case separately to avoid factor0=b.^(1/eta)/factor1; % division by 0; see iteration loop out1=factor0*x.^factor1-Cost.*x; else % demand elasticity = 1 out1=b*log(x)-Cost.*x; end case 'g' if beta~=0 % need to handle beta=0 Growth=alpha/beta*s.*(1-(s/K).^beta); % case separately else % to avoid division by 0 Growth=alpha*s.*log(K./s); end out1=Growth-x; case 'sigma' out1=sigma*s; case 'rho' out1=rho+zeros(size(s,1),1); end

Notice that an explicit expression for the optimal control is used so there is no need to provide derivative information.

CHAPTER 11. CONTINUOUS TIME - METHODS

414

A script le using scsolve to obtain a solution is provided below. The parameter values used are = 0:5, = 1, K = 1, b = 1, = 0:5, c = 0:1, = 2, = 0:05, and = 0:1. The natural state space is S 2 [0; 1): As discussed below, an approximation is feasible only over a bounded interval. The demonstration uses a piecewise linear approximation with 75 breakpoints, evenly spaced on the interval [0:2; 1:2]. % Set parameter values beta=1; eta=0.5; gam=2; alpha=0.5; K=1; b=1; C=5; rho=0.05; sigma=0.1; beta=1; eta=0.5; gam=2; % Define model variable model.func='psc01'; model.params={alpha,beta,K,b,eta,C,gam,sigma,rho}; % Define the approximating family and nodes lo=0.2; hi=1.2; n=75; fspace=fundefn('plin',n,lo,hi); s=funnode(fspace); % Call the stochastic control solver cv=scsolve(model,fspace,s);

An explicit solution exists for the parameter values used in the demonstration, as displayed in Table 10.1 on page 347. The demonstration le plots the relative error functions over the range of approximation for the marginal value function and optimal control (i.e., 1 V^ =V and 1 x^=x). The resulting plot is displayed in Figure 11.4. It can be seen that the errors in both functions are quite small, except at the upper end of the range of approximation. As with all problems involving an unbounded state space, a range of approximation must be selected. For in nite horizon problems, the general rule of thumb is that the range should include events that the stationary (long-run) distribution places a non-negligible probability of occurrence. In this case, there is little probability that the resource stock, optimally harvested, will ever be close to the biological carrying capacity of K . It is also never optimal to let the stock get too small.4 The renewable resource problem has a natural lower bound on S of 0. It turns out, however, that 0 is a poor choice for the lower bound of the approximation because the value function goes to 1 and the marginal value function to 1 as S ! 0. Such behavior is extremely hard to approximate with splines or polynomials. Inclusion 4 For the parameters values used in the example, the long run distribution has a known closed

form. It can be shown that the probability of values of S less that 0.2 or greater than 0.8 are eectively 0.

CHAPTER 11. CONTINUOUS TIME - METHODS Renewable Resource Approximation Errors

−3

6

415

x 10

Marginal Value Function Optimal Control (x100) 4

2

0

−2

−4

−6

−8

−10

−12

−14 0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

1.1

1.2

S

Figure 11.4 of basis functions that exhibit such behavior is possible but requires more work. It is also unnecessary, because the approximation works well with a smaller range of approximation. In practice, of course, we may not know the stationary distribution or how large the errors are. There are several methods to address whether the approximation choices are good ones. First, check whether the approximation provides reasonable results. Second, check the residual function at inter-nodal values of S . Third, check whether increasing the range of approximation changes the value of the approximating function in a signi cant manner. Before leaving this example, a technique for improving the accuracy of a solution will be demonstrated. For a number of reasons, a piecewise linear approximation with nite dierence derivatives is a fairly robust choice of approximating functions. It is a shape preserving choice, in the sense that an approximation to a monotonic and/or convex function will also be monotonic and/or convex. This makes it far more likely that the iterations will converge from arbitrary starting values. The piecewise linear approximation, however, requires a large number of collocation nodes to obtain accurate approximations. It may therefore be useful to obtain a rough solution with a piecewise linear approximation and use that approximation as a starting point for a second, more accurate approximation. The following code fragment could be appended to the script le on page 414 to obtain a polynomial approximation on the same interval.

CHAPTER 11. CONTINUOUS TIME - METHODS

416

s2=linspace(lo,hi,101)'; fspace2=fundefn('cheb',35,lo,hi); cv2=scsolve(model,fspace,s2,funeval(cv,fspace,s2));

This code fragment de nes a new family of approximating functions and uses the previously computed solution to provide starting values. The polynomial approximation with 35 collocation nodes produces an approximation with a relative error of under 10 10 except at the upper end of the range of approximation (above 0.9).

Example: Optimal Growth

The neoclassical optimal growth model, discussed beginning on page 353, solves Z 1

max e t U (C )dt; C (t) 0 subject to the state transition function K 0 = q (K ) C . This problem could be solved using the scsolve function; we leave this as an exercise (page 452). The optimal control (C ) satis es the Euler condition

U 0 (C ) 0 (q (K ) ) = (q (K ) C )C 0 (K ); U 00 (C ) a rst order dierential equation. The solution C (K ) passes through the steady state point (K ; C ) which simultaneously solves dK=dt = 0 and the Euler condition:

q 0 (K ) = C = q (K ): Our solution approach requires that three functions be de ned. The rst is q (K ), the second is s(K ) = q 0 (K ) , which measures the excess marginal productivity over the discount rate and the third is the absolute risk aversion function, r(C ) = U 00 (C )=U 0 (C ). The steady state capital stock solves s(K ) = 0. The optimal control can be approximated on the interval [a; b] with a function (K )c. The Euler condition is used to form the residual function

s(K ) : r((K )c) This equation can be solved at a set of nodal values, ki , simultaneously with the boundary condition that (K )c C = 0. 0 e(K ) = q (K )

(K )c 0 (K )c

CHAPTER 11. CONTINUOUS TIME - METHODS

417

To make the problem concrete, de ne

q (K ) = ln(K + 1) ÆK; implying that

s(K ) = q 0 (K ) =

K +1

Æ

:

The steady state capital stock is therefore K = 1. As the units in which K Æ+ is denominated are arbitrary, it is convenient to set K = 1 by de ning = 2(Æ + ). Furthermore, let the utility function be of the constant relative risk aversion (CRRA) form, U (C ) = (C 1 1)=(1 ), which implies that r(C ) = =C: The relative risk aversion parameter, , takes on values between 0 and 1, with 0 implying risk neutrality and 1 resulting in logarithmic utility. Speci c parameter values are = 0:05, Æ = 0:02, = 2( + Æ ) = 0:14 and = 0:5. A script le to solve the problem is displayed in Code Box 1. The code uses \inline" functions to de ne q (K ), s(K ) and r(C ) at the beginning of the le. These three functions can be thought of as the parameters de ning the model and can be changed without altering the rest of the code to explore the implications of alternative parameters. The next step is to determine the steady state values. We pass s(K ) to root nding algorithm broyden to obtain K . This is a bit gratuitous in this example given that we already know that K = 1, but it illustrates how K can be found if s(K ) = 0 cannot be solved directly. Given the model parameters, the steady state consumption rate is C = 0:077 or 7:7% of the capital stock. The next step is to set up the collocation problem. We use a Chebyshev polynomial approximation of degree n = 20. To impose the boundary condition, it is necessary, however, to solve the Euler equation at n 1 nodes and impose the additional restriction that (K )c = C . In practice, it turns out that it is useful to impose the additional restriction that no consumption can occur when the capital stock is 0: C (0) = 0. Thus, we use n 2 collocation nodes on the interval [0; 2K ] for the Euler equation, plus the two boundary conditions. The Euler equation nodes used are simply the Chebyshev nodes for degree n 2. These n 2 nodes are then appended to 0 and K and the basis matrices for the function and its derivative are computed (0 and 1 ). An initial coeÆcient vector is t to the straight line through (0; 0) and (K ; C ) using the funfitxy procedure. To solve the collocation problem, we will need to pass a residual function to a root nding algorithm. The residual function is de ned in a separate le shown in Code Box 2. The residual le takes values of c, the approximation coeÆcient vector, and returns the collocation residual vector. A number of precomputed values are

CHAPTER 11. CONTINUOUS TIME - METHODS Code Box 11.1: Neoclassical Growth Model % DEMSC03 Neo-classical Optimal Growth Problem (cont. time) % Define Problem Parameters % q(K)=alpha*log(K+1) - delta*K q=inline('0.14*log(K+1) - 0.02*K','K'); % s(K)=q'(K)-rho s=inline('0.14./(K+1) - 0.02 - 0.05','K'); % r(C)=-U''(C)/U'(C) r=inline('0.5./C','C'); % Find steady state solution Kstar=broyden(s,1); Cstar=q(Kstar); disp('Steady State Capital and Consumption') disp([Kstar Cstar]) % Define nodes and basis matrices n=20; a=0; b=2*Kstar; cdef=fundef({'cheb',n-2,a,b}); K=[0;Kstar;funnode(cdef)]; cdef=fundef({'cheb',n,a,b}); Phi0=funbas(cdef,K,0); Phi1=funbas(cdef,K,1); svals=s(K); qvals=q(K); % Get initial value of C, linear in K k=linspace(cdef.a,cdef.b,301)'; c=funfitxy(cdef,k,Cstar/Kstar*k); c=broyden('fsc03',c,[],r,svals,qvals,Phi0,Phi1,Cstar); % Plot optimal control function figure(1) C=funeval(c,cdef,k); C(1)=0; plot(k,C,Kstar,Cstar,'*') title('Optimal Consumption Rule') xlabel('K') ylabel('C') % Plot residual function figure(2) dC=funeval(c,cdef,k,1); warning off % avoid divide by zero warning e=(q(k)-C).*dC-s(k)./r(C); warning on plot(k,e) title('Growth Model Residual Function') xlabel('K') prtfigs(mfilename)

418

CHAPTER 11. CONTINUOUS TIME - METHODS

419

passed to this function as auxiliary parameters. These include the basis matrices, 0 and 1 , the steady state control, C , and the risk aversion function r(C ). The values of q (K ) and s(K ) are also needed to compute the residual function. Unlike the values of r(C ), however, these do not change with c, so they can be precomputed and passed as vectors rather than \inline" functions. The residual function rst computes the residuals for the Euler equation and then alters the rst two values to impose the boundary conditions at K = 0 and K = K .

Code Box 11.2: Residual Function for Neoclassical Growth Model % FSC03 Residual function for neoclassical optimal growth problem % See DEMSC03 for usage function e=fsc03(c,r,svals,qvals,Phi0,Phi1,Cstar) C=Phi0*c; dC=Phi1*c; warning off e=(qvals-C).*dC-svals./feval(r,C); warning on e(1)=C(1); e(2)=C(2)-Cstar;

After using broyden to nd the coeÆcient vector for the optimal consumption function, the demonstration le then produces a plot of this function, which is shown in Figure 11.5. The steady state equilibrium point (K ; C ) is marked with a \*". The demonstration code also plots the residual function de ned by the Euler equation. This provides an estimate of the error of the approximation. As seen in Figure 11.6 the residual function is relatively small, even with a degree 20 approximation.

11.3 Free Boundary Problems Many of the problems discussed in the previous chapter involved free boundaries which represent endogenously determined state values at which some action is taken. In their most simple form, with a single state variable in an in nite horizon situation, these problems involve solving a second order linear dierential equation of the form (S )V (S ) = f (S ) + (S )V 0 (S ) + 12 2 (S )V 00 (S ); (2) where this equation holds on some interval [a; b]. The usual boundary value problem takes both a and b as known and requires boundary conditions such as V (a) = ga and V (b) = gb to be met, where ga and gb are known values. As discussed in Section 6.8.3

CHAPTER 11. CONTINUOUS TIME - METHODS

420

Optimal Consumption Rule 0.2

0.18

0.16

0.14

C

0.12

0.1

0.08

0.06

0.04

0.02

0

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

1.6

1.8

2

K

Figure 11.5 Growth Model Residual Function

−4

1

x 10

0.8

0.6

0.4

0.2

0

−0.2

−0.4

−0.6

−0.8

−1

0

0.2

0.4

0.6

0.8

1

1.2

K

Figure 11.6

1.4

CHAPTER 11. CONTINUOUS TIME - METHODS

421

(page 164), one can approximate the solution using a function parameterized by an n-vector c, V (S ) (S )c, with c is chosen so that (S )c satis es (2) at n 2 points and satis es the boundary conditions. This yields n equations in the n unknown parameters. In the free boundary problem one or both of the boundary locations a and b are unknown and must be determined by satisfying some additional conditions. Suppose, for example that the location of the upper boundary, b, is unknown but is known to satisfy V 0 (b) = hb , where hb is a known constant. Thus there are three boundary conditions and one additional parameter, b, implying that one must solve n + 1 equation in n + 1 unknowns. If both boundaries are free, with V 0 (a) = ha , the problem becomes one with n + 2 equations and n + 2 parameters. A general strategy treats the solution interval [a; b] as known, nds an approximate solution on this interval using the dierential equations along with V (a) = ga and V (b) = gb . This allows the residual functions V 0 (a) ha and V 0 (b) hb to be de ned. These are passed to a root nding algorithm to determine the location of the free boundaries. A problem with this method, however, is that the approximating functions we use typically de ne the function in terms of its boundaries. Here, however, the interval on which the approximating function is to be de ned is unknown. Fortunately, this problem is easily addressed using a change in variable. To illustrate, consider rst the case in which b is unknown and, for simplicity, a = 0. De ne

y = S=b; so the dierential equation is de ned on y 2 [0; 1]. De ne the function v (y ) such that

V (S ) = v (y ): Using the chain rule it can be seen that

V 0 (S ) = v 0 (y ) and

dy v 0 (y ) = dS b

2 d2 y v 00 (y ) v 0 (y ) dy 0 00 00 + v (y ) 2 = : V (S ) = v (y ) dS dS b2

Inserting these de nitions into (2) demonstrates that the original problem is equivalent to (by ) 0 2 (by ) 00 (by )v (y ) = f (by ) + v (y ) + v (y ); (3) b 2b

CHAPTER 11. CONTINUOUS TIME - METHODS

422

for y 2 [0; 1], with

v (0) = ga ; v (1) = gb ;

(4)

v 0 (1) = bhb :

(5)

and An approximation, v (y ; b) = (y )c(b) can be found for arbitrary values of b using (3) and (4). The optimal choice of b can then be determined using a root nding algorithm to solve (5) using 0 (1)c(b) bhb = 0. More complicated problems will use a similar strategy, but may need to handle multiple value functions, multiple boundaries and/or boundaries that are curves or surfaces in the state space rather than isolated points. After illustrating the basic approach in the simplest of cases, we discuss ways to handle the complications. Before proceeding, we should point out that there is a vast and growing literature on free boundary problems. Our goal here is rather modest. We want to present a framework that can solve such problems, while building on the methods already developed in this book. As such, we are not attempting to provide the most eÆcient approaches to speci c problems, but rather ones that will provide useful answers without a lot of special coding. We also make no attempt to provide general solvers for these models but rather demonstrate by example how they can be solved.

Example: Asset Replacement

The in nite time horizon resetting problem with a single state variable is perhaps the simplest example of a free boundary problem to solve. Recall the asset replacement problem (page 359) in which an asset's productivity depends on its age, A, yielding a net return of Q(A)P . The Bellman equation is

V (A) = Q(A)P + V 0 (A); and applies on the range A 2 [0; A ], where A is the optimal replacement age. The asset can be replaced by paying a xed cost C. The boundary conditions are given by the value matching condition:

V (0) = V (A ) + C and the optimality (smooth pasting) condition:

V 0 (A ) = 0:

CHAPTER 11. CONTINUOUS TIME - METHODS

423

We rst transform the problem in terms of y = A=A , de ning v (y ) = V (A) and, therefore, v 0 (y ) = V 0 (A)A . Thus, the Bellman's equation can be expressed in terms of y :

v (y ) = Q(A y )P + v 0 (y )=A with boundary conditions v (0) v (1) = C and v 0 (1) = 0. We approximate the value function using v (y ) (y )c, for y 2 [0; 1], where c is an n-vector of coeÆcients. Then the Bellman's equation can be expressed as the residual function [(y ) 0 (y )=A]c = Q(A y )P: The Bellman equation is solved with equality at n 1 nodal points on [0; 1] simultaneously with the value-matching condition [(0) (1)]c = C . This is a linear system in c and hence can be solved directly. The system of n 1 collocation equations plus the value-matching condition provides a value of c that is conditional on the choice of the free boundary A . This choice is optimal when 0 (1)c(A ) = 0; this is a single equation in a single unknown and is easily solved using a nonlinear root nding algorithm. The method is demonstrated below for the case in which Q(A) = 1 + 0:05A 0:003A2 , P = 2, C = 3 and = 0:1. % DEMFB01 Asset Replacement Demonstration % Define parameters Q=inline('1+.05*A-.003*A.^2','A'); P=2; C=3; rho=0.1; % Define nodes and basis matrices n=15; cdef=fundefn('cheb',n-1,0,1); y=funnode(cdef); cdef=fundefn('cheb',n,0,1); rPhi0=funbas(cdef,y); Phi1=funbas(cdef,y,1); phiVM=funbas(cdef,0)-funbas(cdef,1); phiSP=funbas(cdef,1,1); % Call rootfinder Astar=100; % initial guess

% % % %

rho*phi(y) phi'(y) phi(0)-phi(1) for value matching phi'(1) for smooth pasting

CHAPTER 11. CONTINUOUS TIME - METHODS

424

Astar=broyden('ffb01',Astar,[],Q,P,C,y,rPhi0,Phi1,phiVM,phiSP); [e,c]=ffb01(Astar,Q,P,C,y,rPhi0,Phi1,phiVM,phiSP);

The nodal values of y are de ned as the standard Chebyshev nodes for degree n 1 rather then for degree n, to accommodate the addition of the value-matching condition. Furthermore, in addition to the basis matrices for the Bellman's equation (0 and 1 ), we precompute basis vectors (1 n) for the value-matching and smoothpasting conditions. The latter vectors are de ned as V M = (0) (1) and SP = 0 (1), respectively. After setting A to an initial guess of 100, broyden is called to solve for the optimal A . This requires that a separate residual function le be de ned: function [e,c]=ReplaceRes(Astar,Q,P,C,y,rPhi0,Phi1,phiVM,phiSP) B=[rPhi0-Phi1./Astar;phiVM]; b=[feval(Q,Astar*y)*P;C]; c=B\b; e=phiSP*c;

The residual function rst determines c(A ) by solving 2 3 2 3 (y1) 0 (y1 )=A Q(A y1 )P 6 7 6 7 6 7c = 6 7 4 (yn 1 ) 0 (yn 1 )=A 5 4 Q(A yn 1 )P 5 : (0) (1) C It then returns the value e = 0 (1)c(A ). It will also return the computed value of c, which can then be used to evaluate v (y ) and hence V (A). A plot of V (A) is shown in Figure 11.7. The value-matching condition appears in the gure as the dierence of C = 3 between V (0) and V (A ) (A 17:64). The smooth-pasting condition appears as the 0 slope of V at A .

Example: Investment Timing

In the previous example, a state variable was controlled in such a way as to keep it within a region of the state space bounded by a free boundary. In other problems, the state can wander outside of the region de ned by the free boundary but the problem is either known or has no meaning outside of the region. In such case the value function need only be approximated on the region of interest, using appropriate boundary conditions to de ne both the value function and the boundary itself. From a computational perspective such problems require no new considerations. To illustrate, consider a simple irreversible investment problem in which an investment of I will generate a return stream with present value of S , where S is described by the Ito process dS = (m S )Sdt + Sdz:

CHAPTER 11. CONTINUOUS TIME - METHODS

425

Asset Replacement Value Function 2.5

2

1.5

V

1

0.5

0

−0.5

−1

0

5

10

15

20

25

30

35

A

Figure 11.7 This process can be shown to have a mean reverting rate of return, with long-run mean m (see Appendix A, Section A.5.2). When the investment is made, it has net value S I . Prior to making the investment, however, the value of the right to make such an investment is V (S ), which is the solution to the following dierential equation 1 2 S 2 V 00 (S ) + (m S )SV 0 (S ) rV (S ) = 0; 2 where r is the risk-free interest rate. The lower boundary, S = 0, is associated with an investment value of 0, because once the process S goes to 0, it stays equal to 0 forever; hence V (0) = 0. The upper boundary is de ned as the value, S , at which investment actually occurs. At this value two conditions must be met. The value matching condition states that at S the value of investing and not investing are equal: V (S ) = S I . The smooth-pasting optimality condition requires that V 0 (S ) = 1. Applying the change of variables (z = S=S ) yields the equivalent problem 1 2 z 2 v 00 (z ) + (m zS )zv 0 (z ) rv (z ) = 0; (6) 2 on the interval [0; 1], with v (0) = 0, v (1) = S I , and v 0 (1) = S . To solve the problem we use an approximation of the form v (z ) (z )c. Chebyshev polynomials are a natural choice for this problem because v (z ) should be relatively smooth. The parameter vector c and the optimal investment trigger S are selected to satisfy (6)

CHAPTER 11. CONTINUOUS TIME - METHODS

426

at n 2 appropriately chosen nodes on the interior of [0; 1] (e.g., the roots of the order n 2 Chebyshev polynomial) and to satisfy the three boundary conditions. To make this a bit more explicit, given a guess of S , de ne the n 2 n matrix B Bij = 12 2 zi2 00j (zi ) + (m zi S )zi 0j (zi ) rj (zi ) for i = 1; : : : ; n 2. Then concatenate the basis functions for the boundary conditions to the bottom of this matrix: Bn 1;j = j (0) and Bn;j = j (1). This produces an n n matrix. The coeÆcients, conditional on the guess of S , are given by

c(S ) = B 1

0n 1 : S I

Given c we can de ne a residual function in one dimension to solve for S using the smooth-pasting condition:

e(S ) = S

0 (1)c(S ):

This approach works well in some cases but this example has one additional problem that must be addressed. For some parameter values, the approximate solution obtained becomes unstable, exhibiting wide oscillations at low values of z . The solution value for S , however, remains reasonable. The problem, therefore, seems due to the approximation having trouble satisfying the lower boundary. It can be shown that, for some parameter values, the derivative of v becomes unbounded as S approaches 0: lim V 0 (S ) = 1:

S &0

This type of behavior cannot be well approximated by polynomials, the derivatives of which (at every order) are bounded on a bounded domain. Fortunately this problem can be easily addressed by simply eliminating the lower boundary constraint and evaluating (6) at n 1 rather than n 2 nodes. This causes some error at very small values of z (or S ) but does not cause signi cant problems at higher values of z . The economic context of the problem places far more importance on the values of z near 1, which de nes the location of S and hence determines the optimal investment rule. Matlab code solving the problem using function approximation is displayed in Code Boxes 3 and 4. This particular problem has a partially known solution. It can be shown that the solution can be written as

V (S ) = AS H (S ; ; );

CHAPTER 11. CONTINUOUS TIME - METHODS Code Box 11.3: Solution Function for Optimal Investment Problem % % % % % % % % % % % % % %

OPTINVEST Solves the optimal investment problem with mean-reverting return Finds the optimal investment rule for a project that has return process dS=alpha(m-S)dt + sigma*SdW USAGE [e,vstar,V,dV]=OptInvest(v,r,alpha,m,sigma,I,n); INPUTS r : interest rate alpha, m, sigma : return process paramters I : fixed investment cost n : number of nodes used for Chebyshev collocation OUTPUTS Sstar : the trigger return level (invest if S>=Sstar) c : coefficients for value function approximation fspace : function family definition structure

function [Sstar,c,fspace]=optinvest(r,alpha,m,sigma,I,n) if nargin 0. Denoting these regions Sl and Su , the value function must satisfy V (g0 + g1 xl ) VS 12 2 VSS (f0 + f1 xl ) = 0 on Sl V (g0 + g1 xu ) VS 21 2 VSS (f0 + f1 xu ) = 0 on Su and value-matching and smooth pasting at points where f1 = g1 VS (plus any additional boundary conditions at S = a and S = b). For concreteness suppose that there is a single point S such that f1 (S ) = g1 (S )VS (S ) and that Sl consists of points less than S and Su of points greater than S (usually the context of the problem will suÆce to determine the general nature of these sets). The numerical problem is to nd this S and the value function V (S ). To solve this we will use two functions, one on Sl , the other on Su that approximately satisfy the Bellman equations and the boundary conditions and also that, for any guess of S , satisfy value matching and smooth pasting at this guess.

CHAPTER 11. CONTINUOUS TIME - METHODS

431

Let the approximations be de ned by i(S )ci , for i = l; u and de ne the function Bi (S ) as Bi (S ) = i (S ) [g0 (S ) + g1 (S )xi ] 0i (S ) 21 2 (S )00i (S ) The ci can be determined by making

Bi (S )ci

[f0 (S ) + f1 (S )xi ] = 0

at a selected set of collocation nodes, together with the boundary conditions and

l (S )cl 0l (S )cl

u (S )cu = 0 (value matching) 0u (S )cu = 0 (smooth pasting).

Determining the ci for some guess of S , therefore, amounts to solving a system of linear equations (assuming any additional boundary conditions are linear in V ). Once the ci are determined, the residual

r(S ) = f1 (S ) + g1 (S )0l (S )cl can be computed. The optimal value of S is then chosen to make r(S ) = 0.

Example: Optimal Fish Harvest

In the optimal sh harvesting problem (page 345) the value function solves the coupled PDE (1 S=K )VS + 12 2 S 2 VSS for S < S V = S P HS + (S (1 S=K ) HS ) VS + 21 2 S 2 VSS for S > S with S determined by P = VS (S ) and continuity of V and VS at S . For simplicity, we impose the scale normalization P = K = 1 (by choosing units for money and sh quantity). To solve this problem we rst transform the state variable by setting

y = ln(S ) ln(S ): This transformation has two eects: rst, it simpli es the dierential equation by making the coeÆcients constant or linear in S , and, second, it places the boundary between the two solution functions at y = 0. The transformation necessitates rewriting the value function in terms of y , say as v (y ). The transformation implies that

S = S ey ; SVS (S ) = vy (y )

CHAPTER 11. CONTINUOUS TIME - METHODS

432

and

S 2 VSS (S ) = vyy (y ) vy (y ): The transformed Bellman equation with the scale normalizations is 1 2 1 2 vy y v y 0 y 2 yy 2

It will be useful to rewrite this to isolate the S terms 1 2 vy 1 2 vyy + S ey vy = 0 v for y < 0 21 2 2 1 2 y y v 2 H vy 2 vyy + S e vy = S He for y > 0 : The two functions are coupled by imposing continuity of v and vy at y = 0. Technically there are also boundary conditions as y goes to 1 and 1 , but we will ignore these for the time being. Now let's approximate the two functions using l (y )cl and u(y )cu, where the i are ni -element basis vectors and the ci are the coeÆcients associated with these bases. For a speci c guess of S , the Bellman equation can be written

Dl (y )cl + S [ey 0l (y )] cl = 0 for y < 0 0 y 0 y [Du (y ) + Hu(y )] cu + S [e u (y )] cu = S He for y > 0 : where Di (y ) = i (y ) 12 2 0i(y ) 21 2 00i (y ). Evaluating this expression at a set of nodes, yl 2 [a; 0], and yu 2 [0; b], where a and b are arbitrary upper and lower bounds, with a < 0 and b > 0. The boundary conditions at y = 0 for a given S are l (0)cl

u (0)cu = 0

0l (0)cl

0u (0)cu = 0:

and If we choose yl and yu to have nl 1 and nu 1 elements, respectively, this yields the nl + nu system of linear equations: 02 B6 B6 @4

Bl 0 l (0) 0l (0)

0 Bu u (0) 0u (0)

which has the form (B + S D)c = S f:

3

2

7 6 7 + S 6 5 4

Dl 0 0 Du 0 0 0 0

31 7C 7C 5A

cl cu

2 6

=6 4

0 S Heyu 0 0

3

7 7: 5

CHAPTER 11. CONTINUOUS TIME - METHODS

433

The unknowns here are S (a scalar) and c (an n0 + n1 vector). The matrices B , D and f do not depend on either S or c and therefore can be prede ned. Furthermore, this system of equations is linear in c and hence can be easily solved for a given S , thereby obtaining an approximation to the value function, v . We can therefore view c as a function of S : c(S ) = (B + S D) 1 S f: (7) The optimal S is then determined by solving the (non-linear) equation

S

0l (0)cl (S ) = 0:

(8)

A Matlab implementation is displayed in Code Box 5. The procedure fishh de nes the approximating functions and precomputes the matrices needed to evaluate (7) and (8). The actual evaluation of these equations is performed by the auxiliary procedure fishhr displayed in Code Box 6, which is passed to the root nding algorithm broyden by fishh. A script le which computes and plots results is given in Code Box 7; this was used to produce Figures 11.10-11.13. Fish Harvesting: Value Function 1.4

1.2

1

V

0.8

0.6

0.4

0.2

0

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

S

Figure 11.10 The procedure fishh allows additional constraints to be imposed at the lower and upper bounds of the approximating interval (a and b). By setting nbl to 2, the additional constraint that vl00 (a) = 0 is imposed. Similarly, by setting nbu to 2, the additional constraint that vu00 (b) = 0 is imposed. Although neither is necessary to

CHAPTER 11. CONTINUOUS TIME - METHODS Code Box 11.5: Collocation File for Fish Harvesting Problem % FISHH Solution function for fish harvesting problem % See DEMFB03 for demonstration function [sstar,cl,cdefl,cu,cdefu]=fishh(rho,alpha,sigma,H) % Set up basis matrices a=log(0.005); % lower bound b=log(10); % upper bound nl=25; nu=15; % number of nodes for functions nbl=2; nbu=1; % number of boundary constraints on functions cdefl=fundef({'cheb',nl-nbl,a,0}); cdefu=fundef({'cheb',nu-nbu,0,b}); yl=funnode(cdefl); yu=funnode(cdefu); cdefl=fundef({'cheb',nl,a,0}); cdefu=fundef({'cheb',nu,0,b}); eyl=exp(yl); eyu=exp(yu); Dl=funbas(cdefl,yl,1); Du=funbas(cdefu,yu,1); B=rho*funbas(cdefl,yl)... -(alpha-0.5*sigma.^2)*Dl... -(0.5*sigma.^2)*funbas(cdefl,yl,2); temp=rho*funbas(cdefu,yu)... -(alpha-0.5*sigma.^2-H)*Du... -(0.5*sigma.^2)*funbas(cdefu,yu,2); B=[B zeros(nl-nbl,nu);zeros(nu-nbu,nl) temp]; % Add boundary constraints B=[B; ... funbas(cdefl,0) -funbas(cdefu,0); ... % V continuous at y=0 funbas(cdefl,0,1) -funbas(cdefu,0,1)]; % Vx continuous at y=0 if nbl==2; B=[B;funbas(cdefl,a,2) zeros(1,nu)]; end % lower boundary if nbu==2; B=[B;zeros(1,nl) funbas(cdefu,b,2)]; end % upper boundary % Basis for Vy D=[alpha*eyl*ones(1,nl).*Dl zeros(nl-nbl,nu); ... zeros(nu-nbu,nl) alpha*eyu*ones(1,nu).*Du; ... zeros(nbl+nbu,nl+nu)]; % RHS of DE residual function f=[zeros(nl-nbl,1);H*eyu;zeros(nbl+nbu,1)]; % Basis for residual function (Vy(0)=S*) phil10=funbas(cdefl,0,1); % find the cutoff stock level sstar=broyden('fishhr',0.5*(1-rho/alpha),[],B,D,f,phil10,nl); % Break apart the coefficient vector and create structures to return c=(B+sstar*D)\(sstar*f); cl=c(1:nl); cu=c(nl+1:end);

434

CHAPTER 11. CONTINUOUS TIME - METHODS

435

Code Box 11.6: Residual File for Fish Harvesting Problem % FISHHR residual function for fish harvesting problem % Used by FISHH function [e,c]=fishhr(sstar,B,D,f,phil10,nl) c=(B+sstar*D)\(sstar*f); e=sstar-phil10*c(1:nl);

Fish Harvesting: Marginal Value Function 5

4.5

4

3.5

V’

3

2.5

2

1.5

1

0.5

0

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

S

Figure 11.11 obtain useful results, the former is eective in enforcing sensible behavior in the value function and its derivatives for low stock levels. Figure 11.10 illustrates a numerical approximation to the value function for the problem with = 0:05, = 0:1, = 0:2 and H = 1. Figures 11.11 and 11.12 display the rst and second derivatives of the value function. S is indicated in these plots with an \*". Notice that the value function is continuous up to its second derivative, but that V 00 exhibits a kink at S = S . This indicates why it is a good idea to break the value function apart and approximate it on each region separately, and pasting the two approximations together at the cut-o stock level. It also allows us to use the high degree of accuracy that polynomial approximations provide. Evidence of the quality of the approximation is provided by the plot of the residual function, shown

CHAPTER 11. CONTINUOUS TIME - METHODS Code Box 11.7: Script File for Fish Harvesting Problem % DEMFB03 Demo for fish harvesting problem rho=0.05; alpha=0.1; sigma=0.2; H=1; [sstar,cl,cdefl,cu,cdefu]=fishh(rho,alpha,sigma,H); % CODE TO GENERATE PLOTS a=cdefl.a; b=cdefu.b; N=101; yl=linspace(a,0,N)'; yu=linspace(0,log(1/sstar),N)'; s=sstar*exp([yl;yu]); figure(1) v=[funeval(cl,cdefl,yl);funeval(cu,cdefu,yu)]; plot(s,v,sstar,v(N),'*'); title('Fish Harvesting: Value Function'); xlabel('S'); ylabel('V'); figure(2) v1=[funeval(cl,cdefl,yl,1);funeval(cu,cdefu,yu,1)]; plot(s,v1./s,sstar,v1(N)./sstar,'*'); title('Fish Harvesting: Marginal Value Function'); xlabel('S'); ylabel('V'''); axis([0 1 0 5]); figure(3) v2=[funeval(cl,cdefl,yl,2);funeval(cu,cdefu,yu,2)]-v1; plot(s,v2./(s.^2),sstar,v2(N)./sstar.^2,'*'); title('Fish Harvesting: Curvature of Value Function'); xlabel('S'); ylabel('V"'); axis([0 1 -1 0]); figure(4) e=rho*v-(alpha-alpha*s).*v1-(0.5*sigma.^2)*v2; e=e+(H*(v1-s)).*(s>=sstar); plot([yl;yu],e) title('Fish Harvesting: Residual Function'); xlabel('y') ylabel('e') prtfigs(mfilename)

436

CHAPTER 11. CONTINUOUS TIME - METHODS

437

Fish Harvesting: Curvature of Value Function 0

−0.1

−0.2

−0.3

V"

−0.4

−0.5

−0.6

−0.7

−0.8

−0.9

−1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

S

Figure 11.12 Fish Harvesting: Residual Function

−9

1

x 10

0

−1

−2

e

−3

−4

−5

−6

−7

−8

−9 −6

−5

−4

−3

−2

−1

0

1

2

y

Figure 11.13 in Figure 11.13. One could, of course, approximate the entire value function with, say, a cubic spline, so long as you ensured that y=0 was a node (see problem 7 on

CHAPTER 11. CONTINUOUS TIME - METHODS

438

page 454). This would avoid the need to de ne two functions and thus has something to recommend it. However, it would require more nodes to achieve the same level of accuracy.

Example: Entry-Exit

In stochastic bang-bang problems, the state space is divided into a region in which the control is set to it highest possible value and another region where it is set to its lowest possible value. In other problems with transitional boundaries, the state space may not be partitioned in this way. Instead, multiple free boundaries may need to be determined. In the entry-exit problem (page 368), a rm is either active or inactive. The two value functions satisfy V a = P C + (P )VPa + 2 (P )VPaP for P 2 [Pl ; 1) : (9) V i = (P )VPi + 2 (P )VPi P for P 2 [0; Ph] with

and

V i (Ph ) = V a (Ph ) I V i (Pl ) E = V a (Pl ) VPi (Pl ) = VPa (Pl ) VPi (Ph ) = VPa (Ph ):

When P is a geometric Brownian motion process, i.e.,

dP = P dt + P dz; the solution is known for arbitrary levels of Pl and Ph. The general form of the solution is

V a = Aa1 P 1 + Aa2 P 2 + P=( ) C= V i = Ai1 P 1 + Ai2 P 2 where the four A terms will be pinned down by the boundary conditions and the i solve 1 2 ( 1) + = 0: 2 It can be shown that, for > 0, one of the is negative and the other is greater than one; de ne 1 > 1 and 2 < 0. (It is easy to verify that these solutions solve (9)). Two of the unknown constants can be eliminated by considering the boundary conditions at P = 0 and P = 1. At P = 0 only V i is de ned and the geometric

CHAPTER 11. CONTINUOUS TIME - METHODS

439

Brownian motion process is absorbed; hence V i (0) = 0, which requires that Ai2 = 0. For large P , only V a is de ned and the probability of deactivation becomes vanishingly small; hence the value function would approach P=( ) C=, requiring that Aa1 = 0. We still have two unknown constants to determine, Ai1 and Aa2 (we shall henceforth refer to these as A1 and A2 , as there is no possible confusion concerning which function they belong to). The value matching conditions require that,

V a (Ph ) I = A2 Ph 2 + Ph =( ) C= I = A1 Ph 1 = V i (Ph ) and

V a (Pl ) = A2 Pl 2 + Pl =( ) C= = A1 Pl 1

E = V i (Pl ) E:

The optimality conditions on Pl and Ph are that the derivatives of V a and V i are equal at the two boundary locations: V a (P ) = 2 A2 P 2 1 + 1=( ) = 1 A1 P 1 1 = V i (P ) P

P

at P = Pl and P = Ph . Taken together, the value matching and smooth pasting conditions yield a system of four equations in four unknowns, A1 , A2 , Pl and Ph . This is a simple root- nding problem (the toolbox function entex2.m solves this problem). For general processes, we will have to approximate the value functions. We rst de ne two transformed variables that will make the boundaries of the approximating functions simple. Let y a = P=Pl and y i = P=Ph. The value functions can then be approximated using V j (P ) = v j (y j ) j (y j )cj for j = a; i, with v a de ned on [1; ya] and v i on [0; 1] (the choice of ya, the upper bound on y a is discussed below). Given the linearity of the Bellman's Equation and the boundary conditions, it will again be the case that the coeÆcient vectors ci and ca , for given values of the boundary points, satisfy a system of linear equations. Our strategy will be write a procedure that is passed trial values of P = [Pl ; Ph], computes ci and ca for these free boundary points and then returns the dierence in marginal value functions at the two boundary points: 2

3

vyi (1) vya (Ph=Pl ) + 6 7 Ph Pl 6 7 r(P ) = 6 i 7: a 4 vy (Pl =Ph ) vy (1) 5 Ph Pl At the optimal choice of P , r(P ) = 0. The procedure that returns the residuals can be passed to a root nding algorithm to determine P .

CHAPTER 11. CONTINUOUS TIME - METHODS

440

To see how the coeÆcient values can be determined, rst write the Bellman's equation in terms of the y j and v j : i (y i ) (Phy i )vyi (y i) 2 (Phy i)vyy i i v (y ) = 0: Ph 2Ph2 and

(Pl y a )vya (y a) Pl

v a (y a)

a (y a ) 2 (Pl y a )vyy = Pl y a 2 2Pl

C:

Suppose the approximating functions have degree ni and na , respectively. We will evaluate the Bellman's Equation at ni 2 values of y i and na 2 values of y a. The addition of the two end point conditions (v i (0) = 0 and vyy (y a ) = 0) and the two value-matching conditions yields a system of ni + na linear equations in the same number of unknowns. Speci cally, the linear system is 2 6 6 6 6 6 6 4

i (0) 0 Di 0 i (1) (Ph =Pl )a (Ph=Pl ) i (Pl =Ph) (Pl =Ph) a (1) 0 Da 0 a 00 (y a)

where

Di = i0

(PhY i ) i 1 Ph

2 (PhY i ) i 2 2Ph2

Da

(Pl Y a ) a 1 Pl

2 (Pl Y a ) i 2 : 2Pl2

and = a 0

3

2

7 7 7 ci 7 7 ca = 7 5

6 6 6 6 6 6 4

0 0 I E C1 0

3

2

7 6 7 6 7 6 7 + Pl 6 7 6 7 6 5 4

0 0 0 0 Ya 0

3

7 7 7 7; 7 7 5

The system is of the form Bc = b0 + Pl b1 , where b0 and b1 do not depend on Pl and Ph and hence can be precomputed. Furthermore, all of the basis matrices used in B except for i(Pl =Ph ) and a (Ph=Pl ) can be precomputed. The drift and diusion terms and are evaluated at points that may depend on Pl and Ph and hence must be computed each time the residual function is evaluated. The user must supply a speci c function to evaluate these terms. Once the drift, diusion and discount rates are known, the Di and Da matrices can be computed and the matrix B can be formed.

CHAPTER 11. CONTINUOUS TIME - METHODS

441

The residuals themselves can be written in the form Rc: # " Ph a 0 (P =P ) i i 0 (1) c : h l Pl r(P ) = Pl i 0 0 a ca (1) Ph (Pl =Ph ) The procedure for computing the residuals is found in the toolbox function entexres. Most of the inputs to this function are precomputed basis and other parameter matrices, including b0 , b1 and elements of B and R. A procedure that solves the entry/exit problem is provided in the toolbox function entex. This procedure takes as inputs the problem parameters and approximation information. It then precomputes basis matrices and the other coeÆcients used by the residual function entexres, and passes entexres to the root nding algorithm broyden to nd Pl and Ph . entex returns the value of P , the value function coeÆcient vectors (ci and ca) and their associated function de nition structures (fspacei and fspacea). In addition, a procedure must be de ned that accepts values of P (along with additional parameters as needed) and returns values of , and for a speci ed model.6 An example of such a le for geometric Brownian motion with a constant discount rate is given by: function [r,m,s]=gbm(P,rho,mu,sigma) n=size(P,1); r=rho+zeros(n,1); m=mu*P; s=sigma*P;

The le demfb04.m demonstrates the use of this approach for the geometric Brownian motion case and compares the resulting solution to the (essentially) closed form solution discussed above. Figure 11.14 shows the value functions for the inactive and active states. Figures 11.15 and 11.16 show, respectively, the approximation errors and the residual functions for the collocation approximation relative to the \closed form" solution. An important point to note about this problem concerns the choice of the upper bound for v a . Even though the optimal boundary values are Pl = 0:41815 and Ph = 2:1996, it is necessary to set the upper bound for y a to a rather large number. Intuitively the reason for this stems from the non-stationarity of the geometric Brownian motion process coupled with the in nite time horizon. Together, these imply that the probability of getting a large value of P , even when starting at a relatively low current value, is non-negligible over time horizons that contribute to the present value. We should expect, therefore, that relatively larger values of the upper bound will be needed as shrinks. 6 Although applications of this model generally treat as a xed constant, the approach taken

here provides the exibility to make it depend on P if desired.

CHAPTER 11. CONTINUOUS TIME - METHODS

442

Value Functions for Entry/Exit Problem 50 Inactive Active

40

30

20

10

0

−10

0

0.5

1

1.5

2

2.5

3

2.5

3

P

Figure 11.14

Errors in Approximate Value Functions

−5

x 10

8

6

4

2

0

0

0.5

1

1.5

P

Figure 11.15

2

CHAPTER 11. CONTINUOUS TIME - METHODS Residual Functions

−5

4

443

x 10

3

2

1

0

−1

−2

−3

0

0.5

1

1.5

2

2.5

3

P

Figure 11.16

11.3.2 Finite Horizon Problems Thus far we have discussed single state, in nite horizon free boundary problems. Somewhat greater diÆculties arise in nite horizon problems. The location of the free boundaries in such problems are not isolated points but are functions of time. For example, when an American put option is near to expiration, it is optimal to exercise it at higher prices of the underlying asset than when it is far from expiration. In nite time problems, we know the value function at the terminal date. This means that we can employ evolutionary methods that work their way backwards in time from the end point. We present two ways of handling such problems. The rst implicitly assumes that the control can be exercised only at discrete points in time. Although simple, this method approximates the free boundary with a step function. To obtain a smoother approximation of the boundary, without requiring a dense set of state variable nodes, we use an explicit nite dierence approximation for the time derivative, while simultaneously solving for the free boundary. The two approaches are described in the following two examples.

Example: Pricing American Options

In Section 11.1 we solved problems of valuing European style options using the extended method of lines, which approximates the value of an option using V (S; )

CHAPTER 11. CONTINUOUS TIME - METHODS

444

(S )c( ). By evaluating (S ) at a set of n nodal values, we derived a dierential equation of the form c0 ( ) = 1 Bc( ): which is solved by

c( + ) = Ac( ); where A = exp( 1 B ) and c(0) equals the terminal payout, R(S ), evaluated at the nodal state values. The most commonly used strategy for pricing American style options solves the closely related problem of determining the value of an option that can be exercised only at a discrete set of dates. Clearly, as the time between dates shrinks, the value of this option converges to the value of one that can be exercised at any time before expiration. Between exercise dates, the option is eectively European and hence can be approximated using7 c^( + ) = Ac( ): The value of (S )^c( + ) can then be compared to the value of immediate exercise, R(S ), and the value function set to the maximum of the two:

V (S; + ) max(R(S ); (S )^c( + )): The coeÆcient vector is updated to approximate this function, i.e., c( + ) = 1 max(R; ^c( + )): The function finsolve described in Section 11.1 requires only minor modi cation to implement this approach to pricing American style assets. First, add an additional eld to the model variable, model.american, which takes values of 0 or 1. Then, change the main iteration loop to the following: for i=2:N+1 c(:,i)=A*c(:,i-1); if model.american c(:,i)=iPhi*max(V0,Phi*c(:,i)); end end

7 Commonly used nite dierence and binomial tree methods discretize the time derivatives,

replacing c0 ( + ) with c( + ) c( ) =.

CHAPTER 11. CONTINUOUS TIME - METHODS

445

The le demfin04.m demonstrates the use of this feature and produces Figures 11.17-11.19. It closely follows the code described on page 406, but two dierences are noteworthy. First, a closed form solution does not exist for the American put option, even when the underlying price is geometric Brownian motion. To assess the quality of the approximation, we have computed a dierent approximation due to Baron-Adesi and Whaley (see bibliographic notes), which is implemented in the toolbox function baw. The dierences between the approximations are plotted in Figure 11.18. The other distinction lies in the determination of the optimal exercise boundary, which is plotted in Figure 11.19. This is obtained by determining which nodal points that are less than or equal to K are associated with an option that is equal to its intrinsic value of K S . The exercise boundary is taken to be the highest such nodal value of S . This provides a step function approximation to the early exercise boundary. Unfortunately, this approximation can only be re ned by increasing the number of nodal values so they are fairly dense in the region where early exercise may occur (just below the strike price). Such a dense set of nodal values is rarely needed to improve the accuracy of the value function, however. On the positive side, the method of nding an approximation to the value of an option with a discrete set of exercise dates has two overriding advantages. It is very simple and it extends in an obvious way to multiple state situations. On its negative side, it does not produce a smooth representation of the optimal exercise boundary. If a smooth approximation is needed or desired, the approach described in the next example can be used.

Example: Sequential Learning

In the sequential learning problem on page 372, the cumulative production, Q, acts like a time variable. There is a known terminal condition at Q = Qm and the solution can be obtained in an evolutionary fashion by working backwards in Q from Qm . Identifying the location of the free boundary, however, is somewhat more involved than with the American option pricing problem. Recall that the problem involved solving rV = P c(Q) + VQ + (r Æ )P VP + 12 2 P 2 VP P on [P (Q); 1) [0; Qm ], where P (Q) is a free boundary to be determined. The boundary conditions are8 P (Q)VP (P (Q); Q) = V (P (Q); Q) and P (Q)VP P (P (Q); Q) = ( 1)VP (P (Q); Q); 8 We ignore the limiting condition as P ! 1.

CHAPTER 11. CONTINUOUS TIME - METHODS

446

Put Option Premium 1 American European Optimal Exercise Boundary

0.9

0.8

0.7

V(S)

0.6

0.5

0.4

0.3

0.2

0.1

0

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

1.6

1.8

2

S

Figure 11.17 Put Option Approximation Errors

−4

6

x 10

4

2

0

−2

−4

−6

−8

0

0.2

0.4

0.6

0.8

1

1.2

S

Figure 11.18 where is the positive solution to 1 2 ( 1) + (r Æ ) r = 0: 2

1.4

CHAPTER 11. CONTINUOUS TIME - METHODS

447

Early Exercise Boundary 1

0.98

0.96

0.94

S

*

0.92

0.9

0.88

0.86

0.84

0.82

0.8

0

0.1

0.2

0.3

0.4

0.5

τ

0.6

0.7

0.8

0.9

1

Figure 11.19 Also a terminal condition at Q = Qm is known and, for states below the free boundary, the value function is known up to a constant:

V (P; Q) = A(Q)P : The diÆculty with free boundaries is the unknown shape of the space over which the dierential equation must hold. To get around this problem, we use a transformation method that regularizes the boundary; speci cally,

y = ln(P ) ln(P (Q)) with v (y; Q) = V (P; Q). The PDE must be solved for values of P on [P (Q); 1), which translates into values on y on [0; 1) (in practice we will truncate y ). Given this transformation it is straightforward to verify the following relationships between the original and the transformed problem:

vy (y; Q) = P VP (P; Q) vyy vy = P 2 VP P (P; Q) and

VQ = vQ

P 0 (Q) v: P (Q) y

CHAPTER 11. CONTINUOUS TIME - METHODS

448

Substituting these expressions into the Bellman equation and the boundary conditions yields: rv = P ey C (Q) + vQ + (r Æ 21 2 P 0 =P )vy + 21 2 vyy ;

vy (0; Q) v (0; Q) = 0 and

vyy (0; Q) vy (0; Q) = 0: We can approximate v (y; Q) with the function (y )c(Q), where c(Q) : [0; Qm ] !

Qm beta1=0.5-(r-delta)/sigma.^2 + sqrt((0.5-(r-delta)/sigma.^2).^2+2*r/sigma.^2); beta2=0.5-(r-delta)/sigma.^2 - sqrt((0.5-(r-delta)/sigma.^2).^2+2*r/sigma.^2); % Impose value matching and smooth pasting at P=cbar temp=[ cbar.^beta1 -(cbar.^beta2) ; ... beta1*cbar.^(beta1-1) -beta2*cbar.^(beta2-1)]; temp=temp\[cbar/delta-cbar/r ; 1/delta]; A1=temp(1); A2=temp(2); % Define the approximating functions and nodal values Delta=Qm/N; Q=linspace(0,Qm,N+1); cdef=fundef({'cheb',n-1,0,hi}); y=funnode(cdef); cdef=fundef({'cheb',n,0,hi}); % Set up collocation matrices D=funbasx(cdef,y,[0;1;2]); Phi0=D.vals{1}; Phi1=D.vals{2}; D=r*Phi0-(r-delta-0.5*sigma^2)*Phi1-0.5*sigma.^2*D.vals{3}; phi=funbasx(cdef,0,[0;1;2]); B=[ Phi0 zeros(n-1,1); phi.vals{2}-beta1*phi.vals{1} 0 ; phi.vals{3}-(beta1)*phi.vals{2} 0 ]; A=[Phi0-Phi1-Delta*D Delta*exp(y); zeros(2,n+1) ]; % Compute cost function values gamma=log(C/cbar)/Qm; Cost=Delta*cbar*exp(gamma*(Qm-Q)); Cfactor=[ones(n-1,1);0;0]; % Initialize at terminal boundary p=[cbar;cbar*exp(y)]; c=zeros(n+1,N+1); c(1:n,N+1)=[phi.vals{1};Phi0]\(A2*p.^beta2+p/delta-cbar/r); c(end,N+1)=cbar; % Iterate backwards in Q for i=N+1:-1:2 B(1:n-1,end)=Phi1*c(1:n,i)/(-c(end,i)); c(:,i-1)=B\(A*c(:,i)-Cost(i)*Cfactor); end % Extract Pstar pstar=c(end,:)'; c(end,:)=[];

CHAPTER 11. CONTINUOUS TIME - METHODS

451

Sequential Learning: Value Function 500

450

400

350 Q=Q =20

V(P,Q)

300

m

250

Q=0

200

150

100

50

0

0

5

10

15

20

25

P

Figure 11.20

30

35

40

CHAPTER 11. CONTINUOUS TIME - METHODS

452

Exercises 11.1. A Generalized Term Structure Model A one factor model that encompasses many term-structure models appearing in the literature is based on the process for the short interest rate (under the risk neutral measure) given by:

dr = [1 + 2 r + 3 r log(r)]dt + [ 1 + 2 r] dW: State the PDE satis ed by a zero-coupon bond maturing in periods, along with the associated boundary condition. Write a function analogous to cirbond on p. 400 for this case. The function should have the following input/output format: c=Bond(fspace,alpha1,alpha2,alpha3,beta1,beta2,nu,tau)

Notice that this function returns the coeÆcients of a function of r de ned by the function de nition structure variable fspace. Verify that your function reproduces correctly the results obtained using CIRBOND, which is a special case of the generalized model. To do this, use the parameters = 30, = :1, = :05 and = 0:2. 11.2. Bond Option Pricing Consider an option that gives its holder the right, in o periods, to buy a bond that pays 1 unit of account b periods after the option expires, at a strike price of K . Using the model for the short rate described in the previous exercise, write a Matlab function that computes the value of such an option.The function should have the following input/output format:

c=BondOption(fspace,alpha1,alpha2,alpha3,beta1,beta2,nu,K,tauo,taub)

Determine the value of an option for the CIR model with K = 1, o = 1, b = 0:25, = :1, = :05 and = 0:2.

11.3. Neoclassical Optimal Growth Use scsolve to solve the neoclassical optimal growth model, discussed beginning on page 416: Z 1

max e t U (C )dt; C (t) 0 subject to the state transition function K 0 = q (K )

q (K ) = ln(K + 1) ÆK

C , where

CHAPTER 11. CONTINUOUS TIME - METHODS

453

and

U (C ) = (C 1

1)=(1 )

using the parameter values = 0:05, Æ = 0:02, = 2( + Æ ) = 0:14 and = 0:5. Compare your results to those obtained using the Euler equation approach. 11.4. Cow Replacement Convert the discrete time and state cow replacement problem on page ?? to a continuous time and continuous state problem and solve the problem. 11.5. Asset Replacement with Stochastic Quality In the asset replacement problem discussed on pages 359 and 422, the productivity of the asset depended only on its age. Suppose instead that the output of the machine is governed by q

dQ = Qdt + Q(Q Q )dz; where Q is the productivity of a new asset. Notice that the process is singular at Q = 0 and Q = Q . At Q = Q the drift rate is negative, so productivity is decreasing, whereas Q = 0 is an absorbing barrier. The income ow rate from the asset is P Q, for some constant P , the replacement cost of the asset is C and the discount rate is . Intuitively, there is some value Q = at which it is optimal to replace the asset. a) State the Bellman's equation and boundary conditions for this problem (be sure to consider what happens if = 0). What is the value function for Q < ? b) Write a Matlab le that has the following input/output format: [beta,c,fspace]=Replace(mu,sigma,rho,P,C,Qbar,n)

where c and fspace are the coeÆcients and the function de nition structure de ning the value function on the interval [ ; Q ], and n is the degree of the approximation. You may assume an interior solution ( > 0). c) Call the function you wrote with the line [beta,c,fspace]=Replace(0.02,0.05,0.1,1,2,1,50);

Plot the value function on the interval [0; Q ] (not on [ ; Q ]) and mark the point ( ; V ( )) with a \*". 11.6. Timber Harvesting

CHAPTER 11. CONTINUOUS TIME - METHODS

454

a) Solve the timber harvesting example from page 360 with the parameters = 0:1, m = 1, 0, P = 1, C = 0:15 and = 0:08. Plot the value function, indicating the location of the free boundary with an \*". b) Resolve the problem under the assumption that the land will be abandoned and the replanting cost will not be incurred. Add this result to the plot generated for part (a). 11.7. Fish Harvesting Using Cubic Splines Modify the code in the sh harvesting example (page 431) to compute the value function using a single cubic spline approximation with a double breakpoint at y = 0. Plot the value function and its 1st and 2nd derivatives as functions of S (not y ) and the residual function for the dierential equation as a function of y . 11.8. Fish Harvesting - Unbounded Eort a) Consider the sh harvesting problem (page 431) under the assumption that the control is not bounded (H ! 1), making the problem of the barrier control type. Write a program to solve for the value function and the optimal stock level that triggers harvesting. Use the same parameter values as in the bounded eort model ( = 0:1, = 0:05, = 0:2). b) Compute and plot the optimal trigger stock level as a function of the maximal harvest rate (H ), using the above values for other parameters. Demonstrate that the limiting value as H ! 1 computed in part (a) is correct. 11.9. Cost Uncertainty Consider the problem of determining an investment strategy when a project takes time to complete and completion costs are uncertain. The cost uncertainty takes two forms. The rst, technical uncertainty, arises because of unforeseen technical problems that develop as the project progresses. Technical uncertainty is assumed to be diversi able and hence the market price of risk is zero. The second type of uncertainty is factor cost uncertainty, which is assumed to have market price of risk . De ne K to be the expected remaining cost to complete a project that is worth V upon completion. The dynamics of K are given by

p

dK = Idt + IKdz + Kdw; where I , the control, is the current investment rate and dz and dw are independent Weiner processes. The project cannot be completed immediately because I is constrained by 0 I k. Given the assumptions about the market price

CHAPTER 11. CONTINUOUS TIME - METHODS

455

of risk, we convert the K process to its risk neutral form and use the risk free interest rate, r, to discount the future. Thus we act \as if"

p

dK = (I + K )dt + IKdz + Kdw and solve

F (K ) = max E e I (t)

rT V

Z T

0

e

rt I (t)dt

;

where T is the (uncertain) completion time given by K (T ) = 0. The Bellman equation for this problem is

rF = max I I

(I + K )F 0 (K ) + 21 ( 2 IK + 2 K 2 )F 00 (K );

with boundary conditions

F (0) = V F (1) = 0: The optimal control is of the bang-bang type:

I=

0 if K > K k if K < K

where K solves 1 2 00 2 KF (K )

F 0 (K ) 1 = 0:

Notice that technical uncertainty increases with the level of investment. This is a case in which the variance of the process is in uenced by the control. Although we have not dealt with this explicitly, it raises no new problems. a) Solve F up to an unknown constant for K > K . b) Use the result in (a) to obtain a boundary condition at K = K by utilizing the continuity of F and F 0 . c) Solve the deterministic problem ( = = 0) and show that K = k ln(1 + rV=k)=r. d) Write the Bellman equation for K < K and transform it from the domain [0; K ] to [0; 1] using z = K=K : Also transform the boundary conditions.

CHAPTER 11. CONTINUOUS TIME - METHODS

456

e) Write a computer program using Chebyshev collocation to solve for F and K using the following parameters:

V r k

= = = = = =

10 0:05 0 2 0:5 0:25:

g) What alterations are needed to handle the case when = 0 and why are they needed. 11.10. Investment with Time-to-Build Constraints Consider an investment project which, upon completion, will have a random value V and will generate a return ow of ÆV . The value of the completed project evolves, under the risk neutral measure, according to

dV = (r

Æ )V dt + V dz;

where r is the risk free rate of return. The amount of investment needed to complete the project is K , which is a completely controlled process:

dK = Idt; where the investment rate is constrained by 0 I k. In this situation it is optimal to either be investing at the maximum rate or not at all. Let the value of the investment opportunity in these two cases by denoted F (V; K ) and f (V; K ), respectively. These functions are governed by the following laws of motion: 1 2 2 2 V FV V + (r

Æ )V FV

rF

1 2 2 2 V fV V + (r

Æ )V fV

rf = 0;

kFK

and

k=0

CHAPTER 11. CONTINUOUS TIME - METHODS

457

subject to the boundary conditions

F (V; 0) = V lim FV (V; K ) = e

ÆK=k

V !1

f (0; K ) = 0 f (V ; K ) = F (V ; K ) fV (V ; K ) = FV (V ; K ): V is the value of the completed project needed to make a positive investment. It can be shown that f (V ) = A(K )V , where 1 = 2

r Æ + 2

s

1 2

r

2

Æ 2

2r + 2:

(10)

and A(K ) is a function that must be determined by the boundary conditions. This may be eliminated by combining the free boundary conditions to yield

F (V ; K ) = V FV (V ; K ): Summarizing, the problem is to solve the following partial dierential equation for given values of , r, Æ and k: 1 2 2 2 V FV V + (r

Æ )V FV

rF

kFK

k = 0;

subject to

F (V; 0) = V lim FV (V; K ) = e V !1

ÆK=k

F (V ; K ) = V FV (V ; K ); where is given by (10). This is a PDE in V and K , with an initial condition for K = 0, a limiting boundary condition for large V and a lower free boundary for V that is a function of K . The problem as stated is solved by

F = Ve

Æ=kK

K

CHAPTER 11. CONTINUOUS TIME - METHODS

458

with optimal cuto boundary

V (K ) =

K

1

eÆ=kK :

However, the optimal solution must, in addition, satisfy

FK (V ; K ) = 1: Write Matlab code to solve the time-to-build problem for the following parameter values:

Æ=0 r = 0:02 = 0:2 k=1 11.11. Sequential Learning Continued Review the sequential learning model discussed on pages 372 and 445. Note that the Bellman equation provides an expression for VQ when P > P . For P < P , the value function has the form A(Q)P 1 and so VQ (P; Q) = A0 (Q)P 1 . a) Derive an expression for VQ for P > P . b) Show that VQ is continuous at P = P for > 0. c) Use this fact to determine A0 (Q). d) Plot VQ as a function of P for Q = 0 using the parameters r = Æ = 0:05 and for the values =0.1, 0.2, 0.3, 0.4 and 0.5. e) When = 0, VQ is discontinuous at P = P . This case was discussed in Problem 20 in Chapter 10. Add this case to the plot from part (d).

CHAPTER 11. CONTINUOUS TIME - METHODS

459

Appendix A Basis Matrices for Multivariate Models The basic PDE used in control problems arising in economics and nance takes the form r(S )V = Æ (S ) + Vt + VSS (S ) + 21 trace( (S ) (S )>VSS ): Generically, S is a d-dimensional vector, VS is (1 d), (S ) is d 1, VSS is d d, and (S ) is d d. The rst derivative term can be computed (for a single S vector) using

VS (S ) (S )>0 (S )c where

2

3

01 (S1 ) 2 (S2 ) : : : d (Sd ) 6 1 (S1 ) 0 (S2 ) : : : d (Sd ) 7 2 7: 0 (S ) = 6 4 5 ::: 0 1 (S1 ) 2 (S2 ) : : : d (Sd ) The second derivative term can be computed using 1 trace( (S ) (S )>VSS ) 1 vec( (S ) (S )>)>00 (S )c 2 2 where 2 00 3 1 (S1 ) 2 (S2 ) : : : d (Sd ) 6 01 (S1 ) 02 (S2 ) : : : d (Sd ) 7 6 7 6 7 ::: 6 0 7 6 (S1 ) 2 (S2 ) : : : 0 (Sd ) 7 1 d 6 0 7 6 (S1 ) 0 (S2 ) : : : d (Sd ) 7 2 6 1 7 6 1 (S1 ) 00 (S2 ) : : : d (Sd ) 7 2 6 7 7: : : : 00 (S ) = 6 6 7 6 1 (S1 ) 0 (S2 ) : : : 0 (Sd ) 7 2 d 6 7 6 7 : : : 6 7 0 0 6 (S1 ) 2 (S2 ) : : : (Sd ) 7 d 6 1 7 6 1 (S1 ) 0 (S2 ) : : : 0 (Sd ) 7 2 d 6 7 4 5 ::: 00 1 (S1 ) 2 (S2 ) : : : d (Sd ) It would be even more eÆcient to avoid the double computations arising from symmetry by using the vech operator: 1 trace( (S ) (S )>VSS ) vech( (S ) (S )>)>^00 (S )c 2

CHAPTER 11. CONTINUOUS TIME - METHODS where

^00 (S ) =

2 6 6 6 6 6 6 6 6 6 6 6 6 4

1 00 2 0 1 (S1 ) 0 2 (S2 ) : : : d (Sd ) 1 (S1 ) 2 (S2 ) : : : d (Sd )

:::

7 7 7 7 0 d (Sd ) 7 7 d (Sd ) 7 7: 7 7 0 d (Sd ) 7 7 5

01 (S1 ) 2 (S2 ) : : :

1 (S1 ) 1 00 (S2 ) : : :

2 2

:::

1 (S1 ) 0 (S2 ) : : :

2

3

::: 1 (S1 ) 2 (S2 ) : : : 12 00d (Sd )

460

CHAPTER 11. CONTINUOUS TIME - METHODS

461

Bibliographic Notes A standard reference on solving PDEs is Ames. It contains a good discussion of stability and convergence analysis; the section on parabolic PDEs is especially relevant for economic applications. Golub and Ortega contains a useful introductory treatment the extended method-of-lines for solving PDEs (Section 8.4), which they call a semidiscrete method. Most treatments of PDEs begin with a discussion of nite dierence methods and may then proceed to nite element and weighted residual methods. The approach we have taken reverses this order by starting with a weighted residual approach (collocation) and demonstrating that nite dierence methods can be viewed as a special case with a speci c choice of basis functions. We have not discussed nite element methods explicitly, but the same remarks apply to them. Piecewise linear cubic splines bases are common examples of nite element methods. The investment under uncertainty with mean reversion in the risk neutral return process is due to Dixit and Pindyck (pp. 161-163). We have simpli ed the notation by taking as given the risk-neutral process for the value of the completed investment. Numerous references containing discussions of numerical techniques for solving nancial asset models now exist. Hull contains a good overview of commonly used techniques. See also DuÆe and Wilmott. In addition to nite dierence methods, binomial and trinomial trees and Monte Carlo methods are the most commonly used approaches. Tree approaches represent state dynamics using a branching process. Although the conceptual framework seems dierent from the PDE approach, tree methods are computationally closely related to explicit nite dierence methods for solving PDEs. If the solution to an asset pricing model for a given initial value of the state is the only output required from a solution, trees have an advantage over nite dierence methods because they require evaluation of far fewer nodal points. If the entire solution function and/or derivatives with respect to the state variable and to time are desired, this advantage disappears. Furthermore, the extended method of lines is quite competitive with tree methods and far more simple to implement. Monte Carlo techniques are increasingly being used, especially in situations with a high dimensional state space. The essential approach simulates paths for the state variable using the risk-neutral state process. Many assets can then be priced as the average value of the returns to the asset evaluated along each sample path. This approach is both simple to implement and avoids the need for special treatment of boundary conditions with exotic assets. Numerous re nements exist to increase the eÆciency of the approach, including the use of variance reduction techniques such as antithetic and control variates, as well as the use of quasi-random numbers (low discrepancy sequences). Monte Carlo approaches have been applied to the calculation of American style assets with early exercise features but this requires more work.

CHAPTER 11. CONTINUOUS TIME - METHODS

462

Other approaches to solving stochastic control problems include discretization methods; see, e.g., Kushner and Dupuis. Several of the exercises are based on problems in the literature. The generalized model of the short interest rate appears in DuÆe, pp. 131-133. The sh harvesting problem with adjustment costs was developed by Ludwig and Ludwig and Varrah. The cost uncertainty model is discussed in Dixit and Pindyck, pp. 345-351. The time-to-build exercise is from Majd and Pindyck and is also discussed in Dixit and Pindyck (pp. 328-339).

Appendix A Mathematical Background A.1 Normed Linear Spaces A linear space or vector space is a nonempty set X endowed with two operations, vector addition + and scalar multiplication , that satisfy

x + y = y + x for all x; y 2 X

(x + y ) + z = x + (y + z ) for all x; y; z 2 X there is a 2 X such that x + = x for all x 2 X for each x 2 X there is a y 2 X such that x + y = ( ) x = ( x) for all ; 2 < and x 2 X

(x + y ) = x + y for all 2 < and x; y 2 X ( + ) x = x + y for all ; 2 < and x 2 X 1 x = x for all x 2 X .

The elements of X are called vectors. A normed linear space is a linear space endowed with a real-valued function jj jj on X , called a norm, which measures the size of vectors. By de nition, a norm must satisfy

jjxjj 0 for all x 2 X ; jjxjj = 0 if and only if x = ; jj xjj = jj jjxjj for all 2 < and x 2 X ; 463

APPENDIX A. MATHEMATICAL BACKGROUND

464

jjx + yjj jjxjj + jjyjj for all x; y 2 X . Every norm on a linear space induces a metric that measures the distance d(x; y ) between arbitrary vectors x and y . The induced metric is de ned via the relation d(x; y ) = jjx y jj. It meets all the conditions we normally expect a distance function to satisfy:

d(x; y) = d(y; x) 0 for all x; y 2 X ; d(x; y) = 0 if and only if x = y 2 X ; d(x; y) d(x; z) + d(z; y) for all x; y; z 2 X . Norms and metrics play a critical role in numerical analysis. In many numerical applications, we do not solve a model exactly, but rather compute an approximation via some iterative scheme. The iterative scheme is usually terminated when the change in successive iterates becomes acceptably small, as measured by the norm of the change. The accuracy of the approximation or approximation error is measured by the metric distance between the nal approximant and the true solution. Of course, in all meaningful applications, the distance between the approximant and true solution is unknown because the true solution is unknown. However, in many theoretical and practical applications, it is possible to compute upper bounds on the approximation error, thus giving a level of con dence in the approximation. In this book we will work almost exclusively with three classes of normed linear spaces. The rst normed linear space is the familiar fxx (x0 )(x x0 ) + o(jjx x0 jj2 ) where o(t) denotes a term with the property that limt !0 (o(t)=t) = 0. The Intermediate Value Theorem asserts that if a continuous real-valued function attains two values, then it must attain all values in between. More precisely, if f continuous on a convex set S 2 B, A>=B, A

Our partners will collect data and use cookies for ad personalization and measurement. Learn how we and our ad partner Google, collect and use data. Agree & close