Skip to content

Commit 7f5674a

Browse files
Merge pull request #280 from SciML/rebuild/b9af080f
Rebuild exercises/01-workshop_exercises.jmd
2 parents fdc9cf0 + 525cd9a commit 7f5674a

File tree

4 files changed

+16
-14
lines changed

4 files changed

+16
-14
lines changed

html/exercises/01-workshop_exercises.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<HEAD>
44
<meta charset="UTF-8"/>
55
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
6-
<title>DifferentialEquations.jl Workshop Exercises</title>
6+
<title>SciML Workshop Exercises</title>
77

88

99
<script type="text/x-mathjax-config">
@@ -657,12 +657,12 @@
657657
<div class = "row">
658658
<div class = "col-md-12 twelve columns">
659659
<div class="title">
660-
<h1 class="title">DifferentialEquations.jl Workshop Exercises</h1>
660+
<h1 class="title">SciML Workshop Exercises</h1>
661661
<h5>Chris Rackauckas</h5>
662662

663663
</div>
664664

665-
<p>These exercises teach common workflows which involve DifferentialEquations.jl. The designation &#40;B&#41; is for &quot;Beginner&quot;, meaning that a user new to the package should feel comfortable trying this exercise. An exercise designated &#40;I&#41; is for &quot;Intermediate&quot;, meaning the user may want to have some previous background in DifferentialEquations.jl or try some &#40;B&#41; exercises first. The additional &#40;E&#41; designation is for &quot;Experienced&quot;, which are portions of exercises which may take some work.</p>
665+
<p>These exercises teach common workflows which involve SciML&#39;s tools like DifferentialEquations.jl, DiffEqFlux.jl, and the connections to parts like stochastic differential equations and Bayesian estimation. The designation &#40;B&#41; is for &quot;Beginner&quot;, meaning that a user new to the package should feel comfortable trying this exercise. An exercise designated &#40;I&#41; is for &quot;Intermediate&quot;, meaning the user may want to have some previous background in DifferentialEquations.jl or try some &#40;B&#41; exercises first. The additional &#40;E&#41; designation is for &quot;Experienced&quot;, which are portions of exercises which may take some work.</p>
666666
<p>The exercises are described as follows:</p>
667667
<ul>
668668
<li><p>Exercise 1 takes the user through solving a stiff ordinary differential equation and using the ModelingToolkit.jl to automatically convert the function to a symbolic form to derive the analytical Jacobian to speed up the solver. The same biological system is then solved with stochasticity, utilizing EnsembleProblems to understand 95&#37; bounds on the solution. Finally, probabilistic programming is employed to perform Bayesian parameter estimation of the parameters against data.</p>
@@ -678,7 +678,7 @@ <h5>Chris Rackauckas</h5>
678678
<li><p>Exercise 6 takes the user through training a neural stochastic differential equation, using GPU-accleration and adjoints through Flux.jl&#39;s neural network framework to build efficient training codes.</p>
679679
</li>
680680
</ul>
681-
<p>This exercise worksheet is meant to be a living document leading new users through a deep dive of the DifferentialEquations.jl feature set. If you further suggestions or want to contribute new problems, please open an issue or PR at the DiffEqTutorials.jl repository.</p>
681+
<p>This exercise worksheet is meant to be a living document leading new users through a deep dive of the DifferentialEquations.jl feature set. If you further suggestions or want to contribute new problems, please open an issue or PR at the SciMLTutorials.jl repository.</p>
682682
<h1>Problem 1: Investigating Sources of Randomness and Uncertainty in a Stiff Biological System &#40;B&#41;</h1>
683683
<p>In this problem we will walk through the basics of simulating models with DifferentialEquations.jl. Let&#39;s take the <a href="https://www.radford.edu/~thompson/vodef90web/problems/demosnodislin/Demos_Pitagora/DemoOrego/demoorego.pdf">Oregonator model of the Belousov-Zhabotinskii chemical reaction system</a>. This system describes a classical example in non-equilibrium thermodynmics and is a well-known natural chemical oscillator.</p>
684684
<h2>Part 1: Simulating the Oregonator ODE model</h2>
@@ -861,10 +861,10 @@ <h2>Part 1: Implementing the BRUSS PDE System as ODEs</h2>
861861
<p>on a timespan of <span class="math">$t \in [0,22]$</span>.</p>
862862
<p>To solve this PDE, we will discretize it into a system of ODEs with the finite difference method. We discretize <code>u</code> and <code>v</code> into arrays of the values at each time point: <code>u&#91;i,j&#93; &#61; u&#40;i*dx,j*dy&#41;</code> for some choice of <code>dx</code>/<code>dy</code>, and same for <code>v</code>. Then our ODE is defined with <code>U&#91;i,j,k&#93; &#61; &#91;u v&#93;</code>. The second derivative operator, the Laplacian, discretizes to become a tridiagonal matrix with <code>&#91;1 -2 1&#93;</code> and a <code>1</code> in the top right and bottom left corners. The nonlinear functions are then applied at each point in space &#40;they are broadcast&#41;. Use <code>dx&#61;dy&#61;1/32</code>.</p>
863863
<p>You will know when you have the correct solution when you plot the solution at <code>x&#61;y&#61;0</code> and see a periodic orbit, e.g., <code>ts&#61;0:0.05:22; plot&#40;ts, sol1.&#40;ts, idxs&#61;1&#41;&#41;</code>.</p>
864-
<p>If you are not familiar with this process, see <a href="http://juliadiffeq.org/DiffEqTutorials.jl/html/introduction/03-optimizing_diffeq_code.html">the Gierer-Meinhardt example from the DiffEqTutorials.</a></p>
864+
<p>If you are not familiar with this process, see <a href="http://juliadiffeq.org/SciMLTutorials.jl/html/introduction/03-optimizing_diffeq_code.html">the Gierer-Meinhardt example from the SciMLTutorials.</a></p>
865865
<p>Note: Start by doing the simplest implementation&#33;</p>
866866
<h2>Part 2: Optimizing the BRUSS Code</h2>
867-
<p>PDEs are expensive to solve, and so we will go nowhere without some code optimizing&#33; Follow the steps described in the <a href="http://juliadiffeq.org/DiffEqTutorials.jl/html/introduction/03-optimizing_diffeq_code.html">the Gierer-Meinhardt example from the DiffEqTutorials</a> to optimize your Brusselator code. Try other formulations and see what ends up the fastest&#33; Find a trade-off between performance and simplicity that suits your needs.</p>
867+
<p>PDEs are expensive to solve, and so we will go nowhere without some code optimizing&#33; Follow the steps described in the <a href="http://juliadiffeq.org/SciMLTutorials.jl/html/introduction/03-optimizing_diffeq_code.html">the Gierer-Meinhardt example from the SciMLTutorials</a> to optimize your Brusselator code. Try other formulations and see what ends up the fastest&#33; Find a trade-off between performance and simplicity that suits your needs.</p>
868868
<h2>Part 3: Exploiting Jacobian Sparsity with Color Differentiation</h2>
869869
<p>Use the <code>sparsity&#33;</code> function from <a href="https://github.com/JuliaDiffEq/SparseDiffTools.jl">SparseDiffTools</a> to generate the sparsity pattern for the Jacobian of this problem. Follow the documentations <a href="https://docs.juliadiffeq.org/dev/features/performance_overloads">on the DiffEqFunction page</a> to specify the sparsity pattern of the Jacobian. Generate an add the color vector to speed up the computation of the Jacobian.</p>
870870
<h2>&#40;Optional&#41; Part 4: Structured Jacobians</h2>
@@ -992,7 +992,7 @@ <h2>Part 5: Optimizing the training behavior with minibatching &#40;E&#41;</h2>
992992
<div class="footer">
993993
<p>
994994
Published from <a href="01-workshop_exercises.jmd">01-workshop_exercises.jmd</a>
995-
using <a href="http://github.com/JunoLab/Weave.jl">Weave.jl</a> v0.10.2 on 2020-07-01.
995+
using <a href="http://github.com/JunoLab/Weave.jl">Weave.jl</a> v0.10.2 on 2020-07-25.
996996
</p>
997997
</div>
998998
</div>

markdown/exercises/01-workshop_exercises.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
---
22
author: "Chris Rackauckas"
3-
title: "DifferentialEquations.jl Workshop Exercises"
3+
title: "SciML Workshop Exercises"
44
---
55

66

7-
These exercises teach common workflows which involve DifferentialEquations.jl.
7+
These exercises teach common workflows which involve SciML's tools like
8+
DifferentialEquations.jl, DiffEqFlux.jl, and the connections to parts like
9+
stochastic differential equations and Bayesian estimation.
810
The designation (B) is for "Beginner", meaning that a user new to the package
911
should feel comfortable trying this exercise. An exercise designated (I) is
1012
for "Intermediate", meaning the user may want to have some previous background
@@ -44,7 +46,7 @@ The exercises are described as follows:
4446
This exercise worksheet is meant to be a living document leading new users through
4547
a deep dive of the DifferentialEquations.jl feature set. If you further suggestions
4648
or want to contribute new problems, please open an issue or PR at the
47-
DiffEqTutorials.jl repository.
49+
SciMLTutorials.jl repository.
4850

4951
# Problem 1: Investigating Sources of Randomness and Uncertainty in a Stiff Biological System (B)
5052

@@ -451,15 +453,15 @@ at `x=y=0` and see a periodic orbit, e.g., `ts=0:0.05:22; plot(ts, sol1.(ts,
451453
idxs=1))`.
452454

453455
If you are not familiar with this process, see
454-
[the Gierer-Meinhardt example from the DiffEqTutorials.](http://juliadiffeq.org/DiffEqTutorials.jl/html/introduction/03-optimizing_diffeq_code.html)
456+
[the Gierer-Meinhardt example from the SciMLTutorials.](http://juliadiffeq.org/SciMLTutorials.jl/html/introduction/03-optimizing_diffeq_code.html)
455457

456458
Note: Start by doing the simplest implementation!
457459

458460
## Part 2: Optimizing the BRUSS Code
459461

460462
PDEs are expensive to solve, and so we will go nowhere without some code
461463
optimizing! Follow the steps described in the
462-
[the Gierer-Meinhardt example from the DiffEqTutorials](http://juliadiffeq.org/DiffEqTutorials.jl/html/introduction/03-optimizing_diffeq_code.html)
464+
[the Gierer-Meinhardt example from the SciMLTutorials](http://juliadiffeq.org/SciMLTutorials.jl/html/introduction/03-optimizing_diffeq_code.html)
463465
to optimize your Brusselator code. Try other formulations and see what ends
464466
up the fastest! Find a trade-off between performance and simplicity that suits
465467
your needs.

0 commit comments

Comments
 (0)