@@ -94,26 +94,25 @@ new_sol = solve(new_prob, Tsit5())
9494
9595"""
9696function change_of_variables (
97- sys:: System , iv, forward_subs, backward_subs;
98- simplify= true , t0= missing , isSDE= false
97+ sys:: System , iv, forward_subs, backward_subs;
98+ simplify = true , t0 = missing , isSDE = false
9999)
100100 t = iv
101101
102102 old_vars = first .(backward_subs)
103103 new_vars = last .(forward_subs)
104-
104+
105105 # use: f = Y(t, X)
106106 # use: dY = (∂f/∂t + μ∂f/∂x + (1/2)*σ^2*∂2f/∂x2)dt + σ∂f/∂xdW
107107 old_eqs = equations (sys)
108108 neqs = get_noise_eqs (sys)
109109 brownvars = brownians (sys)
110-
111-
110+
112111 if neqs === nothing && length (brownvars) === 0
113112 neqs = ones (1 , length (old_eqs))
114113 elseif neqs != = nothing
115114 isSDE = true
116- neqs = [neqs[i,:] for i in 1 : size (neqs,1 )]
115+ neqs = [neqs[i, :] for i in 1 : size (neqs, 1 )]
117116
118117 brownvars = map ([Symbol (:B , :_ , i) for i in 1 : length (neqs[1 ])]) do name
119118 unwrap (only (@brownians $ name))
@@ -135,9 +134,10 @@ function change_of_variables(
135134 end
136135
137136 # df/dt = ∂f/∂x dx/dt + ∂f/∂t
138- dfdt = Symbolics. derivative ( first .(forward_subs), t )
139- ∂f∂x = [Symbolics. derivative ( first (f_sub), old_var ) for (f_sub, old_var) in zip (forward_subs, old_vars)]
140- ∂2f∂x2 = Symbolics. derivative .( ∂f∂x, old_vars )
137+ dfdt = Symbolics. derivative (first .(forward_subs), t)
138+ ∂f∂x = [Symbolics. derivative (first (f_sub), old_var)
139+ for (f_sub, old_var) in zip (forward_subs, old_vars)]
140+ ∂2f∂x2 = Symbolics. derivative .(∂f∂x, old_vars)
141141 new_eqs = Equation[]
142142
143143 for (new_var, ex, first, second) in zip (new_vars, dfdt, ∂f∂x, ∂2f∂x2)
@@ -154,7 +154,7 @@ function change_of_variables(
154154 ex = substitute (ex, Dict (forward_subs))
155155 ex = substitute (ex, Dict (backward_subs))
156156 if simplify
157- ex = Symbolics. simplify (ex, expand= true )
157+ ex = Symbolics. simplify (ex, expand = true )
158158 end
159159 push! (new_eqs, Differential (t)(new_var) ~ ex)
160160 end
@@ -174,10 +174,11 @@ function change_of_variables(
174174 end
175175 end
176176
177- @named new_sys = System (vcat (new_eqs, first .(backward_subs) .~ last .(backward_subs)), t;
178- defaults= new_defs,
179- observed= observed (sys)
180- )
177+ @named new_sys = System (
178+ vcat (new_eqs, first .(backward_subs) .~ last .(backward_subs)), t;
179+ defaults = new_defs,
180+ observed = observed (sys)
181+ )
181182 if simplify
182183 return mtkcompile (new_sys)
183184 end
@@ -570,7 +571,8 @@ All accumulation variables have a default of zero.
570571function add_accumulations (sys:: System , vars:: Vector{<:Pair} )
571572 eqs = get_eqs (sys)
572573 avars = map (first, vars)
573- if (ints = intersect (avars, unknowns (sys)); ! isempty (ints))
574+ ints = intersect (avars, unknowns (sys))
575+ if ! isempty (ints)
574576 error (" $ints already exist in the system!" )
575577 end
576578 D = Differential (get_iv (sys))
0 commit comments