Basic Examples (33)
Delete any existing Itovsn3 definitions and initialize:
Introduce a semimartingale:
The second-order structure for X is generic, using placeholders Brktbydt[dX, dX]dt, Drftbydt[dX]dt, and Fixed[0,X] for the quadratic variation, drift, and initial condition:
ItoStatus accepts options for Grid:
Differentials don't expand automatically:
Use ItoExpand:
Find the drift:
Get initial condition:
The stochastic differential is found using ItoD:
Ito differential of X2:
Drift of d(X2) is:
Now specify a function Z of X and t that also depends on a constant (non-stochastic) u:
Ito differential of Z (for u constant) is:
Drift of above is:
Make X a standard Brownian motion. First, specify the quadratic variation:
Second, the drift:
Second-order structure reflects change:
Ito differential of X2 is now dt:
Define local martingale made out of the heat kernel:
Ito differential of p:
Drift of dp:
Introduce a new process:
Product rule:
where Brktbydt[dX,dY]dt is a placeholder for the quadratic co-variation. Specify Y is a standard Brownian motion:
Specify zero quadratic co-variation:
Or make the Brownian motions correlated:
Now we have:
More sophisticated stochastic differential:
Specify semimartingale with stochastic differential equation:
A Brownian motion X can be quickly introduced by:
Introduce two Brownian motions:
Ito integrals are the right-inverse of the stochastic differential:
Simple Ito integrals can be computed:
Scope (28)
This starts things off with basic structures, using the identifier t for time variable and the identifier dt for its differential:
This resets all structures, using ItoInit[t,dt]:
This reports current structures (stochastic differential multiplication table, list of drifts, initial values):
Introduction of semimartingales and diffusions (5)
This introduces the basic semimartingale identifier Smgl with associated basic stochastic differential identifier dSmgl:
Attempts to reintroduce semimartingale or stochastic differential identifiers are reported as errors:
This introduces and sets up a basic semimartingale identifier X with basic stochastic differential identifier dX and initial value expression X0, and satisfying the second- and first-order structure implied by the stochastic differential equation dX==sd:
Introduce a single Brownian motion:
Introduce independent Brownian motions:
Altering the second- and first-order structure, and initial value (4)
Change quadratic covariation Brktbydt[W1,W2] to rhodt/dt:
This sets Drftbydt[dX]=DriftdX/dt:
Now Drift[dX] yields DriftdX:
Change initial value:
Placeholders for structure (4)
The expression Brktbydt is a placeholder for the formal quotient by dt of the bracket differential dX dY:
Brktbydt has Orderless attribute:
The expression Drftbydt is a placeholder for the formal quotient by dt of the drift of dX:
The expression Fixed[t0,X] is a placeholder for the fixed value of the basic semimartingale X at time t0 (usually t0=0):
Ito differential, expansion, drift, initial value (5)
Use ItoD to compute the stochastic differential of a semimartingale expression f. ItoD assumes that f is a genuine semimartingale expression:
Specify f:
Use Drift to compute the drift of the stochastic differential expression df. Drift assumes that df is genuinely a stochastic differential expression:
Use InitialValue to compute the value of the expression f at time t0:
Since W1 is zero at time zero, f is also zero at time zero:
Random predicate (6)
RandomQ[x] returns True if x is an expression defined in terms of an existing semimartingale:
Make x a function of a Brownian motion:
Provide a list in the second argument of RandomQ to test if x is an expression in semimartingales or stochastic differentials excluding those given in the list:
Use BSDQ[x] to test if x is a defined semimartingale differential:
Can exclude differentials by using the second argument:
List all defined semimartingales and their differentials: