Generates a modified coefficient matrix (**M**-matrix) used in the finite difference method from the option inputs. See Tavella and Randall (2000) for more on the standard formulation of the **M**-matrix.

1 |

`S` |
list containing the vectors of spatial grid points associated with each underlying. Vector sizes of underlying spatial grid points need not be equal. |

`rf` |
scalar; applicable risk-free rate (domestic risk-free rate). |

`q` |
vector; holding costs of the option's underlyings (dividends, foreign risk-free rates, etc.). |

`vol` |
vector; volatilities of the option's underlyings. |

`rho` |
matrix; correlation matrix of the option's underlyings. |

`matrixFDM`

first constructs the non-zero diagonals of the **M**-matrix and stores them as columns. The `bandSparse`

function from the Matrix package then constructs a sparse banded matrix from the columns of the previously contructed matrix. Spatial domain boundaries are calculated first-order inwards with second difference terms dropped, maintaining block tridiagonality.

`matrixFDM`

returns a `CsparseMatrix`

-class matrix used for timestepping in the finite difference method.

Michael Eichenberger and Carlo Rosa

Tavella, D., Randall, C., 2000. Pricing Financial Instruments: The Finite Difference Method. John Wiley & Sons, Inc., New York.

1 2 3 4 5 6 7 8 |

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.