2
2
3
3
f = (t,u) -> 1.01 * u
4
4
σ = (t,u) -> 0.87 * u
5
- analytic = ( t,u0,W) -> u0.* exp .(0.63155 * t+ 0.87 * W)
5
+ (p :: typeof (f))( :: Type{Val{:analytic}} , t,u0,W) = u0.* exp .(0.63155 * t+ 0.87 * W)
6
6
"""
7
7
```math
8
8
du_t = βudt + αudW_t
@@ -14,7 +14,7 @@ u(t,u0,W_t)=u0\\exp((α-\\frac{β^2}{2})t+βW_t)
14
14
```
15
15
16
16
"""
17
- prob_sde_linear = SDETestProblem (f,σ,1 / 2 ,analytic )
17
+ prob_sde_linear = SDEProblem (f,σ,1 / 2 ,( 0.0 , 1.0 ) )
18
18
19
19
f = (t,u,du) -> begin
20
20
for i = 1 : length (u)
26
26
du[i] = .87 * u[i]
27
27
end
28
28
end
29
+ (p:: typeof (f))(:: Type{Val{:analytic}} ,t,u0,W) = u0.* exp .(0.63155 * t+ 0.87 * W)
29
30
"""
30
31
8 linear SDEs (as a 4x2 matrix):
31
32
@@ -38,12 +39,12 @@ where β=1.01, α=0.87, and initial condtion u0=1/2 with solution
38
39
u(t,u0,W_t)=u0\\ exp((α-\\ frac{β^2}{2})t+βW_t)
39
40
```
40
41
"""
41
- prob_sde_2Dlinear = SDETestProblem (f,σ,ones (4 ,2 )/ 2 ,analytic )
42
+ prob_sde_2Dlinear = SDEProblem (f,σ,ones (4 ,2 )/ 2 ,( 0.0 , 1.0 ) )
42
43
43
44
44
45
f = (t,u) -> - .25 * u* (1 - u^ 2 )
45
46
σ = (t,u) -> .5 * (1 - u^ 2 )
46
- analytic = ( t,u0,W) -> ((1 + u0). * exp .(W)+ u0- 1 ). / ((1 + u0). * exp .(W)+ 1 - u0)
47
+ (p :: typeof (f))( :: Type{Val{:analytic}} , t,u0,W) = ((1 + u0). * exp .(W)+ u0- 1 ). / ((1 + u0). * exp .(W)+ 1 - u0)
47
48
"""
48
49
```math
49
50
du_t = \\ frac{1}{4}u(1-u^2)dt + \\ frac{1}{2}(1-u^2)dW_t
@@ -55,11 +56,11 @@ and initial condtion u0=1/2, with solution
55
56
u(t,u0,W_t)=\\ frac{(1+u0)\\ exp(W_t)+u0-1}{(1+u0)\\ exp(W_t)+1-u0}
56
57
```
57
58
"""
58
- prob_sde_cubic = SDETestProblem (f,σ,1 / 2 ,analytic )
59
+ prob_sde_cubic = SDEProblem (f,σ,1 / 2 ,( 0.0 , 1.0 ) )
59
60
60
61
f = (t,u) -> - 0.01 * sin .(u).* cos .(u).^ 3
61
62
σ = (t,u) -> 0.1 * cos .(u).^ 2
62
- analytic = ( t,u0,W) -> atan .(0.1 * W + tan .(u0))
63
+ (p :: typeof (f))( :: Type{Val{:analytic}} , t,u0,W) = atan .(0.1 * W + tan .(u0))
63
64
"""
64
65
```math
65
66
du_t = -\\ frac{1}{100}\s in(u)\c os^3(u)dt + \\ frac{1}{10}\c os^{2}(u_t) dW_t
@@ -71,13 +72,13 @@ and initial condition `u0=1.0` with solution
71
72
u(t,u0,W_t)=\\ arctan(\\ frac{W_t}{10} + \\ tan(u0))
72
73
```
73
74
"""
74
- prob_sde_wave = SDETestProblem (f,σ,1. ,analytic )
75
+ prob_sde_wave = SDEProblem (f,σ,1. ,( 0.0 , 1.0 ) )
75
76
76
77
const sde_wave_α = 0.1
77
78
const sde_wave_β = 0.05
78
79
f = (t,u) -> sde_wave_β./ sqrt .(1 + t) - u./ (2 * (1 + t))
79
80
σ = (t,u) -> sde_wave_α* sde_wave_β./ sqrt .(1 + t)
80
- analytic = ( t,u0,W) -> u0./ sqrt .(1 + t) + sde_wave_β* (t+ sde_wave_α* W). / sqrt .(1 + t)
81
+ (p :: typeof (f))( :: Type{Val{:analytic}} , t,u0,W) = u0./ sqrt .(1 + t) + sde_wave_β* (t+ sde_wave_α* W). / sqrt .(1 + t)
81
82
82
83
"""
83
84
Additive noise problem
@@ -92,7 +93,7 @@ and initial condition u0=1.0 with α=0.1 and β=0.05, with solution
92
93
u(t,u0,W_t)=\\ frac{u0}{\\ sqrt{1+t}} + \\ frac{β(t+αW_t)}{\\ sqrt{1+t}}
93
94
```
94
95
"""
95
- prob_sde_additive = SDETestProblem (f,σ,1. ,analytic )
96
+ prob_sde_additive = SDEProblem (f,σ,1. ,( 0.0 , 1.0 ) )
96
97
97
98
const sde_wave_αvec = [0.1 ;0.1 ;0.1 ;0.1 ]
98
99
const sde_wave_βvec = [0.5 ;0.25 ;0.125 ;0.1115 ]
@@ -107,13 +108,13 @@ end
107
108
du[i] = sde_wave_αvec[i]* sde_wave_βvec[i]/ sqrt (1 + t)
108
109
end
109
110
end
110
- analytic = ( t,u0,W) -> u0./ sqrt (1 + t) + sde_wave_βvec.* (t+ sde_wave_αvec.* W). / sqrt (1 + t)
111
+ (p :: typeof (f))( :: Type{Val{:analytic}} , t,u0,W) = u0./ sqrt (1 + t) + sde_wave_βvec.* (t+ sde_wave_αvec.* W). / sqrt (1 + t)
111
112
112
113
"""
113
114
A multiple dimension extension of `additiveSDEExample`
114
115
115
116
"""
116
- prob_sde_additivesystem = SDETestProblem (f,σ,[1. ;1. ;1. ;1. ],analytic )
117
+ prob_sde_additivesystem = SDEProblem (f,σ,[1. ;1. ;1. ;1. ],( 0.0 , 1.0 ) )
117
118
118
119
f = @ode_def_nohes LorenzSDE begin
119
120
dx = σ* (y- x)
0 commit comments