I have the following ItoProcess :

a = 0.1

i0 = ItoProcess[\[DifferentialD]V[t] == a*Piecewise[{{V[t] *\[DifferentialD]t, 
   V[t] < V0}, {a*V[t]^(2/3)*V0^(1/3)* \[DifferentialD]t + 
    V0^(1/3)*V[t]^(2/3)/3* \[DifferentialD]w[t], V[t] > V0}}], 
   V[t], {V, 1}, t, w \[Distributed] WienerProcess[]]

RandomFunction[i0, {0., 5., 0.01}]

But I'm getting the error message :

RandomFunction::unsproc: The specification ItoProcess[[DifferentialD]V[t]==0.1 ([Piecewise] [DifferentialD]t V[t] V[t]<1 0.1 [DifferentialD]<<1>> Power[<<2>>]+1/3 [DifferentialD]<<1>> Power[<<2>>] V[t]>=1 0 True ),V[t],{V,1},t,w[Distributed]WienerProcess[0,1]] is not a random process recognized by the system.

Is it because of the Piecewise function ? What can I do to solve that issue ?


Try this with UnitStep and a numeric value for V0:

a = 0.1
V0 = 1.0;
i0 = ItoProcess[
   \[DifferentialD]V[t] == a*Plus[
    UnitStep[V0 - V[t]] V[t]*\[DifferentialD]t,
    (1 - UnitStep[V0 - V[t]]) (a V[t]^(2/3) V0^(1/3) \[DifferentialD]t + V0^(1/3) V[t]^(2/3)/3 \[DifferentialD]w[t])
   {V, 1},
   w \[Distributed] WienerProcess[]

RandomFunction[i0, {0., 5., 0.01}]

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.