@@ -44,26 +44,27 @@ using DifferentialEquations, ModelingToolkit
44
44
@variables x (t) y (t) z (t)
45
45
D = Differential (t)
46
46
47
- eqs = [D (D (x)) ~ σ* (y - x),
48
- D (y) ~ x* (ρ - z) - y,
49
- D (z) ~ x* y - β* z]
47
+ eqs = [D (D (x)) ~ σ * (y - x),
48
+ D (y) ~ x * (ρ - z) - y,
49
+ D (z) ~ x * y - β * z]
50
50
51
51
@named sys = ODESystem (eqs)
52
52
sys = structural_simplify (sys)
53
53
54
54
u0 = [D (x) => 2.0 ,
55
- x => 1.0 ,
56
- y => 0.0 ,
57
- z => 0.0 ]
55
+ x => 1.0 ,
56
+ y => 0.0 ,
57
+ z => 0.0 ]
58
58
59
- p = [σ => 28.0 ,
60
- ρ => 10.0 ,
61
- β => 8 / 3 ]
59
+ p = [σ => 28.0 ,
60
+ ρ => 10.0 ,
61
+ β => 8 / 3 ]
62
62
63
- tspan = (0.0 ,100.0 )
64
- prob = ODEProblem (sys,u0,tspan,p, jac= true )
63
+ tspan = (0.0 , 100.0 )
64
+ prob = ODEProblem (sys, u0, tspan, p, jac = true )
65
65
sol = solve (prob)
66
- using Plots; plot (sol,idxs= (x,y))
66
+ using Plots
67
+ plot (sol, idxs = (x, y))
67
68
```
68
69
69
70
![ Lorenz2] ( https://user-images.githubusercontent.com/1814174/79118645-744eb580-7d5c-11ea-9c37-13c4efd585ca.png )
@@ -81,42 +82,44 @@ using DifferentialEquations, ModelingToolkit
81
82
@variables x (t) y (t) z (t)
82
83
D = Differential (t)
83
84
84
- eqs = [D (x) ~ σ* (y - x),
85
- D (y) ~ x* (ρ - z) - y,
86
- D (z) ~ x* y - β* z]
85
+ eqs = [D (x) ~ σ * (y - x),
86
+ D (y) ~ x * (ρ - z) - y,
87
+ D (z) ~ x * y - β * z]
87
88
88
89
@named lorenz1 = ODESystem (eqs)
89
90
@named lorenz2 = ODESystem (eqs)
90
91
91
92
@variables a (t)
92
93
@parameters γ
93
- connections = [0 ~ lorenz1. x + lorenz2. y + a* γ]
94
- @named connected = ODESystem (connections,t,[a],[γ],systems= [lorenz1,lorenz2])
94
+ connections = [0 ~ lorenz1. x + lorenz2. y + a * γ]
95
+ @named connected = ODESystem (connections, t, [a], [γ], systems = [lorenz1, lorenz2])
96
+ sys = structural_simplify (connected)
95
97
96
98
u0 = [lorenz1. x => 1.0 ,
97
- lorenz1. y => 0.0 ,
98
- lorenz1. z => 0.0 ,
99
- lorenz2. x => 0.0 ,
100
- lorenz2. y => 1.0 ,
101
- lorenz2. z => 0.0 ,
102
- a => 2.0 ]
103
-
104
- p = [lorenz1. σ => 10.0 ,
105
- lorenz1. ρ => 28.0 ,
106
- lorenz1. β => 8 / 3 ,
107
- lorenz2. σ => 10.0 ,
108
- lorenz2. ρ => 28.0 ,
109
- lorenz2. β => 8 / 3 ,
110
- γ => 2.0 ]
111
-
112
- tspan = (0.0 ,100.0 )
113
- prob = ODEProblem (connected, u0,tspan,p)
99
+ lorenz1. y => 0.0 ,
100
+ lorenz1. z => 0.0 ,
101
+ lorenz2. x => 0.0 ,
102
+ lorenz2. y => 1.0 ,
103
+ lorenz2. z => 0.0 ,
104
+ a => 2.0 ]
105
+
106
+ p = [lorenz1. σ => 10.0 ,
107
+ lorenz1. ρ => 28.0 ,
108
+ lorenz1. β => 8 / 3 ,
109
+ lorenz2. σ => 10.0 ,
110
+ lorenz2. ρ => 28.0 ,
111
+ lorenz2. β => 8 / 3 ,
112
+ γ => 2.0 ]
113
+
114
+ tspan = (0.0 , 100.0 )
115
+ prob = ODEProblem (sys, u0, tspan, p)
114
116
sol = solve (prob)
115
117
116
- using Plots; plot (sol,idxs= (a,lorenz1. x,lorenz2. z))
118
+ using Plots
119
+ plot (sol, idxs = (a, lorenz1. x, lorenz2. z))
117
120
```
118
121
119
- ![ ] ( https://user-images.githubusercontent.com/1814174/110242538-87461780-7f24-11eb-983c-4b2c93cfc909 .png )
122
+ ![ ] ( https://user-images.githubusercontent.com/17304743/187790221-528046c3-dbdb-4853-b977-799596c147f3 .png )
120
123
121
124
# Citation
122
125
If you use ModelingToolkit.jl in your research, please cite [ this paper] ( https://arxiv.org/abs/2103.05244 ) :
0 commit comments