Giter Club home page Giter Club logo

pdes's Introduction

pdes

The package pdes provides finite difference solvers for PDEs arising from the Feynman-Kac connection. These PDEs are connected to a stochastic process defined by an SDE which, in general, has some arbitrary drift and diffusion coefficient function of time and a state-variable (e.g. space or price). These same coefficient functions figure in the PDE itself.

Here is implemented a general solver that is passed user-defined functions that determine the dynamics of the SDE (the two coefficient functions) and the type of conditional expectation problem that figures in the Feynman-Kac connection (a discount, running-cost, and terminal cost function).

Installation

You can install the latest version from Github with the package devtools:

devtools::install_github("pdes")

Example

Here we compute the expected time a Brownian motion is positive under one time-unit of observation.

library(pdes)
region <- c(-10, 10)
maturity <- 1
dynamics <- list(drift = function(t, x) 0,
                 diffusion  = function(t, x) 1
                 )
problem <- list(discount = function(t, x) 0,
                running_cost = function(t, x) indicator(x > 0),
                terminal_cost = function(x) 0
                )
sol <- feynman_kac(region, maturity, dynamics, problem)
plot(sol$x, sol$u[100+1, ], type = "l") # Default resolution is 101x101
lines(sol$x, sol$u[75, ], lty = "dashed")
lines(sol$x, sol$u[50, ], lty = "dashed")
lines(sol$x, sol$u[25, ], lty = "dashed")

pdes's People

Contributors

shill1729 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.