integrate_pde: Numerically integrate the pricing differential equation In ragtop: Pricing Equity Derivatives with Extensions of Black-Scholes

Description

Use an implicit integration scheme to numerically integrate the pricing differential equation for each of the given instruments, backwardating from time `Tmax` to time 0.

Usage

 ```1 2 3``` ```integrate_pde(z, min_num_time_steps, S0, Tmax, instruments, stock_level_fcn, discount_factor_fcn, default_intensity_fcn, variance_cumulation_fcn, dividends = NULL) ```

Arguments

 `z` Space grid value morphable to stock prices using `stock_level_fcn` `min_num_time_steps` The minimum number of timesteps used. Calls, puts and coupons may result in extra timesteps taken. `S0` Time zero price of the base equity `Tmax` The maximum time on the grid, from which all backwardation steps will take place. `instruments` A list of instruments to be priced. Each one must have a `strike` and a `optionality_fcn`, as with `GridPricedInstrument` and its subclasses. `stock_level_fcn` A function for changing space grid value to stock prices, with arguments `z` and `t` `discount_factor_fcn` A function for computing present values to time `t` of various cashflows occurring during this timestep, with arguments `T`, `t` `default_intensity_fcn` A function for computing default intensity occurring during this timestep, dependent on time and stock price, with arguments `t`, `S`. `variance_cumulation_fcn` A function for computing total stock variance occurring during this timestep, with arguments `T`, `t`. E.g. with a constant volatility s this takes the form (T-t)s^2. `dividends` A `data.frame` with columns `time`, `fixed`, and `proportional`. Dividend size at the given `time` is then expected to be equal to `fixed + proportional * S / S0`

Value

A grid of present values of derivative prices, adapted to `z` at each timestep. Time zero value will appear in the first index.

Other Implicit Grid Solver: `construct_implicit_grid_structure`, `find_present_value`, `form_present_value_grid`, `infer_conforming_time_grid`, `iterate_grid_from_timestep`, `take_implicit_timestep`, `timestep_instruments`