5.4.23 · HinglishScientific Computing (Python)

Implementing ODE solvers from scratch — Euler, RK4

1,748 words8 min readRead in English

5.4.23 · Coding › Scientific Computing (Python)


KAUNSA problem solve kar rahe hain?

WHY discretize? Zyaadatar real ka koi closed-form integral nahi hota. Lekin slope hamesha compute ho sakta hai. Toh hum aage chhoti-chhoti seedhi lakeeron mein chalte hain.


Euler's Method — first principles se derive karna

se tak kaise jaate hain? Derivative ki definition use karo:

Limit hatao (ek finite use karo) aur solve karo:

Equivalently Taylor expansion se: Chhhoda hua term hai per steplocal truncation error . steps mein errors accumulate hokar global error ban jaata hai. aadha karo → error aadha ho jaata hai. Yeh slow hai.

def euler(f, t0, y0, h, n):
    t, y = t0, y0
    ts, ys = [t], [y]
    for _ in range(n):
        y = y + h * f(t, y)   # one slope, whole step
        t = t + h
        ts.append(t); ys.append(y)
    return ts, ys

RK4 — chaar slopes ka average

Behtar kyun karein? Euler slope sirf interval ke left end par use karta hai, isliye jab curve modta hai toh consistently over/undershoot karta hai. RK4 slope ko start par, middle mein (do baar), aur end mein sample karta hai, phir ek weighted average leta hai — yeh integral ke liye Simpson's rule se analogous hai.

Weights kyun? Sum hai, isliye ek sach mein weighted mean slope hai. RK4 do alag midpoint slopes () use karta hai, jinhe weight diya jaata hai, kyunki midpoint ke upar average behaviour best represent karta hai. Yeh Simpson's rule se analogous hai (jo endpoint–midpoint–endpoint ko weight deta hai): dono interval ke middle par extra weight daalte hain. RK4 Simpson ke ek "" ko do midpoint evaluations mein split karta hai jo milke weight carry karte hain. Taylor series ko tak match karna exactly yahi coefficients force karta hai.

  • Local truncation error , global error .
  • aadha karo → error girta hai. Isliye RK4 practical computing ka workhorse hai.
def rk4(f, t0, y0, h, n):
    t, y = t0, y0
    ts, ys = [t], [y]
    for _ in range(n):
        k1 = f(t,         y)
        k2 = f(t + h/2,   y + h/2 * k1)
        k3 = f(t + h/2,   y + h/2 * k2)
        k4 = f(t + h,     y + h   * k3)
        y = y + (h/6) * (k1 + 2*k2 + 2*k3 + k4)
        t = t + h
        ts.append(t); ys.append(y)
    return ts, ys
Figure — Implementing ODE solvers from scratch — Euler, RK4

Worked Example 1 — , (true: )

lo, ek step, nikalo.

Euler: . Kyun? Ek left-slope step. True value → error . Bahut zyaada!

RK4:

  • kyun? slope = = 1.
  • kyun? use karke half-step se nudge karo.
  • kyun? use karke midpoint refine karo.
  • kyun? use karke end slope nikalo.
  • .

Error same step size ke saath Euler se 70× behtar.


Worked Example 2 — error scaling check (, integrate to )

Method error error ratio
Euler (matches )
RK4 (matches )

Yeh kyun matter karta hai: aadha karna Euler ko sirf do baar help karta hai lekin RK4 ko sola baar — yehi poori wajah hai ki RK4 practical computing mein dominant kyun hai.



Recall Feynman: ek 12-saal ke bachhe ko samjhao

Socho aap kohrе mein chal rahe ho jahaan ek chhota compass bilkul wahaan batata hai kaunsi taraf step karna hai jahan tum khade ho. Euler bas us ek reading par trust karta hai aur poora step chalta hai — lekin agar raasta modta hai, toh tum bhatak jaate ho. RK4 zyaada samajhdaar hai: tum middle mein jhankate ho, phir dobara jhankate ho, phir door waale end mein jhankate ho, phir step lene se pehle un saari compass readings ka average lete ho. Chaar jhankon ka average tumhe path par almost bilkul sahi rakhhta hai.


Flashcards

Euler aur RK4 kaun sa ODE form solve karte hain?
Ek IVP: jisme hai, spacing par aage step karke.
Forward Euler update likhо.
.
Euler apna slope kahaan se leta hai?
Sirf left endpoint par, jo step ke upar constant maana jaata hai.
Euler ki global error order?
(local truncation ).
RK4 ke chaar stages likhо.
; ; ; .
RK4 final update formula?
.
Weights 1,2,2,1 kyun?
Slopes ka weighted mean (sum 6); do midpoint slopes har ek double count hote hain (total 4) — Simpson's rule ke middle weight se analogous; Taylor series ko tak match karne se exactly yahi coefficients force hote hain.
Kya RK4 weights Simpson's se identical hain?
Nahi — analogous hain, identical nahi. RK4 use karta hai do midpoint evaluations ke saath jinke weights ka sum 4 hai.
RK4 global error order?
aadha karne se error ~16× girta hai.
Har RK4 stage kis pichle stage par build karta hai?
use karta hai, use karta hai, use karta hai — sequential hai, sab se nahi.
Equal accuracy par RK4 Euler se sasta kyun hai?
Euler cost ~, RK4 ~; char -calls per step bahut zyaada accuracy khareedti hain.

Connections

  • Taylor Series Expansion — dono methods ise truncate karke derive hote hain.
  • Simpson's Rule — RK4 weights isse analogous hain.
  • Finite Difference Approximation of Derivatives — Euler forward difference hai.
  • Numerical Stability and Stiff ODEs — kyun explicit methods blow up kar sakte hain.
  • Adaptive Step Size (RK45 / Dormand–Prince) — RK4 ka practical extension.
  • scipy.integrate.solve_ivp — jo humne banaya uska library version.

Concept Map

slope given by

approximate at

no closed form so

derivative definition

Taylor expansion

one slope whole step

accumulates over N steps

slow so improve

samples 4 slopes

weighted mean 1,2,2,1

analogous to

Initial Value Problem

f t,y

Discrete points step h

Forward Euler

Local error O h^2

Global error O h

Classical RK4

k1 k2 k3 k4

y_n+1 update

Simpson 1/3 rule