डिफरेंशियल इक्वेशंस: मूल बातें से लेकर ML अनुप्रयोगों तक
डिफरेंशियल इक्वेशंस का व्यावहारिक परिचय — मुख्य प्रकार, वर्गीकरण, विश्लेषणात्मक और संख्यात्मक हल विधियाँ, और उनका ग्रेडिएंट डीसेंट, रिग्रेशन, तथा टाइम सीरीज़ मॉडलिंग में वास्तविक-world रोल।
असल में, हर बार जब आप किसी न्यूरल नेटवर्क को ट्रेन करते हैं या एक रिग्रेशन मॉडल फिट करते हैं, तो आप डिफरेंशियल इक्वेशंस के नतीजों का उपयोग कर रहे होते हैं। इसके पीछे चलने वाला गणित कैल्कुलस है, और डिफरेंशियल इक्वेशंस इसका केंद्र हैं। यदि आपने कभी सोचा है कि ग्रेडिएंट डीसेंट क्यों काम करता है, या कोई Kalman फ़िल्टर चलते हुए ऑब्जेक्ट को कैसे ट्रैक करता है — तो उसका जवाब डिफरेंशियल इक्वेशंस में है।
डिफरेंशियल इक्वेशंस आपको यह मॉडल करने देती हैं कि चीजें समय के साथ कैसे बदलती हैं — और डेटा साइंस का मूल भी यही है। एक बार जब आप मूल विचार समझ लेते हैं, तो आप उन्हें हर जगह देखेंगे: उन लॉस फ़ंक्शंस में जिन्हें आप न्यूनतम करते हैं, जिन टाइम सीरीज़ का आप पूर्वानुमान लगाते हैं, और जिन सिमुलेशनों को आप चलाते हैं।
इस लेख में, मैं बताऊंगा कि डिफरेंशियल इक्वेशंस क्या हैं, इनके मुख्य प्रकार कौन से हैं, इन्हें कैसे हल किया जाता है, और — सबसे महत्वपूर्ण — यह रोज़मर्रा की डेटा साइंस और मशीन लर्निंग में कहाँ नज़र आती हैं।
डिफरेंशियल इक्वेशंस क्या हैं?
डिफरेंशियल इक्वेशन वह समीकरण है जो किसी फ़ंक्शन को उसके अपने डेरिवेटिव्स से जोड़ता है।
सरल शब्दों में, डेरिवेटिव आपको बताता है कि किसी क्षण पर कोई मात्रा कितनी तेज़ी से बदल रही है। डिफरेंशियल इक्वेशन कहता है कि किसी मात्रा की बदलाव की दर उसी मात्रा पर, या समय पर, या दोनों पर निर्भर करती है।
मान लीजिए आप बैक्टीरिया की आबादी का मॉडल बना रहे हैं। जितने ज्यादा बैक्टीरिया होंगे, वे उतनी तेज़ी से प्रजनन करेंगे। तो वृद्धि दर मौजूदा आबादी के आकार पर निर्भर है। इसे समीकरण के रूप में लिखें, और आपके पास एक डिफरेंशियल इक्वेशन होगा।
औपचारिक रूप में, यह कुछ ऐसा दिखता है:
डिफरेंशियल इक्वेशन का निरूपण
जहाँ P आबादी है, t समय है, और r वृद्धि दर है। बाईं ओर डेरिवेटिव है — यानी P समय के साथ कितनी तेज़ी से बदलता है। दाईं ओर कहा गया है कि यह बदलाव P के ही समानुपाती है।
यही वह मूल विचार है जो हर डिफरेंशियल इक्वेशन के पीछे होता है।
डिफरेंशियल इक्वेशंस भौतिकी, जीवविज्ञान, और इंजीनियरिंग में हर जगह दिखती हैं — जहाँ भी कोई सिस्टम समय के साथ विकसित होता है। धातु की छड़ में गर्मी का फैलना, पेंडुलम का झूलना, आबादी में वायरस का फैलना — ये सब डिफरेंशियल इक्वेशंस से मॉडल किए जाते हैं।
डेटा वैज्ञानिकों के लिए, आप डिफरेंशियल इक्वेशंस को लॉस फ़ंक्शंस, ग्रेडिएंट डीसेंट, टाइम सीरीज़ मॉडल्स, न्यूरल ODEs में देखेंगे — ये सबके नीचे चलती रहती हैं। आप उन्हें हमेशा स्पष्ट रूप में नहीं देखते, लेकिन वे मौजूद रहती हैं।
जब आप इन्हें समझ लेते हैं, तो आपको यह और साफ़ दिखेगा कि जिन औज़ारों का आप रोज़ उपयोग करते हैं, वे क्यों और कैसे काम करते हैं।
डिफरेंशियल इक्वेशंस का इतिहास
17वीं शताब्दी के उत्तरार्ध में, आइज़ैक न्यूटन और गॉटफ़्रीड विल्हेल्म लीबनिज़ ने स्वतंत्र रूप से कैल्कुलस विकसित किया। दोनों को यह बताने का तरीका चाहिए था कि भौतिक मात्राएँ समय के साथ कैसे बदलती हैं, और नतीजे के रूप में डिफरेंशियल इक्वेशंस सामने आईं। न्यूटन ने उन्हें गति और गुरुत्वाकर्षण को मॉडल करने में इस्तेमाल किया। लीबनिज़ ने हमें वह बहुत-सी संकेतन दी जो हम आज भी उपयोग करते हैं, जिनमें हर कैल्कुलस पाठ्यपुस्तक में दिखने वाला d/dt भी शामिल है।
18वीं और 19वीं शताब्दियों में नई तकनीकों की लहर आई।
लियोनहार्ड ऑयलर ने ODEs को संख्यात्मक रूप से हल करने के तरीके विकसित किए — वही ऑयलर जिनके नाम पर ऑयलर की विधि है, जिसे आप आगे इस लेख में देखेंगे। जोसेफ-लुई लाग्रांज और पियरे-साइमन लाप्लास ने सिद्धांत को अधिक जटिल प्रणालियों तक बढ़ाया। जीन-बैप्टिस्ट जोसेफ फ़ूरियर ने फ़ंक्शंस को साइन और कोसाइन घटकों में विघटित करने का तरीका पेश किया, जो आंशिक डिफरेंशियल इक्वेशंस को हल करने की आधारशिला बना।
20वीं सदी तक आते-आते, डिफरेंशियल इक्वेशंस तरल गतिकी, क्वांटम यांत्रिकी से लेकर विद्युत अभियांत्रिकी तक हर जगह थीं। कई वास्तविक दुनिया की समीकरणों के साफ़-सुथरे विश्लेषणात्मक हल नहीं थे। यहीं संख्यात्मक विधियाँ हावी हुईं, और कंप्यूटरों ने उन्हें बड़े पैमाने पर व्यवहार्य बनाया।
आज, यह क्षेत्र आगे बढ़ता जा रहा है। न्यूरल ऑर्डिनरी डिफरेंशियल इक्वेशंस (Neural ODEs) न्यूरल नेटवर्क की लेयर्स को एक सतत प्रक्रिया के रूप में देखती हैं, जिसे डिफरेंशियल इक्वेशन द्वारा व्यक्त किया जाता है। यह एक हालिया विकास है जो डीप लर्निंग और शास्त्रीय गणित के बीच की रेखा को धुंधला करता है। यह आधुनिक ML शोध के अधिक रोमांचक क्षेत्रों में से एक भी है।
यह कहा जाए तो भी, मूल विचार वही रहता है: यह मॉडल करें कि चीजें कैसे बदलती हैं, और आप बता सकते हैं कि वे कहाँ जा रही हैं।
डिफरेंशियल इक्वेशंस के प्रकार
सभी डिफरेंशियल इक्वेशंस एक जैसी नहीं होतीं। पहली ज़रूरत यह जानना है कि उन्हें अलग-अलग कैसे पहचाना जाए।
मुख्य विभाजन ऑर्डिनरी डिफरेंशियल इक्वेशंस (ODEs) और पार्शियल डिफरेंशियल इक्वेशंस (PDEs) के बीच है। अंतर इस पर आता है कि फ़ंक्शन कितने स्वतंत्र चरों पर निर्भर करता है।
ऑर्डिनरी डिफरेंशियल इक्वेशंस (ODEs)
एक ऑर्डिनरी डिफरेंशियल इक्वेशन में एक ही स्वतंत्र चर के फ़ंक्शन और उसके डेरिवेटिव्स शामिल होते हैं।
पहले वाला बैक्टीरिया आबादी का उदाहरण एक ODE है। आबादी P केवल समय t पर निर्भर करती है — एक चर। इसलिए समीकरण में सिर्फ साधारण डेरिवेटिव्स हैं, जैसे dP/dt।
ODEs तब उपयुक्त हैं जब आपका सिस्टम एक ही आयाम के साथ विकसित होता है, सामान्यतः समय। यहाँ दो-तीन क्लासिक उदाहरण हैं:
जनसंख्या वृद्धि — किसी आबादी के बदलने की दर मौजूदा आबादी के आकार पर निर्भर करती है
रेडियोधर्मी क्षय — किसी पदार्थ के क्षय की दर इस पर निर्भर करती है कि उसमें कितना शेष है
न्यूटन का दूसरा नियम — किसी वस्तु का त्वरण उस पर लगने वाले बलों पर निर्भर करता है
हर मामले में, एक ही चर बदलाव को संचालित करता है। यही इसे “ऑर्डिनरी” बनाता है।
पार्शियल डिफरेंशियल इक्वेशंस (PDEs)
एक पार्शियल डिफरेंशियल इक्वेशन कई स्वतंत्र चरों के फ़ंक्शन और उसके पार्शियल डेरिवेटिव्स को शामिल करता है।
मान लीजिए आप धातु की छड़ में गर्मी कैसे फैलती है, यह मॉडल करना चाहते हैं। किसी भी बिंदु पर तापमान इस पर निर्भर करता है कि आप छड़ के entlang कहाँ हैं और समय क्या है। ये दो स्वतंत्र चर हैं: स्थिति x और समय t। जब आप इसके लिए समीकरण लिखते हैं, तो पार्शियल डेरिवेटिव्स मिलते हैं — एक x के सापेक्ष, एक t के सापेक्ष।
यह एक PDE है। हीट इक्वेशन इसके सबसे प्रसिद्ध उदाहरणों में से एक है:
आंशिक डिफरेंशियल इक्वेशन का उदाहरण
जहाँ u(x, t) स्थिति x और समय t पर तापमान है, α पदार्थ का थर्मल डिफ़्यूसिविटी है, ∂u/∂t समय के साथ तापमान कितनी तेज़ी से बदलता है, और ∂²u/∂x² यह बताता है कि अंतरिक्ष में तापमान प्रोफ़ाइल कितनी वक्र है। समीकरण कहता है कि जहाँ तापमान वक्र तेज़ मुड़ता है, वहाँ गरमी तेज़ी से पुनर्वितरित होती है। जहाँ यह सपाट है, वहाँ बहुत कम बदलाव होता है।
PDEs वहाँ दिखती हैं जहाँ कोई सिस्टम अंतरिक्ष और समय दोनों के साथ बदलता है:
गर्मी का वितरण — तापमान स्थिति और समय दोनों के साथ बदलता है
तरंग प्रसार — ध्वनि या प्रकाश तरंगें समय के साथ अंतरिक्ष में फैलती हैं
तरल गतिकी — द्रव का वेग त्रि-आयामी अंतरिक्ष में स्थिति और समय पर निर्भर करता है
PDEs को ODEs की तुलना में हल करना कठिन होता है। विश्लेषणात्मक हल केवल विशिष्ट रूपों के लिए मौजूद होते हैं, और व्यावहारिक तौर पर अक्सर संख्यात्मक विधियाँ ही रास्ता होती हैं।
ज़्यादातर डेटा साइंस कार्य में, आप ODEs से अधिक सामना करेंगे। लेकिन PDEs इमेज प्रोसेसिंग, भौतिकी सिमुलेशन, और कुछ डीप लर्निंग आर्किटेक्चर्स में दिखती हैं, इसलिए इनके फर्क को जानना ज़रूरी है।
डिफरेंशियल इक्वेशंस का ऑर्डर और डिग्री
हर डिफरेंशियल इक्वेशन की दो विशेषताएँ होती हैं जो इसकी जटिलता बताती हैं: उसका ऑर्डर और उसकी डिग्री।
ये यह निर्धारित करती हैं कि कौन-सी हल विधियाँ लागू होंगी, इसलिए किसी भी चीज़ को हल करने से पहले इन्हें पहचानना ज़रूरी है।
ऑर्डर को समझना
किसी डिफरेंशियल इक्वेशन का ऑर्डर उसमे मौजूद सबसे उच्च-क्रम के डेरिवेटिव का क्रम होता है।
यदि सबसे उच्च डेरिवेटिव प्रथम डेरिवेटिव (dy/dx) है, तो वह प्रथम-क्रम का समीकरण है। यदि सबसे उच्च द्वितीय डेरिवेटिव (d²y/dx²) है, तो यह द्वितीय-क्रम का समीकरण है। और आगे भी इसी तरह।
यह रहा पहले वाला बैक्टीरिया वृद्धि का समीकरण:
बैक्टीरिया वृद्धि का समीकरण
यहाँ सबसे उच्च डेरिवेटिव dP/dt है — एक प्रथम डेरिवेटिव। तो यह प्रथम-क्रम ODE है।
अब इसकी तुलना उस समीकरण से करें जो झूलते पेंडुलम का वर्णन करता है:
झूलते पेंडुलम का समीकरण
सबसे उच्च डेरिवेटिव d²θ/dt² है — एक द्वितीय डेरिवेटिव। यह इसे द्वितीय-क्रम ODE बनाता है।
उच्च-क्रम का मतलब अधिक जटिलता। द्वितीय-क्रम समीकरणों को हल करने के लिए एक के बजाय दो प्रारंभिक शर्तें चाहिए होती हैं। व्यवहार में, ज्यादातर भौतिक प्रणालियाँ — यांत्रिक गति, विद्युत परिपथ, कक्षीय गतिकी — द्वितीय-क्रम समीकरणों से मॉडल की जाती हैं।
डिग्री को समझना
किसी डिफरेंशियल इक्वेशन की डिग्री उसमे मौजूद सबसे उच्च-क्रम डेरिवेटिव की घात होती है, बशर्ते समीकरण को बहुपद रूप (डेरिवेटिव्स वाले रैडिकल या भिन्न के बिना) में लिखा गया हो।
यह समीकरण देखें:
उदाहरण डिफरेंशियल इक्वेशन
सबसे उच्च डेरिवेटिव dy/dx है, और यह घात 3 पर उठा है। इसलिए ऑर्डर 1 है और डिग्री 3।
अब यह देखें:
उदाहरण डिफरेंशियल इक्वेशन (2)
सबसे उच्च-क्रम डेरिवेटिव d²y/dx² है, जो घात 1 पर है। डिग्री 1 है, भले ही निम्न-क्रम डेरिवेटिव उच्च घात पर दिख रहा हो।
डिग्री हमेशा सबसे उच्च-क्रम डेरिवेटिव का अनुसरण करती है, न कि समीकरण में सबसे ऊँची घात का।
एक किनारी मामला तब है जब किसी समीकरण में sin(dy/dx) या e^(d²y/dx²) जैसे पद हों। तब डिग्री अपरिभाषित होती है — वे रूप डेरिवेटिव्स के बहुपद के रूप में व्यक्त नहीं किए जा सकते।
डिफरेंशियल इक्वेशंस को हल करने की विधियाँ
हर डिफरेंशियल इक्वेशन के लिए कोई एकल विधि काम नहीं करती। सही तरीका समीकरण के प्रकार, ऑर्डर, और क्या कोई सटीक हल मौजूद है, इस पर निर्भर करता है।
समग्र रूप से, आपके पास दो श्रेणियाँ हैं: विश्लेषणात्मक विधियाँ और संख्यात्मक विधियाँ।
विश्लेषणात्मक विधियाँ
विश्लेषणात्मक विधियाँ आपको एक सटीक, क्लोज़्ड-फ़ॉर्म हल देती हैं — एक सूत्र जिसे आप किसी भी बिंदु पर आंक सकते हैं। जब लागू हों तो इन्हें प्राथमिकता दी जाती है क्योंकि परिणाम सटीक होता है और समाधान की संरचना के बारे में कुछ बताता है।
लेकिन ये केवल विशिष्ट रूपों की समीकरणों पर काम करती हैं। जब समीकरण बहुत जटिल हो जाता है, तो विश्लेषणात्मक विधियाँ अटक जाती हैं।
वैरिएबल्स का पृथक्करण (Separation of variables)
वैरिएबल्स का पृथक्करण उन समीकरणों पर काम करता है जहाँ आप y से जुड़े सभी पदों को एक ओर और x (या t) से जुड़े सभी पदों को दूसरी ओर अलग कर सकें।
यह प्रथम-क्रम ODE लें:
सरल डिफरेंशियल इक्वेशन
कदम 1 — वैरिएबल्स को अलग करें:
विश्लेषणात्मक हल (कदम 1)
कदम 2 — दोनों ओर समाकलन (इंटीग्रेशन) करें:
विश्लेषणात्मक हल (कदम 2)
कदम 3 — y के लिए हल करें:
विश्लेषणात्मक हल (कदम 3)
जहाँ A एक कॉन्स्टेंट है जिसे प्रारंभिक शर्तें निर्धारित करती हैं। यही सामान्य हल है।
यह बैक्टीरिया वृद्धि वाले समीकरण के समान रूप है। यह बताता है कि आबादियाँ — और वे सभी चीजें जिनकी वृद्धि दर उनके आकार के समानुपाती होती है — घातीय रूप से बढ़ती हैं।
इंटीग्रेटिंग फ़ैक्टर्स
इंटीग्रेटिंग फ़ैक्टर्स इस रूप के प्रथम-क्रम रैखिक ODEs को संभालते हैं:
इंटीग्रेटिंग फ़ैक्टर्स उदाहरण (1)
विचार यह है कि दोनों ओर एक सावधानी से चुने गए फ़ंक्शन — इंटीग्रेटिंग फ़ैक्टर μ(x) — से गुणा करें ताकि बाईं ओर एक परफेक्ट डेरिवेटिव बन जाए जिसे आप सीधे समाकलित कर सकें।
इंटीग्रेटिंग फ़ैक्टर हमेशा यह होता है:
इंटीग्रेटिंग फ़ैक्टर्स उदाहरण (2)
पूरे समीकरण में गुणा करने के बाद, समीकरण यह बन जाता है:
इंटीग्रेटिंग फ़ैक्टर्स उदाहरण (3)
फिर दोनों ओर समाकलन करें और y के लिए हल करें। बाईं ओर हमेशा साफ़-सुथरे ढंग से सिकुड़ जाती है क्योंकि μ(x) को उसी तरह चुना गया था — इसी विधि का यही सार है।
संख्यात्मक विधियाँ
अधिकांश वास्तविक दुनिया की डिफरेंशियल इक्वेशंस के साफ़ विश्लेषणात्मक हल नहीं होते। संख्यात्मक विधियाँ समाधान का चरण-दर-चरण आसन्न मान निकालती हैं, और विविक्त बिंदुओं पर मानों की गणना करती हैं।
ये सटीकता के बदले सार्वभौमिकता ले आती हैं। और व्यवहार में, अक्सर यही ज़रूरत होती है।
ऑयलर की विधि
ऑयलर की विधि सबसे सरल संख्यात्मक तरीका है। विचार यह है कि किसी ज्ञात बिंदु से शुरू करें, डेरिवेटिव का उपयोग कर ढाल का अनुमान लगाएँ, उस दिशा में एक छोटा कदम लें, और दोहराते रहें।
यदि एक प्रथम-क्रम ODE dy/dx = f(x, y) हो और प्रारंभिक शर्त y(x₀) = y₀ दी गई हो, तो हर कदम कुछ यूँ दिखता है:
ऑयलर विधि उदाहरण (1)
जहाँ h स्टेप साइज है। छोटे कदम बेहतर सटीकता देते हैं — लेकिन अधिक गणना की कीमत पर।
यह रहा Python का एक इम्प्लीमेंटेशन जो dy/dx = y को y(0) = 1 के साथ हल करता है (सटीक हल y = eˣ है):
import numpy as np
import matplotlib.pyplot as plt
defeuler_method(f, x0, y0, h, n_steps):
x = np.zeros(n_steps +1)
y = np.zeros(n_steps +1)
x[0], y[0]= x0, y0
for i inrange(n_steps):
y[i+1]= y[i]+ h * f(x[i], y[i])
x[i+1]= x[i]+ h
return x, y
f =lambda x, y: y # dy/dx = y
x_euler, y_euler = euler_method(f, x0=0, y0=1, h=0.2, n_steps=20)
x_exact = np.linspace(0,4,200)
y_exact = np.exp(x_exact)संचालित द्वारा
ऑयलर विधि बनाम सटीक हल
दोनों रेखाओं के बीच का अंतर आसन्नता त्रुटि है। h=0.2 पर, त्रुटि शुरुआत में कम होती है लेकिन कदमों के साथ जमा होती जाती है — यही ऑयलर विधि की मुख्य कमजोरी है।
रुंगे-कुट्टा विधियाँ
रुंगे-कुट्टा विधियाँ उस जमा होती त्रुटि की समस्या को हल करती हैं, हर कदम के भीतर अनेक बिंदुओं पर ढाल को सैंपल करके और उनका भारित औसत लेकर। सबसे आम संस्करण RK4 — चौथे-क्रम की रुंगे-कुट्टा विधि — है।
ऑयलर की तरह हर कदम पर एक ढाल अनुमान के बजाय, RK4 चार अनुमान लगाता है:
रुंगे-कुट्टा विधि उदाहरण (1)
फिर उन्हें जोड़ता है:
रुंगे-कुट्टा विधि उदाहरण (2)
व्यवहार में, आप RK4 को हाथ से इम्प्लीमेंट नहीं करते। SciPy का solve_ivp यह आपके लिए कर देता है:
from scipy.integrate import solve_ivp
import numpy as np
import matplotlib.pyplot as plt
f =lambda x, y: y # dy/dx = y
sol = solve_ivp(f, t_span=[0,4], y0=[1], max_step=0.2)संचालित द्वारा
RK45 बनाम सटीक हल
RK45 की रेखा लगभग पूरी तरह सटीक हल के ऊपर बैठती है। ऑयलर उदाहरण जितना ही स्टेप साइज, लेकिन कहीं बेहतर सटीकता — यही फर्क भारित ढाल सैंपलिंग लाती है।
Python में अधिकांश व्यावहारिक कार्यों के लिए, डिफ़ॉल्ट RK45 सॉल्वर के साथ solve_ivp आपका मुख्य विकल्प है। ऑयलर की विधि यह समझने के लिए उपयोगी है कि संख्यात्मक सॉल्वर कैसे काम करते हैं, लेकिन आप इसे प्रोडक्शन में नहीं चलाते।
डेटा साइंस और मशीन लर्निंग में डिफरेंशियल इक्वेशंस के अनुप्रयोग
इंजीनियर इलेक्ट्रिकल सर्किट्स और मैकेनिकल सिस्टम्स को मॉडल करने के लिए डिफरेंशियल इक्वेशंस का उपयोग करते हैं। जीवविज्ञानी आबादी की गतिशीलता और रोग प्रसार को ट्रैक करने के लिए इनका उपयोग करते हैं। भौतिक विज्ञानी गर्मी के संक्रमण से लेकर क्वांटम यांत्रिकी तक सब कुछ वर्णित करने के लिए इनका उपयोग करते हैं।
लेकिन आप डेटा साइंस के लिए यहाँ हैं, तो उसी पर आते हैं।
मशीन लर्निंग और ऑप्टिमाइज़ेशन
डिफरेंशियल इक्वेशंस और ML के बीच सबसे सीधा संबंध है ग्रेडिएंट डीसेंट — लगभग हर मॉडल को ट्रेन करने के पीछे का एल्गोरिदम।
जब आप कोई मॉडल ट्रेन करते हैं, तो आप किसी लॉस फ़ंक्शन L को न्यूनतम कर रहे होते हैं। ऐसा करने के लिए, आपको जानना होता है कि प्रत्येक पैरामीटर को समायोजित करने पर L कैसे बदलता है। यह बदलाव की दर ही डेरिवेटिव है। जब आपके मॉडल में कई पैरामीटर्स होते हैं, तो आप प्रत्येक के लिए पार्शियल डेरिवेटिव निकालते हैं — और वे मिलकर ग्रेडिएंट बनाते हैं।
ग्रेडिएंट डीसेंट उन्हीं डेरिवेटिव्स का उपयोग करके चरण-दर-चरण पैरामीटर्स अपडेट करता है:
ग्रेडिएंट डीसेंट
जहाँ θ पैरामीटर है, η लर्निंग रेट है, और ∂L/∂θ उस पैरामीटर के सापेक्ष लॉस का पार्शियल डेरिवेटिव है।
यह रहा एक सरल Python उदाहरण जो ग्रेडिएंट डीसेंट से डेटा पर सीधी रेखा फिट करता है:
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(42)
X = np.linspace(0,10,100)
y =2.5* X + np.random.randn(100)*2# Initialize parameters
theta =0.0
bias =0.0
eta =0.001
n =len(X)
losses =[]for _ inrange(500):
y_pred = theta * X + bias
loss = np.mean((y_pred - y)**2)
losses.append(loss)# Partial derivatives
d_theta =(2/n)* np.sum((y_pred - y)* X)
d_bias =(2/n)* np.sum(y_pred - y)
theta -= eta * d_theta
bias -= eta * d_biasसंचालित द्वारा
डेटा पर रेखा फिट करता ग्रेडिएंट डीसेंट, और इटरेशनों पर लॉस कर्व
हर इटरेशन पैरामीटर्स को उस दिशा में ले जाता है जो लॉस को घटाती है। पार्शियल डेरिवेटिव्स बताते हैं कि वह दिशा कौन-सी है। उनके बिना, ग्रेडिएंट डीसेंट काम नहीं करता — और न ही न्यूरल नेटवर्क्स में बैकप्रोपेगेशन, जो बस लेयर्स के आर-पार चेन रूल का बार-बार प्रयोग है।
टाइम सीरीज़ विश्लेषण
कई टाइम सीरीज़ प्रणालियाँ डायनेमिक होती हैं — मौजूदा मान पिछले मानों और बदलाव की रफ़्तार पर निर्भर करता है। डिफरेंशियल इक्वेशंस आपको इसका वर्णन करने देती हैं।
Kalman फ़िल्टर, जो ट्रैकिंग और फोरकास्टिंग में व्यापक रूप से उपयोग होता है, डिफरेंशियल इक्वेशंस की एक प्रणाली पर आधारित है जो बताती है कि कोई हिडन स्टेट समय के साथ कैसे विकसित होता है और शोरयुक्त प्रेक्षण उस स्टेट से कैसे जुड़े हैं। इसका उपयोग GPS सिस्टम, वित्त, और मौसम पूर्वानुमान में होता है।
ARIMA मॉडल टाइम सीरीज़ फोरकास्टिंग के लिए उपयोग होते हैं, और डिफरेंशियल इक्वेशंस से differencing की अवधारणा के माध्यम से जुड़े हैं। किसी टाइम सीरीज़ के प्रथम या द्वितीय अंतर लेना प्रथम और द्वितीय डेरिवेटिव्स का विविक्त आसन्न मान है। जब आप किसी सीरीज़ को स्थिर बनाने के लिए differencing करते हैं, तो आप यही पूछ रहे होते हैं: यह सीरीज़ समय के साथ कैसे बदल रही है?
सांख्यिकीय मॉडलिंग और रिग्रेशन
यह अक्सर लोगों को चकित करता है: डिफरेंशियल इक्वेशंस की एक प्रणाली को हल करना लिनियर रिग्रेशन के कोएफ़िशिएंट्स निकालने का एक तरीका है।
जब आप एक लिनियर रिग्रेशन मॉडल फिट करते हैं, तो आप स्क्वेयर्ड रेजिड्युअल्स के योग को न्यूनतम कर रहे होते हैं। उस लॉस का प्रत्येक कोएफ़िशिएंट के सापेक्ष पार्शियल डेरिवेटिव लें, उन्हें शून्य के बराबर रखें, और हल करें। इससे आपको नॉर्मल इक्वेशन मिलता है:
नॉर्मल इक्वेशन
हर रिग्रेशन कोएफ़िशिएंट जो आपने कभी निकाला है, वह डेरिवेटिव को शून्य के बराबर रखकर और हल करके आया है। यही कैल्कुलस है — और यही सिद्धांत हर पैरामीट्रिक मॉडल के पीछे है जिसे आप फिट करते हैं।
लॉजिस्टिक रिग्रेशन के लिए, लॉस फ़ंक्शन क्वाड्रेटिक नहीं होता, इसलिए क्लोज़्ड-फ़ॉर्म हल नहीं होता। आपको ग्रेडिएंट डीसेंट जैसी इटरेटिव विधियाँ उपयोग करनी पड़ती हैं, जो फिर से हर कदम पर पार्शियल डेरिवेटिव्स पर निर्भर होती हैं।
संबंध और आगे जाता है। QR डीकंपोज़िशन, जो नॉर्मल इक्वेशन को हल करने की मानक संख्यात्मक विधियों में से एक है, उस रैखिक बीजगणित पर आधारित है जो सीधे-सीधे इस बात से टकराता है कि समीकरण प्रणालियाँ — जिनमें डिफरेंशियल भी शामिल हैं — व्यवहार में कैसे हल की जाती हैं।
डायनेमिक सिस्टम्स का सिमुलेशन
जब आपको यह मॉडल करना होता है कि कोई सिस्टम समय के साथ कैसे विकसित होता है — और कोई विश्लेषणात्मक हल मौजूद नहीं — तो आप उसे संख्यात्मक रूप से सिमुलेट करते हैं।
यह बिज़नेस और ऑपरेशंस संदर्भों में आम है। कस्टमर churn, इन्वेंटरी स्तर, और सप्लाई चेन डायनेमिक्स — ये सभी मौजूदा स्थिति पर आधारित बदलती मात्राएँ शामिल करते हैं। आप इन रिश्तों को डिफरेंशियल इक्वेशंस के रूप में लिख सकते हैं और solve_ivp से सिमुलेट कर सकते हैं।
यह रहा एक उदाहरण जो एक सरल माँग-आपूर्ति प्रणाली का सिमुलेशन करता है जहाँ इन्वेंटरी I माँग D के समानुपाती दर से घटती है, और माँग समय के साथ बदलती रहती है:
import numpy as np
from scipy.integrate import solve_ivp
import matplotlib.pyplot as plt
defsupply_chain(t, y):
I, D = y
dD_dt =0.1* np.sin(0.5* t)# demand fluctuates over time
dI_dt =-D # inventory depletes at the demand ratereturn[dI_dt, dD_dt]
sol = solve_ivp(
supply_chain,
t_span=[0,20],
y0=[100,5],# initial inventory=100, demand=5
max_step=0.1)संचालित द्वारा
समय के साथ उतार-चढ़ाव करती माँग के साथ इन्वेंटरी की कमी का सिमुलेशन
यही पैटर्न कस्टमर बिहेवियर मॉडलिंग, किसी यूज़र बेस में महामारी प्रसार, या किसी भी सिस्टम पर लागू होता है जहाँ बदलाव की दर मौजूदा स्थिति पर निर्भर करती है। आप रिश्ते लिखते हैं, उन्हें किसी संख्यात्मक सॉल्वर को सौंपते हैं, और बदले में एक सिमुलेशन पाते हैं।
और यही है डेटा साइंस में डिफरेंशियल इक्वेशंस की व्यावहारिक शक्ति। यह बदलती प्रणालियों को मॉडल करने का प्रत्यक्ष साधन है।
निष्कर्ष
ग्रेडिएंट डीसेंट के पीछे पार्शियल डेरिवेटिव्स हैं। टाइम सीरीज़ फोरकास्टिंग के पीछे डायनेमिक सिस्टम्स हैं। लिनियर रिग्रेशन कोएफ़िशिएंट्स के पीछे डेरिवेटिव्स को शून्य के बराबर रखना है। आपको बस यह जानना है कि कहाँ देखना है।
इस लेख में, मैंने समझाया कि डिफरेंशियल इक्वेशंस क्या हैं, ODEs और PDEs में क्या फर्क है, ऑर्डर और डिग्री उन्हें कैसे वर्गीकृत करते हैं, और उन्हें हल करने की मुख्य विधियाँ — विश्लेषणात्मक और संख्यात्मक — क्या हैं। फिर हमने देखा कि वे रोज़ की डेटा साइंस और मशीन लर्निंग में कहाँ दिखती हैं।
यह बस नींव है। यदि आप और गणित विषयों का अन्वेषण करना चाहते हैं, तो Linear Algebra for Data Science in R कोर्स एक अच्छा अगला कदम है। इन अवधारणाओं को वास्तविक डेटा समस्याओं पर हाथों-हाथ लागू करने के लिए, हमारा Quantitative Analyst in R कोर्स देखें।
क्रोएशिया में स्थित सीनियर डेटा साइंटिस्ट। 700 से अधिक प्रकाशित लेखों के साथ टॉप टेक राइटर, जिनसे 10M+ व्यूज़ प्राप्त हुए। Machine Learning Automation with TPOT के पुस्तक लेखक।
FAQs
डिफरेंशियल इक्वेशंस क्या हैं? ⌄
डिफरेंशियल इक्वेशन वह समीकरण है जो किसी फ़ंक्शन को उसके अपने डेरिवेटिव्स से जोड़ता है। यह बताता है कि कोई मात्रा समय या अंतरिक्ष के साथ कैसे बदलती है, न कि सिर्फ एक बिंदु पर उसका मान क्या है। इनका उपयोग हर उस चीज़ को मॉडल करने में होता है जो विकसित होती है — जनसंख्या वृद्धि, गर्मी का वितरण, स्टॉक की कीमतें, और वे लॉस फ़ंक्शंस जिन्हें आप ML मॉडल ट्रेन करते समय न्यूनतम करते हैं।
डिफरेंशियल इक्वेशंस का वर्गीकरण कैसे होता है? ⌄
डिफरेंशियल इक्वेशंस को प्रकार, ऑर्डर, और डिग्री के आधार पर वर्गीकृत किया जाता है। प्रकार बताता है कि क्या समीकरण एक स्वतंत्र चर (ऑर्डिनरी) या अनेक (पार्शियल) को शामिल करता है। ऑर्डर समीकरण में मौजूद सबसे उच्च डेरिवेटिव से तय होता है, और डिग्री उस सबसे उच्च-क्रम डेरिवेटिव की घात है।
डिफरेंशियल इक्वेशंस को हल करने की विश्लेषणात्मक और संख्यात्मक विधियों में क्या अंतर है? ⌄
विश्लेषणात्मक विधियाँ आपको सटीक, क्लोज़्ड-फ़ॉर्म हल देती हैं — एक सूत्र जिसे आप किसी भी बिंदु पर आंक सकते हैं। संख्यात्मक विधियाँ जैसे ऑयलर की विधि और रुंगे-कुट्टा चरण-दर-चरण समाधान का आसन्न मान निकालती हैं, जो तब उपयोगी हैं जब कोई सटीक हल मौजूद नहीं हो। व्यवहार में, अधिकांश वास्तविक दुनिया की समीकरणें विश्लेषणात्मक रूप से बहुत जटिल होती हैं, इसलिए संख्यात्मक विधियाँ — और SciPy का solve_ivp जैसे औज़ार — ही ज़्यादा उपयोग में आते हैं।
डिफरेंशियल इक्वेशंस का ग्रेडिएंट डीसेंट और बैकप्रोपेगेशन से क्या संबंध है? ⌄
ग्रेडिएंट डीसेंट मॉडल पैरामीटर्स को लॉस फ़ंक्शन के पार्शियल डेरिवेटिव्स से अपडेट करता है — मॉडल के हर पैरामीटर के लिए एक। बैकप्रोपेगेशन इन डेरिवेटिव्स को न्यूरल नेटवर्क की हर लेयर के आर-पार चेन रूल का बार-बार प्रयोग करके निकालता है। जब भी आप कोई मॉडल ट्रेन करते हैं, पार्शियल डिफरेंशियल इक्वेशंस अंदरखाने काम कर रही होती हैं, जो ऑप्टिमाइज़र को बताती हैं कि किस दिशा में बढ़ना है।
टाइम सीरीज़ फोरकास्टिंग और रिग्रेशन में डिफरेंशियल इक्वेशंस का उपयोग कैसे होता है? ⌄
टाइम सीरीज़ में, Kalman फ़िल्टर जैसे मॉडल डिफरेंशियल इक्वेशंस की प्रणालियों पर बने हैं जो बताती हैं कि कोई हिडन स्टेट समय के साथ कैसे बदलता है। ARIMA मॉडल differencing — जो डेरिवेटिव्स का विविक्त आसन्न है — का उपयोग करके सीरीज़ को स्टेशनरी बनाते हैं, और फिर फोरकास्ट करते हैं। रिग्रेशन में, कोएफ़िशिएंट्स स्वयं लॉस फ़ंक्शन के पार्शियल डेरिवेटिव्स लेकर, उन्हें शून्य के बराबर रखकर, और हल करके निकाले जाते हैं — ठीक वही जो नॉर्मल इक्वेशन करता है।
असल में, हर बार जब आप किसी न्यूरल नेटवर्क को ट्रेन करते हैं या एक रिग्रेशन मॉडल फिट करते हैं, तो आप डिफरेंशियल इक्वेशंस के नतीजों का उपयोग कर रहे होते हैं। इसके पीछे चलने वाला गणित कैल्कुलस है, और डिफरेंशियल इक्वेशंस इसका केंद्र हैं। यदि आपने कभी सोचा है कि ग्रेडिएंट डीसेंट क्यों काम करता है, या कोई Kalman फ़िल्टर चलते हुए ऑब्जेक्ट को कैसे ट्रैक करता है — तो उसका जवाब डिफरेंशियल इक्वेशंस में है।
डिफरेंशियल इक्वेशंस आपको यह मॉडल करने देती हैं कि चीजें समय के साथ कैसे बदलती हैं — और डेटा साइंस का मूल भी यही है। एक बार जब आप मूल विचार समझ लेते हैं, तो आप उन्हें हर जगह देखेंगे: उन लॉस फ़ंक्शंस में जिन्हें आप न्यूनतम करते हैं, जिन टाइम सीरीज़ का आप पूर्वानुमान लगाते हैं, और जिन सिमुलेशनों को आप चलाते हैं।
इस लेख में, मैं बताऊंगा कि डिफरेंशियल इक्वेशंस क्या हैं, इनके मुख्य प्रकार कौन से हैं, इन्हें कैसे हल किया जाता है, और — सबसे महत्वपूर्ण — यह रोज़मर्रा की डेटा साइंस और मशीन लर्निंग में कहाँ नज़र आती हैं।
डिफरेंशियल इक्वेशंस क्या हैं?
डिफरेंशियल इक्वेशन वह समीकरण है जो किसी फ़ंक्शन को उसके अपने डेरिवेटिव्स से जोड़ता है।
सरल शब्दों में, डेरिवेटिव आपको बताता है कि किसी क्षण पर कोई मात्रा कितनी तेज़ी से बदल रही है। डिफरेंशियल इक्वेशन कहता है कि किसी मात्रा की बदलाव की दर उसी मात्रा पर, या समय पर, या दोनों पर निर्भर करती है।
मान लीजिए आप बैक्टीरिया की आबादी का मॉडल बना रहे हैं। जितने ज्यादा बैक्टीरिया होंगे, वे उतनी तेज़ी से प्रजनन करेंगे। तो वृद्धि दर मौजूदा आबादी के आकार पर निर्भर है। इसे समीकरण के रूप में लिखें, और आपके पास एक डिफरेंशियल इक्वेशन होगा।
औपचारिक रूप में, यह कुछ ऐसा दिखता है:
डिफरेंशियल इक्वेशन का निरूपण
जहाँ
Pआबादी है,tसमय है, औरrवृद्धि दर है। बाईं ओर डेरिवेटिव है — यानीPसमय के साथ कितनी तेज़ी से बदलता है। दाईं ओर कहा गया है कि यह बदलावPके ही समानुपाती है।यही वह मूल विचार है जो हर डिफरेंशियल इक्वेशन के पीछे होता है।
डिफरेंशियल इक्वेशंस भौतिकी, जीवविज्ञान, और इंजीनियरिंग में हर जगह दिखती हैं — जहाँ भी कोई सिस्टम समय के साथ विकसित होता है। धातु की छड़ में गर्मी का फैलना, पेंडुलम का झूलना, आबादी में वायरस का फैलना — ये सब डिफरेंशियल इक्वेशंस से मॉडल किए जाते हैं।
डेटा वैज्ञानिकों के लिए, आप डिफरेंशियल इक्वेशंस को लॉस फ़ंक्शंस, ग्रेडिएंट डीसेंट, टाइम सीरीज़ मॉडल्स, न्यूरल ODEs में देखेंगे — ये सबके नीचे चलती रहती हैं। आप उन्हें हमेशा स्पष्ट रूप में नहीं देखते, लेकिन वे मौजूद रहती हैं।
जब आप इन्हें समझ लेते हैं, तो आपको यह और साफ़ दिखेगा कि जिन औज़ारों का आप रोज़ उपयोग करते हैं, वे क्यों और कैसे काम करते हैं।
डिफरेंशियल इक्वेशंस का इतिहास
17वीं शताब्दी के उत्तरार्ध में, आइज़ैक न्यूटन और गॉटफ़्रीड विल्हेल्म लीबनिज़ ने स्वतंत्र रूप से कैल्कुलस विकसित किया। दोनों को यह बताने का तरीका चाहिए था कि भौतिक मात्राएँ समय के साथ कैसे बदलती हैं, और नतीजे के रूप में डिफरेंशियल इक्वेशंस सामने आईं। न्यूटन ने उन्हें गति और गुरुत्वाकर्षण को मॉडल करने में इस्तेमाल किया। लीबनिज़ ने हमें वह बहुत-सी संकेतन दी जो हम आज भी उपयोग करते हैं, जिनमें हर कैल्कुलस पाठ्यपुस्तक में दिखने वाला
d/dtभी शामिल है।18वीं और 19वीं शताब्दियों में नई तकनीकों की लहर आई।
लियोनहार्ड ऑयलर ने ODEs को संख्यात्मक रूप से हल करने के तरीके विकसित किए — वही ऑयलर जिनके नाम पर ऑयलर की विधि है, जिसे आप आगे इस लेख में देखेंगे। जोसेफ-लुई लाग्रांज और पियरे-साइमन लाप्लास ने सिद्धांत को अधिक जटिल प्रणालियों तक बढ़ाया। जीन-बैप्टिस्ट जोसेफ फ़ूरियर ने फ़ंक्शंस को साइन और कोसाइन घटकों में विघटित करने का तरीका पेश किया, जो आंशिक डिफरेंशियल इक्वेशंस को हल करने की आधारशिला बना।
20वीं सदी तक आते-आते, डिफरेंशियल इक्वेशंस तरल गतिकी, क्वांटम यांत्रिकी से लेकर विद्युत अभियांत्रिकी तक हर जगह थीं। कई वास्तविक दुनिया की समीकरणों के साफ़-सुथरे विश्लेषणात्मक हल नहीं थे। यहीं संख्यात्मक विधियाँ हावी हुईं, और कंप्यूटरों ने उन्हें बड़े पैमाने पर व्यवहार्य बनाया।
आज, यह क्षेत्र आगे बढ़ता जा रहा है। न्यूरल ऑर्डिनरी डिफरेंशियल इक्वेशंस (Neural ODEs) न्यूरल नेटवर्क की लेयर्स को एक सतत प्रक्रिया के रूप में देखती हैं, जिसे डिफरेंशियल इक्वेशन द्वारा व्यक्त किया जाता है। यह एक हालिया विकास है जो डीप लर्निंग और शास्त्रीय गणित के बीच की रेखा को धुंधला करता है। यह आधुनिक ML शोध के अधिक रोमांचक क्षेत्रों में से एक भी है।
यह कहा जाए तो भी, मूल विचार वही रहता है: यह मॉडल करें कि चीजें कैसे बदलती हैं, और आप बता सकते हैं कि वे कहाँ जा रही हैं।
डिफरेंशियल इक्वेशंस के प्रकार
सभी डिफरेंशियल इक्वेशंस एक जैसी नहीं होतीं। पहली ज़रूरत यह जानना है कि उन्हें अलग-अलग कैसे पहचाना जाए।
मुख्य विभाजन ऑर्डिनरी डिफरेंशियल इक्वेशंस (ODEs) और पार्शियल डिफरेंशियल इक्वेशंस (PDEs) के बीच है। अंतर इस पर आता है कि फ़ंक्शन कितने स्वतंत्र चरों पर निर्भर करता है।
ऑर्डिनरी डिफरेंशियल इक्वेशंस (ODEs)
एक ऑर्डिनरी डिफरेंशियल इक्वेशन में एक ही स्वतंत्र चर के फ़ंक्शन और उसके डेरिवेटिव्स शामिल होते हैं।
पहले वाला बैक्टीरिया आबादी का उदाहरण एक ODE है। आबादी
Pकेवल समयtपर निर्भर करती है — एक चर। इसलिए समीकरण में सिर्फ साधारण डेरिवेटिव्स हैं, जैसेdP/dt।ODEs तब उपयुक्त हैं जब आपका सिस्टम एक ही आयाम के साथ विकसित होता है, सामान्यतः समय। यहाँ दो-तीन क्लासिक उदाहरण हैं:
हर मामले में, एक ही चर बदलाव को संचालित करता है। यही इसे “ऑर्डिनरी” बनाता है।
पार्शियल डिफरेंशियल इक्वेशंस (PDEs)
एक पार्शियल डिफरेंशियल इक्वेशन कई स्वतंत्र चरों के फ़ंक्शन और उसके पार्शियल डेरिवेटिव्स को शामिल करता है।
मान लीजिए आप धातु की छड़ में गर्मी कैसे फैलती है, यह मॉडल करना चाहते हैं। किसी भी बिंदु पर तापमान इस पर निर्भर करता है कि आप छड़ के entlang कहाँ हैं और समय क्या है। ये दो स्वतंत्र चर हैं: स्थिति
xऔर समयt। जब आप इसके लिए समीकरण लिखते हैं, तो पार्शियल डेरिवेटिव्स मिलते हैं — एकxके सापेक्ष, एकtके सापेक्ष।यह एक PDE है। हीट इक्वेशन इसके सबसे प्रसिद्ध उदाहरणों में से एक है:
आंशिक डिफरेंशियल इक्वेशन का उदाहरण
जहाँ
u(x, t)स्थितिxऔर समयtपर तापमान है,αपदार्थ का थर्मल डिफ़्यूसिविटी है,∂u/∂tसमय के साथ तापमान कितनी तेज़ी से बदलता है, और∂²u/∂x²यह बताता है कि अंतरिक्ष में तापमान प्रोफ़ाइल कितनी वक्र है। समीकरण कहता है कि जहाँ तापमान वक्र तेज़ मुड़ता है, वहाँ गरमी तेज़ी से पुनर्वितरित होती है। जहाँ यह सपाट है, वहाँ बहुत कम बदलाव होता है।PDEs वहाँ दिखती हैं जहाँ कोई सिस्टम अंतरिक्ष और समय दोनों के साथ बदलता है:
PDEs को ODEs की तुलना में हल करना कठिन होता है। विश्लेषणात्मक हल केवल विशिष्ट रूपों के लिए मौजूद होते हैं, और व्यावहारिक तौर पर अक्सर संख्यात्मक विधियाँ ही रास्ता होती हैं।
ज़्यादातर डेटा साइंस कार्य में, आप ODEs से अधिक सामना करेंगे। लेकिन PDEs इमेज प्रोसेसिंग, भौतिकी सिमुलेशन, और कुछ डीप लर्निंग आर्किटेक्चर्स में दिखती हैं, इसलिए इनके फर्क को जानना ज़रूरी है।
डिफरेंशियल इक्वेशंस का ऑर्डर और डिग्री
हर डिफरेंशियल इक्वेशन की दो विशेषताएँ होती हैं जो इसकी जटिलता बताती हैं: उसका ऑर्डर और उसकी डिग्री।
ये यह निर्धारित करती हैं कि कौन-सी हल विधियाँ लागू होंगी, इसलिए किसी भी चीज़ को हल करने से पहले इन्हें पहचानना ज़रूरी है।
ऑर्डर को समझना
किसी डिफरेंशियल इक्वेशन का ऑर्डर उसमे मौजूद सबसे उच्च-क्रम के डेरिवेटिव का क्रम होता है।
यदि सबसे उच्च डेरिवेटिव प्रथम डेरिवेटिव (
dy/dx) है, तो वह प्रथम-क्रम का समीकरण है। यदि सबसे उच्च द्वितीय डेरिवेटिव (d²y/dx²) है, तो यह द्वितीय-क्रम का समीकरण है। और आगे भी इसी तरह।यह रहा पहले वाला बैक्टीरिया वृद्धि का समीकरण:
बैक्टीरिया वृद्धि का समीकरण
यहाँ सबसे उच्च डेरिवेटिव
dP/dtहै — एक प्रथम डेरिवेटिव। तो यह प्रथम-क्रम ODE है।अब इसकी तुलना उस समीकरण से करें जो झूलते पेंडुलम का वर्णन करता है:
झूलते पेंडुलम का समीकरण
सबसे उच्च डेरिवेटिव
d²θ/dt²है — एक द्वितीय डेरिवेटिव। यह इसे द्वितीय-क्रम ODE बनाता है।उच्च-क्रम का मतलब अधिक जटिलता। द्वितीय-क्रम समीकरणों को हल करने के लिए एक के बजाय दो प्रारंभिक शर्तें चाहिए होती हैं। व्यवहार में, ज्यादातर भौतिक प्रणालियाँ — यांत्रिक गति, विद्युत परिपथ, कक्षीय गतिकी — द्वितीय-क्रम समीकरणों से मॉडल की जाती हैं।
डिग्री को समझना
किसी डिफरेंशियल इक्वेशन की डिग्री उसमे मौजूद सबसे उच्च-क्रम डेरिवेटिव की घात होती है, बशर्ते समीकरण को बहुपद रूप (डेरिवेटिव्स वाले रैडिकल या भिन्न के बिना) में लिखा गया हो।
यह समीकरण देखें:
उदाहरण डिफरेंशियल इक्वेशन
सबसे उच्च डेरिवेटिव
dy/dxहै, और यह घात 3 पर उठा है। इसलिए ऑर्डर 1 है और डिग्री 3।अब यह देखें:
उदाहरण डिफरेंशियल इक्वेशन (2)
सबसे उच्च-क्रम डेरिवेटिव
d²y/dx²है, जो घात 1 पर है। डिग्री 1 है, भले ही निम्न-क्रम डेरिवेटिव उच्च घात पर दिख रहा हो।डिग्री हमेशा सबसे उच्च-क्रम डेरिवेटिव का अनुसरण करती है, न कि समीकरण में सबसे ऊँची घात का।
एक किनारी मामला तब है जब किसी समीकरण में
sin(dy/dx)याe^(d²y/dx²)जैसे पद हों। तब डिग्री अपरिभाषित होती है — वे रूप डेरिवेटिव्स के बहुपद के रूप में व्यक्त नहीं किए जा सकते।डिफरेंशियल इक्वेशंस को हल करने की विधियाँ
हर डिफरेंशियल इक्वेशन के लिए कोई एकल विधि काम नहीं करती। सही तरीका समीकरण के प्रकार, ऑर्डर, और क्या कोई सटीक हल मौजूद है, इस पर निर्भर करता है।
समग्र रूप से, आपके पास दो श्रेणियाँ हैं: विश्लेषणात्मक विधियाँ और संख्यात्मक विधियाँ।
विश्लेषणात्मक विधियाँ
विश्लेषणात्मक विधियाँ आपको एक सटीक, क्लोज़्ड-फ़ॉर्म हल देती हैं — एक सूत्र जिसे आप किसी भी बिंदु पर आंक सकते हैं। जब लागू हों तो इन्हें प्राथमिकता दी जाती है क्योंकि परिणाम सटीक होता है और समाधान की संरचना के बारे में कुछ बताता है।
लेकिन ये केवल विशिष्ट रूपों की समीकरणों पर काम करती हैं। जब समीकरण बहुत जटिल हो जाता है, तो विश्लेषणात्मक विधियाँ अटक जाती हैं।
वैरिएबल्स का पृथक्करण (Separation of variables)
वैरिएबल्स का पृथक्करण उन समीकरणों पर काम करता है जहाँ आप y से जुड़े सभी पदों को एक ओर और
x(याt) से जुड़े सभी पदों को दूसरी ओर अलग कर सकें।यह प्रथम-क्रम ODE लें:
सरल डिफरेंशियल इक्वेशन
कदम 1 — वैरिएबल्स को अलग करें:
विश्लेषणात्मक हल (कदम 1)
कदम 2 — दोनों ओर समाकलन (इंटीग्रेशन) करें:
विश्लेषणात्मक हल (कदम 2)
कदम 3 — y के लिए हल करें:
विश्लेषणात्मक हल (कदम 3)
जहाँ
Aएक कॉन्स्टेंट है जिसे प्रारंभिक शर्तें निर्धारित करती हैं। यही सामान्य हल है।यह बैक्टीरिया वृद्धि वाले समीकरण के समान रूप है। यह बताता है कि आबादियाँ — और वे सभी चीजें जिनकी वृद्धि दर उनके आकार के समानुपाती होती है — घातीय रूप से बढ़ती हैं।
इंटीग्रेटिंग फ़ैक्टर्स
इंटीग्रेटिंग फ़ैक्टर्स इस रूप के प्रथम-क्रम रैखिक ODEs को संभालते हैं:
इंटीग्रेटिंग फ़ैक्टर्स उदाहरण (1)
विचार यह है कि दोनों ओर एक सावधानी से चुने गए फ़ंक्शन — इंटीग्रेटिंग फ़ैक्टर
μ(x)— से गुणा करें ताकि बाईं ओर एक परफेक्ट डेरिवेटिव बन जाए जिसे आप सीधे समाकलित कर सकें।इंटीग्रेटिंग फ़ैक्टर हमेशा यह होता है:
इंटीग्रेटिंग फ़ैक्टर्स उदाहरण (2)
पूरे समीकरण में गुणा करने के बाद, समीकरण यह बन जाता है:
इंटीग्रेटिंग फ़ैक्टर्स उदाहरण (3)
फिर दोनों ओर समाकलन करें और
yके लिए हल करें। बाईं ओर हमेशा साफ़-सुथरे ढंग से सिकुड़ जाती है क्योंकिμ(x)को उसी तरह चुना गया था — इसी विधि का यही सार है।संख्यात्मक विधियाँ
अधिकांश वास्तविक दुनिया की डिफरेंशियल इक्वेशंस के साफ़ विश्लेषणात्मक हल नहीं होते। संख्यात्मक विधियाँ समाधान का चरण-दर-चरण आसन्न मान निकालती हैं, और विविक्त बिंदुओं पर मानों की गणना करती हैं।
ये सटीकता के बदले सार्वभौमिकता ले आती हैं। और व्यवहार में, अक्सर यही ज़रूरत होती है।
ऑयलर की विधि
ऑयलर की विधि सबसे सरल संख्यात्मक तरीका है। विचार यह है कि किसी ज्ञात बिंदु से शुरू करें, डेरिवेटिव का उपयोग कर ढाल का अनुमान लगाएँ, उस दिशा में एक छोटा कदम लें, और दोहराते रहें।
यदि एक प्रथम-क्रम ODE
dy/dx = f(x, y)हो और प्रारंभिक शर्तy(x₀) = y₀दी गई हो, तो हर कदम कुछ यूँ दिखता है:ऑयलर विधि उदाहरण (1)
जहाँ h स्टेप साइज है। छोटे कदम बेहतर सटीकता देते हैं — लेकिन अधिक गणना की कीमत पर।
यह रहा Python का एक इम्प्लीमेंटेशन जो
dy/dx = yकोy(0) = 1के साथ हल करता है (सटीक हलy = eˣहै):ऑयलर विधि बनाम सटीक हल
दोनों रेखाओं के बीच का अंतर आसन्नता त्रुटि है।
h=0.2पर, त्रुटि शुरुआत में कम होती है लेकिन कदमों के साथ जमा होती जाती है — यही ऑयलर विधि की मुख्य कमजोरी है।रुंगे-कुट्टा विधियाँ
रुंगे-कुट्टा विधियाँ उस जमा होती त्रुटि की समस्या को हल करती हैं, हर कदम के भीतर अनेक बिंदुओं पर ढाल को सैंपल करके और उनका भारित औसत लेकर। सबसे आम संस्करण RK4 — चौथे-क्रम की रुंगे-कुट्टा विधि — है।
ऑयलर की तरह हर कदम पर एक ढाल अनुमान के बजाय, RK4 चार अनुमान लगाता है:
रुंगे-कुट्टा विधि उदाहरण (1)
फिर उन्हें जोड़ता है:
रुंगे-कुट्टा विधि उदाहरण (2)
व्यवहार में, आप RK4 को हाथ से इम्प्लीमेंट नहीं करते। SciPy का
solve_ivpयह आपके लिए कर देता है:RK45 बनाम सटीक हल
RK45 की रेखा लगभग पूरी तरह सटीक हल के ऊपर बैठती है। ऑयलर उदाहरण जितना ही स्टेप साइज, लेकिन कहीं बेहतर सटीकता — यही फर्क भारित ढाल सैंपलिंग लाती है।
Python में अधिकांश व्यावहारिक कार्यों के लिए, डिफ़ॉल्ट RK45 सॉल्वर के साथ
solve_ivpआपका मुख्य विकल्प है। ऑयलर की विधि यह समझने के लिए उपयोगी है कि संख्यात्मक सॉल्वर कैसे काम करते हैं, लेकिन आप इसे प्रोडक्शन में नहीं चलाते।डेटा साइंस और मशीन लर्निंग में डिफरेंशियल इक्वेशंस के अनुप्रयोग
इंजीनियर इलेक्ट्रिकल सर्किट्स और मैकेनिकल सिस्टम्स को मॉडल करने के लिए डिफरेंशियल इक्वेशंस का उपयोग करते हैं। जीवविज्ञानी आबादी की गतिशीलता और रोग प्रसार को ट्रैक करने के लिए इनका उपयोग करते हैं। भौतिक विज्ञानी गर्मी के संक्रमण से लेकर क्वांटम यांत्रिकी तक सब कुछ वर्णित करने के लिए इनका उपयोग करते हैं।
लेकिन आप डेटा साइंस के लिए यहाँ हैं, तो उसी पर आते हैं।
मशीन लर्निंग और ऑप्टिमाइज़ेशन
डिफरेंशियल इक्वेशंस और ML के बीच सबसे सीधा संबंध है ग्रेडिएंट डीसेंट — लगभग हर मॉडल को ट्रेन करने के पीछे का एल्गोरिदम।
जब आप कोई मॉडल ट्रेन करते हैं, तो आप किसी लॉस फ़ंक्शन
Lको न्यूनतम कर रहे होते हैं। ऐसा करने के लिए, आपको जानना होता है कि प्रत्येक पैरामीटर को समायोजित करने परLकैसे बदलता है। यह बदलाव की दर ही डेरिवेटिव है। जब आपके मॉडल में कई पैरामीटर्स होते हैं, तो आप प्रत्येक के लिए पार्शियल डेरिवेटिव निकालते हैं — और वे मिलकर ग्रेडिएंट बनाते हैं।ग्रेडिएंट डीसेंट उन्हीं डेरिवेटिव्स का उपयोग करके चरण-दर-चरण पैरामीटर्स अपडेट करता है:
ग्रेडिएंट डीसेंट
जहाँ
θपैरामीटर है,ηलर्निंग रेट है, और∂L/∂θउस पैरामीटर के सापेक्ष लॉस का पार्शियल डेरिवेटिव है।यह रहा एक सरल Python उदाहरण जो ग्रेडिएंट डीसेंट से डेटा पर सीधी रेखा फिट करता है:
डेटा पर रेखा फिट करता ग्रेडिएंट डीसेंट, और इटरेशनों पर लॉस कर्व
हर इटरेशन पैरामीटर्स को उस दिशा में ले जाता है जो लॉस को घटाती है। पार्शियल डेरिवेटिव्स बताते हैं कि वह दिशा कौन-सी है। उनके बिना, ग्रेडिएंट डीसेंट काम नहीं करता — और न ही न्यूरल नेटवर्क्स में बैकप्रोपेगेशन, जो बस लेयर्स के आर-पार चेन रूल का बार-बार प्रयोग है।
टाइम सीरीज़ विश्लेषण
कई टाइम सीरीज़ प्रणालियाँ डायनेमिक होती हैं — मौजूदा मान पिछले मानों और बदलाव की रफ़्तार पर निर्भर करता है। डिफरेंशियल इक्वेशंस आपको इसका वर्णन करने देती हैं।
Kalman फ़िल्टर, जो ट्रैकिंग और फोरकास्टिंग में व्यापक रूप से उपयोग होता है, डिफरेंशियल इक्वेशंस की एक प्रणाली पर आधारित है जो बताती है कि कोई हिडन स्टेट समय के साथ कैसे विकसित होता है और शोरयुक्त प्रेक्षण उस स्टेट से कैसे जुड़े हैं। इसका उपयोग GPS सिस्टम, वित्त, और मौसम पूर्वानुमान में होता है।
ARIMA मॉडल टाइम सीरीज़ फोरकास्टिंग के लिए उपयोग होते हैं, और डिफरेंशियल इक्वेशंस से differencing की अवधारणा के माध्यम से जुड़े हैं। किसी टाइम सीरीज़ के प्रथम या द्वितीय अंतर लेना प्रथम और द्वितीय डेरिवेटिव्स का विविक्त आसन्न मान है। जब आप किसी सीरीज़ को स्थिर बनाने के लिए differencing करते हैं, तो आप यही पूछ रहे होते हैं: यह सीरीज़ समय के साथ कैसे बदल रही है?
सांख्यिकीय मॉडलिंग और रिग्रेशन
यह अक्सर लोगों को चकित करता है: डिफरेंशियल इक्वेशंस की एक प्रणाली को हल करना लिनियर रिग्रेशन के कोएफ़िशिएंट्स निकालने का एक तरीका है।
जब आप एक लिनियर रिग्रेशन मॉडल फिट करते हैं, तो आप स्क्वेयर्ड रेजिड्युअल्स के योग को न्यूनतम कर रहे होते हैं। उस लॉस का प्रत्येक कोएफ़िशिएंट के सापेक्ष पार्शियल डेरिवेटिव लें, उन्हें शून्य के बराबर रखें, और हल करें। इससे आपको नॉर्मल इक्वेशन मिलता है:
नॉर्मल इक्वेशन
हर रिग्रेशन कोएफ़िशिएंट जो आपने कभी निकाला है, वह डेरिवेटिव को शून्य के बराबर रखकर और हल करके आया है। यही कैल्कुलस है — और यही सिद्धांत हर पैरामीट्रिक मॉडल के पीछे है जिसे आप फिट करते हैं।
लॉजिस्टिक रिग्रेशन के लिए, लॉस फ़ंक्शन क्वाड्रेटिक नहीं होता, इसलिए क्लोज़्ड-फ़ॉर्म हल नहीं होता। आपको ग्रेडिएंट डीसेंट जैसी इटरेटिव विधियाँ उपयोग करनी पड़ती हैं, जो फिर से हर कदम पर पार्शियल डेरिवेटिव्स पर निर्भर होती हैं।
संबंध और आगे जाता है। QR डीकंपोज़िशन, जो नॉर्मल इक्वेशन को हल करने की मानक संख्यात्मक विधियों में से एक है, उस रैखिक बीजगणित पर आधारित है जो सीधे-सीधे इस बात से टकराता है कि समीकरण प्रणालियाँ — जिनमें डिफरेंशियल भी शामिल हैं — व्यवहार में कैसे हल की जाती हैं।
डायनेमिक सिस्टम्स का सिमुलेशन
जब आपको यह मॉडल करना होता है कि कोई सिस्टम समय के साथ कैसे विकसित होता है — और कोई विश्लेषणात्मक हल मौजूद नहीं — तो आप उसे संख्यात्मक रूप से सिमुलेट करते हैं।
यह बिज़नेस और ऑपरेशंस संदर्भों में आम है। कस्टमर churn, इन्वेंटरी स्तर, और सप्लाई चेन डायनेमिक्स — ये सभी मौजूदा स्थिति पर आधारित बदलती मात्राएँ शामिल करते हैं। आप इन रिश्तों को डिफरेंशियल इक्वेशंस के रूप में लिख सकते हैं और
solve_ivpसे सिमुलेट कर सकते हैं।यह रहा एक उदाहरण जो एक सरल माँग-आपूर्ति प्रणाली का सिमुलेशन करता है जहाँ इन्वेंटरी
IमाँगDके समानुपाती दर से घटती है, और माँग समय के साथ बदलती रहती है:समय के साथ उतार-चढ़ाव करती माँग के साथ इन्वेंटरी की कमी का सिमुलेशन
यही पैटर्न कस्टमर बिहेवियर मॉडलिंग, किसी यूज़र बेस में महामारी प्रसार, या किसी भी सिस्टम पर लागू होता है जहाँ बदलाव की दर मौजूदा स्थिति पर निर्भर करती है। आप रिश्ते लिखते हैं, उन्हें किसी संख्यात्मक सॉल्वर को सौंपते हैं, और बदले में एक सिमुलेशन पाते हैं।
और यही है डेटा साइंस में डिफरेंशियल इक्वेशंस की व्यावहारिक शक्ति। यह बदलती प्रणालियों को मॉडल करने का प्रत्यक्ष साधन है।
निष्कर्ष
ग्रेडिएंट डीसेंट के पीछे पार्शियल डेरिवेटिव्स हैं। टाइम सीरीज़ फोरकास्टिंग के पीछे डायनेमिक सिस्टम्स हैं। लिनियर रिग्रेशन कोएफ़िशिएंट्स के पीछे डेरिवेटिव्स को शून्य के बराबर रखना है। आपको बस यह जानना है कि कहाँ देखना है।
इस लेख में, मैंने समझाया कि डिफरेंशियल इक्वेशंस क्या हैं, ODEs और PDEs में क्या फर्क है, ऑर्डर और डिग्री उन्हें कैसे वर्गीकृत करते हैं, और उन्हें हल करने की मुख्य विधियाँ — विश्लेषणात्मक और संख्यात्मक — क्या हैं। फिर हमने देखा कि वे रोज़ की डेटा साइंस और मशीन लर्निंग में कहाँ दिखती हैं।
यह बस नींव है। यदि आप और गणित विषयों का अन्वेषण करना चाहते हैं, तो Linear Algebra for Data Science in R कोर्स एक अच्छा अगला कदम है। इन अवधारणाओं को वास्तविक डेटा समस्याओं पर हाथों-हाथ लागू करने के लिए, हमारा Quantitative Analyst in R कोर्स देखें।