Dynamic programming is a method for solving complex problems by breaking them down into simpler subproblems. It is applicable to problems exhibiting the properties of overlapping subproblems[1] and optimal substructure (described below). When applicable, the method takes far less time than naive methods that don't take advantage of the subproblem overlap (like depth-first search).
The following matlab project contains the source code and matlab examples used for dynamic programming.
The following Matlab project contains the source code and Matlab examples used for riemann problem (gas dynamics).
Numerical solution of the Riemann problem with initial conditions piecewise constant.