· 5 min read

कैसे एक पेंडुलम शिक्षण आप विभेदक समानताएं

आपको ODE सॉलर्स को समझने के लिए गणित की डिग्री की आवश्यकता नहीं है। आपको एक पेंडुलम, एक स्क्रीन और 20 मिनट की आवश्यकता है। यहाँ यूलर, RK4 और अनुकूली तरीके वास्तव में काम करते हैं - वास्तविक कोड के साथ।.

क्या आप देख सकते हैं

एक स्ट्रिंग से वजन लटकाना। इसे एक तरफ खींचो। चलो जाओ। यह झूलता है।.

आपने एक प्रणाली बनाई जो एक अंतर समीकरण द्वारा नियंत्रित है:

dt = dt dh = -(g/L)

θ कोण है। The number of the number. G गुरुत्वाकर्षण (9.81 m/s2) है। एल स्ट्रिंग की लंबाई है। ये दो लाइनें कहते हैं: कोण वेग के बराबर दर पर बदलता है, और वेग एक दर पर बदलता है जो गुरुत्वाकर्षण, लंबाई और वर्तमान कोण पर निर्भर करता है।.

समस्या: हम इस समीकरण को बिल्कुल हल नहीं कर सकते। sin(θ) इसे गैर-रैखिक बनाता है। कोई सूत्र नहीं है जो आपको किसी भी समय θ देता है। इसलिए हम अनुमान लगाते हैं - हम छोटी वृद्धि में आगे बढ़ते हैं, जो वर्तमान में अगले राज्य की गणना करते हैं।.

यही कारण है कि एक ODE सॉल्वर क्या करता है। और यह करने के लिए बेहतर और खराब तरीके हैं।.

The Euler Method: Obvious लेकिन Flawed

सबसे सरल विचार: यदि मैं राज्य को अब जानता हूं, और मुझे परिवर्तन की दर पता है, तो मैं बाद में राज्य को एक छोटा समय का अनुमान लगा सकता हूं।.

next_angle = current_angle + velocity × dt
next_velocity = current_velocity + acceleration × dt

यह यूलर की विधि है। यह फोग के माध्यम से चलना पसंद है: आप एक कदम आगे देख सकते हैं, इसलिए आप उस कदम को फिर से देख सकते हैं। कोड:

function euler(f, t, y, dt) {
  const dy = f(t, y);
  return [
    y[0] + dt * dy[0],
    y[1] + dt * dy[1]
  ];
}

समस्या: यूलर की विधि पहले क्रम में सटीक है। इसका मतलब है कि यदि आप चरण आकार को हल करते हैं, तो आप त्रुटि को हल करते हैं। एक पेंडुलम के लिए, यह त्रुटि जमा हो जाती है - नकली पेंडुलम धीरे-धीरे ऊर्जा प्राप्त करता है और व्यापक और व्यापक स्विंग करता है। कुछ मिनट के बाद, यह पूर्ण चक्रों में कताई है। एक वास्तविक पेंडुलम कभी ऐसा नहीं करता है।.

RK4: The Workhorse

1901 में कार्ल रनगे और मार्टिन कुट्टा ने एक बेहतर विधि प्रकाशित की। प्रति कदम एक बार परिवर्तन की दर को देखने के बजाय, इसे चार बार देखें:

  1. चरण → k1 के प्रारंभ में ढलान को मापें
  2. चरण आधे रास्ते k1 का उपयोग कर, वहाँ ढलान को मापने → k2
  3. चरण आधे रास्ते k2 का उपयोग कर, फिर से माप → k3
  4. K3 का उपयोग करते हुए अंत में कदम, एक और समय को मापें → k4
  5. संयोजन: भारित औसत (k1 + 2k2 + 2k3 + k4) / 6

यह चौथा क्रम सटीक है। चरण आकार को हल करें और त्रुटि 16 के एक कारक द्वारा गिर जाती है। पेंडुलम हजारों झूलों के लिए सही ढंग से ऊर्जा का संरक्षण करता है।.

function rk4(f, t, y, dt) {
  const k1 = f(t, y);
  const k2 = f(t + dt/2, [y[0] + dt/2 * k1[0], y[1] + dt/2 * k1[1]]);
  const k3 = f(t + dt/2, [y[0] + dt/2 * k2[0], y[1] + dt/2 * k2[1]]);
  const k4 = f(t + dt,   [y[0] + dt   * k3[0], y[1] + dt   * k3[1]]);
  return [
    y[0] + (dt/6) * (k1[0] + 2*k2[0] + 2*k3[0] + k4[0]),
    y[1] + (dt/6) * (k1[1] + 2*k2[1] + 2*k3[1] + k4[1])
  ];
}

यह तरीका है PinePaper पेंडुलम, स्प्रिंग-मास और वैन डेर पोल सिमुलेशन के लिए उपयोग करता है। यह एक ही विधि है जिसका उपयोग एयरोस्पेस ट्रेजेक्टरी गणना में किया जाता है। कोड की 22 लाइनें।.

क्यों यह भौतिकी के बाहर मामला

पेंडुलम एक शिक्षण उदाहरण है। लेकिन एक ही तकनीक - कदम आगे, माप, सही - कहीं भी लागू होता है आप परिवर्तन की दर है:

  • ** Population वृद्धि*: dx/dt = r·x·(1 - x/K). ले जाने की क्षमता के साथ लॉजिस्टिक ग्रोथ। समान सॉल्वर।.
  • ** रासायनिक प्रतिक्रियाओं*: सांद्रता वर्तमान सांद्रता के बराबर दरों पर बदल जाती है। समान सॉल्वर।.
  • ** तंत्रिका नेटवर्क **: ढाली वंश एक विसर्जित ODE है। प्रत्येक प्रशिक्षण चरण हानि की सतह के साथ एक यूलर कदम है।.
  • ** Economics*: ब्याज यौगिकों लगातार dy/dt = r·y के माध्यम से। एक्सपोनेंशियल ग्रोथ सबसे सरल ODE है।.
  • ** एनिमेशन टाइमिंग*: आसान वक्र वसंत-डैम्पर ODEs के समाधान हैं। CSS में "elastic" और "bounce" easing भौतिक सिमुलेशन हैं।.

गणित नहीं बदलता है। डोमेन करता है। यही कारण है कि यह एक भाषा बनाता है - एक ही व्याकरण भेड़ गिनती, पेंडुलम स्विंग्स और तंत्रिका नेटवर्क प्रशिक्षण का वर्णन करता है।.

अपने आप को आज़माएं

PinePaper खोलें और गतिशील सिस्टम जनरेटर का चयन करें। "pendulum" चुनें। बॉब स्विंग्स। अब मापदंडों को बदल दें:

  • ग्रेविटी बढ़ाएं → तेज स्विंग (लघु अवधि)
  • वृद्धि रॉड लंबाई → धीमी गति से स्विंग (लंबी अवधि)
  • एक बड़े कोण पर शुरू करें → देखें कि कैसे अवधि बढ़ जाती है (nonlinear प्रभाव कि पाठ्यपुस्तक छोटे कोण अनुमान याद आती है)

आपके द्वारा किए गए हर बदलाव का माप है। आपने एक पैरामीटर बदल दिया और परिणाम देखा। RK4 सॉल्वर ने प्रति सेकंड 30 फ्रेम को दोहराया और पेंडुलम ने आपको दिखाया कि समीकरण क्या भविष्यवाणी करता है।.

यह पूरी बात है। गणित माप है। PinePaper इसे दिखाई देता है।.

Interactive demo — open in editor pp:PinePaper

संदर्भ

  • कसाई, जे.सी. (2016)। * साधारण अंतर समीकरण के लिए न्यूमेरिकल तरीके* (3rd ed)। विली.
  • डॉर्मैंड, जे आर एंड प्रिंस, पी जे (1980)। एम्बेडेड Runge-Kutta फार्मूला का एक परिवार। * संगणक और अनुप्रयुक्त गणित का जर्नल*, 6(1), 19-26.
  • यूलर, एल (1768)। * इंस्टीट्यूशनम कैलक्यूली इंटीग्रलिस *, वॉल्यूम 1. इम्पेंसिस अकाडेमिया इंपीरियलिस Scientiarum।.
  • हेयरर, ई., नॉर्सेट, एस.पी., और वानर, जी. (1993)। I: Nonstiff Problems* (2nd ed)। स्प्रिंगर.
  • कुट्टा, डब्ल्यू (1901). Beitrag zur näherungswisen इंटीग्रेशन टोटल डिफरेंशियलग्लिकहैंगन। * Zeitschrift für Mathematik und Physik*, 46,435-453.
  • न्यूटन, I (1687)। Philosophiæ Naturalis Principia Mathematica. लंदन: जोसेफ Streater।.
  • रनगे, सी (1895)। Über मर numerische Auflösung von Differentialgleichungen. * Mathematische Annalen*, 46 (2), 167-178.
  • Strogatz, SH (2015)। * Nonlinear Dynamics and Chaos* (2nd ed)। वेस्टव्यू प्रेस.

  • PinePaper के ODE सॉलर में लगभग 200 लाइनों में यूलर, RK4 और अनुकूली डॉर्मैंड-प्रिंस RK45 शामिल हैं। pinepaper.studio/editor पर मुफ्त पेंडुलम सिमुलेशन की कोशिश करें।

Ready to create?

Start making animated GIFs, videos, and graphics — free, no signup.

Open PinePaper Editor