Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

अवकल समीकरण के लिए रुंगे-कुट्टा चौथी क्रम नियम


परिचय

रुंगे-कुट्टा विधि का उपयोग सामान्य अवकल समीकरणों (ODE) को हल करने के लिए किया जाता है। यह x और y के लिए dy/dx फंक्शन का उपयोग करता है, और y का प्रारंभिक मान भी चाहिए, यानी y(0)। यह दिए गए x के लिए y का सन्निकट मान ढूंढता है। ODE को हल करने के लिए, हमें इन सूत्रों का पालन करना होगा:

अवकल समीकरण के लिए रुंगे-कुट्टा चौथी क्रम नियम

यहाँ h अंतराल की ऊंचाई है।

नोट: इन सूत्रों से, हम पहले दो k1 और k2 का उपयोग करके ODE के लिए रुंगे-कुट्टा दूसरी क्रम का समाधान ढूंढ सकते हैं।

इनपुट और आउटपुट

इनपुट: x0 और f(x0): 0 और 0, x का मान = 0.4, h का मान = 0.1
आउटपुट: अवकल समीकरण का उत्तर: 0.0213594

एल्गोरिदम

rungeKutta(x0, y0, x, h)
इनपुट: प्रारंभिक x और y मान, लक्षित x मान, और अंतराल की ऊंचाई h
आउटपुट: मान x के लिए y का मान

Begin
    iteration := (x – x0)/h
    y = y0
    i := 1 से iteration तक, करें
        k1 := h*f(x0, y)
        k2 := h*f((x0 + h/2), (y + k1/2))
        k3 := h*f((x0 + h/2), (y + k2/2))
        k4 := h*f((x0 + h), (y + k3))
        y := y + (1/6)*(k1 + 2k2 + 2k3 + k4)
        x0 := x0 + h
    done
    y लौटाएं
End

उदाहरण (C++ कोड)

#include <iostream>
using namespace std;

double diffOfy(double x, double y) {
    return ((x*x) + (y*y)); // फंक्शन x^2 + y^2
}

double rk4thOrder(double x0, double y0, double x, double h) {
    int iteration = int((x - x0) / h); // पुनरावृत्तियों की संख्या की गणना करें
    double k1, k2, k3, k4;
    double y = y0; // प्रारंभ में y, f(x0) है
    
    for (int i = 1; i <= iteration; i++) {
        k1 = h * diffOfy(x0, y);
        k2 = h * diffOfy((x0 + h/2), (y + k1/2));
        k3 = h * diffOfy((x0 + h/2), (y + k2/2));
        k4 = h * diffOfy((x0 + h), (y + k3));
        y += double((1.0/6.0) * (k1 + 2*k2 + 2*k3 + k4)); // del y का उपयोग करके y अपडेट करें
        x0 += h; // x0 को h से अपडेट करें
    }
    return y; // f(x) मान
}

int main() {
    double x0, y0, x, h;
    cout << "Enter x0 and f(x0): "; cin >> x0 >> y0;
    cout << "Enter x: "; cin >> x;
    cout << "Enter h: "; cin >> h;
    cout << "Answer of differential equation: " << rk4thOrder(x0, y0, x, h);
}

आउटपुट

Enter x0 and f(x0): 0 0
Enter x: 0.4
Enter h: 0.1
Answer of differential equation: 0.0213594
  1. निश्चित समाकल के लिए ट्रैपेजॉइडल नियम निश्चित समाकल के लिए ट्रैपेजॉइडल नियम

    परिचय निश्चित समाकलों को इस ट्रैपेजॉइडल नियम का उपयोग करके हल किया जा सकता है। एक फंक्शन f(x) को रेंज a से b के बीच समाकलित करना मूल रूप से वक्र के नीचे के क्षेत्रफल को बिंदु x = a से x = b तक खोजना है। उस क्षेत्रफल को खोजने के लिए, हम क्षेत्रफल को n ट्रैपेजॉइड्स में विभाजित कर सकते हैं, और प्रत्ये

  1. विंडोज 10 में OneNote से समीकरण का ग्राफ़ कैसे बनाएं विंडोज 10 में OneNote से समीकरण का ग्राफ़ कैसे बनाएं

    पिछली गर्मियों में माइक्रोसॉफ्ट ने विंडोज 10 OneNote ऐप के लिए एक दिलचस्प फीचर जारी किया था – मैथ असिस्टेंट। इस फीचर ने ऐप की उपयोगिता को बढ़ाया जो मुख्य रूप से नोट्स बनाने के लिए इस्तेमाल होता था। इसकी खासियत यह थी कि यह उपयोगकर्ताओं को हाथ से समीकरण लिखने और ऐप को उसे बदलने के साथ-साथ हल करने के च

  1. Redis लगातार चौथे वर्ष सबसे पसंदीदा डेटाबेस नामित Redis लगातार चौथे वर्ष सबसे पसंदीदा डेटाबेस नामित

    3-पीट से बेहतर क्या है? लगातार चार वर्षों तक सबसे पसंदीदा डेटाबेस नामित होना! Stack Overflow का वार्षिक डेवलपर सर्वेक्षण कोडिंग समुदाय की उनकी सबसे पसंदीदा, सबसे वांछित, और सबसे भयानक तकनीकों पर नब्ज लेता है। 65,000 से अधिक डेवलपर्स ने प्रतिक्रिया दी, इस साल अपने पारंपरिक दर्शकों से परे पहुंचने और