@@ -65,6 +65,82 @@ new_prob_p = remake(new_prob, p=pnew)
6565# 3. solve ODE
6666# 4. extract values
6767
68+ or
69+ @parameters t σ ρ β
70+ @variables x(t) y(t) z(t)
71+ D = Differential(t)
72+
73+ eqs = [D(D(x)) ~ σ*(y-x),
74+ D(y) ~ x*(ρ-z)-y,
75+ D(z) ~ x*y - β*z]
76+
77+ @named sys = ODESystem(eqs)
78+
79+ @show sys.iv
80+ @show sys.states
81+ @show sys.eqs
82+ @show sys.ps
83+
84+ # input
85+ function rhs(dx,x,t,p)
86+ dx[1] = p[1]*x[1]^2 + p[1]
87+ end
88+
89+ #
90+ function rhs(dx,x,t,p)
91+ v1 = x[1]^2
92+ v2 = p[1]*v1
93+ v3 = v2 + p[1]
94+ dx[1] = p[1]*x[1]^2 + p[1]
95+ end
96+
97+ function rhs(dx,x,t,p)
98+
99+ p1_lo = p[1] # p[1] lo unpack parameter
100+ p1_hi = p[2] # p[1] hi
101+ x1_lo = x[1] # unpack state
102+ x1_hi = x[2]
103+
104+ sqr_x1_I = Interval(x1_lo,x1_hi)^2 # rule for v[1] = x[1]^2
105+ v1_lo = sqr_x1_I.lo
106+ v1_hi = sqr_x1_I.hi
107+
108+ mul_x1p1_I = Interval(v1_lo,v1_hi)*Interval(p1_lo,p1_hi) # rule for v[2] = p[1]*v[1]
109+ v2_lo = mul_x1p1_I.lo
110+ v2_hi = mul_x1p1_I.hi
111+
112+ plus_v2p1_I = Interval(v2_lo,v2_hi) - Interval(p1_lo,p1_hi) # rule for v[3] = p[1]*v[1]
113+ v3_lo = plus_v2p1_I.lo
114+ v3_hi = plus_v2p1_I.hi
115+
116+ dx[1] = v3_lo # dx[1] lo
117+ dx[2] = v3_hi # dx[1] hi
118+
119+ nothing
120+ end
121+
122+
123+ function rhs(dx,x,t,p)
124+
125+ p1_lo = p[1] # p[1] lo unpack parameter
126+ p1_hi = p[2] # p[1] hi
127+ x1_lo = x[1] # unpack state
128+ x1_hi = x[2]
129+
130+ v1_lo = sqr_lo(x1_lo, x1_hi)
131+ v1_hi = sqr_hi(x1_lo, x1_hi)
132+
133+ v2_lo = mul_lo(v1_lo, v1_hi, p1_lo, p1_hi)
134+ v2_hi = mul_hi(v1_lo, v1_hi, p1_lo, p1_hi)
135+
136+ v3_lo = # SO ON...
137+ v3_hi =
138+
139+ dx[1] = v3_lo # dx[1] lo
140+ dx[2] = v3_hi # dx[1] hi
141+
142+ nothing
143+ end
68144
69145```
70146
0 commit comments