Qwik DiffEq Lab

Master differential equations simulations in Julia with hands-on, project-driven instruction. From ODE fundamentals to real-time Qwik Resuma...
Silay, PH
•Created byProfile picturerodavadia
4 joined
Profile picture
@rodavadiaProfile pictureJun 11
Pinned post

šŸš€ Welcome to Julia DiffEq Simulations Masterclass

Welcome to Qwik DiffEq Lab — you just made one of the best investments in your STEM career.


What You're Getting


Over 6 chapters and 18 hands-on lessons, you'll go from Julia basics to deploying interactive differential equations simulations on the web. This isn't theory-only — every lesson has runnable code, real-world examples, and practical exercises.


Here's the roadmap:


  1. Foundations — Julia environment, syntax, arrays & linear algebra

  2. ODE Fundamentals — DifferentialEquations.jl, first-order & systems of ODEs

  3. Numerical Methods — Solver selection, stiff problems, benchmarking

  4. PDEs — Finite differences, heat equation, wave equation

  5. Advanced Techniques — Stochastic & delay DEs, parameter estimation

  6. Qwik Integration — Build & deploy interactive dashboards with Qwik


How to Succeed


  • Go in order. Each chapter builds on the last. Sequential completion is required.

  • Run every code block. Reading isn't enough — type it, break it, fix it.

  • Use the Student Community chat. Ask questions, share your plots, help others.

  • Complete the final project. You'll walk away with a deployed portfolio piece.


Quick Start


Head to Chapter 1, Lesson 1 right now and get your Julia environment set up. You'll be solving your first ODE within the hour.


Let's get to work. šŸ”¬

Profile picture
@rodavadiaProfile pictureJun 11

Solve the Lorenz Attractor in Julia in 15 Lines

Most people think chaotic systems require complex code. They don't. Here's the Lorenz attractor — the most famous chaotic system in mathematics — in 15 lines of Julia:


using DifferentialEquations, Plots

function lorenz!(du, u, p, t)
    σ, ρ, β = p
    du[1] = σ * (u[2] - u[1])
    du[2] = u[1] * (ρ - u[3]) - u[2]
    du[3] = u[1] * u[2] - β * u[3]
end

u0 = [1.0, 0.0, 0.0]
p = (10.0, 28.0, 8/3)
tspan = (0.0, 100.0)

prob = ODEProblem(lorenz!, u0, p, tspan)
sol = solve(prob, Tsit5())
plot(sol, idxs=(1, 2, 3), title="Lorenz Attractor", label="")


What's happening:

  • lorenz! defines the 3 coupled ODEs (σ=10, ρ=28, β=8/3 are the classic chaotic parameters)

  • Tsit5() is a 5th-order Runge-Kutta method — fast and accurate for non-stiff problems

  • idxs=(1,2,3) plots the 3D phase space trajectory


Try this: Change u0 by 0.0001 and overlay both solutions. You'll see them diverge — that's sensitive dependence on initial conditions (the "butterfly effect").


This is Lesson 6 material in our full masterclass, where we go deep into phase portraits, solver selection, and building interactive web visualizations with Qwik.


→ Full course: 6 chapters, 18 lessons, from zero to deployed simulations.