কম্পিউটার টিউটোরিয়াল

রঙ্গে-কুট্টা ৪র্থ অর্ডার নিয়ম (Runge-Kutta 4th order rule for differential equation)


সাধারণ ডিফারেনশিয়াল সমীকরণ (ODE) সমাধান করতে রঙ্গে-কুট্টা পদ্ধতি ব্যবহার করা হয়। এটি x এবং y এর জন্য dy/dx ফাংশন ব্যবহার করে, এবং y-এর প্রাথমিক মান, অর্থাৎ y(0)-ও প্রয়োজন। এটি প্রদত্ত x-এর জন্য y-এর সন্নিকট মান বের করে। ODE সমাধানের জন্য নিচের সূত্রাবলী অনুসরণ করতে হয়:

রঙ্গে-কুট্টা ৪র্থ অর্ডার নিয়ম (Runge-Kutta 4th order rule for differential equation)

এখানে 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-এর মান।

শুরু 
  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 
  শেষ 
  y ফেরত দিন 
শেষ

উদাহরণ

#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. সিম্পসনের ১/৩ নিয়ম (Simpson's 1/3 Rule for definite integral)

  2. ট্র্যাপেজোইডাল নিয়ম (Trapezoidal Rule for definite integral)

  3. Windows 10 OneNote-এ সমীকরণের গ্রাফ আঁকার পদ্ধতি

  4. Redis পেরোনাসার সার্ভে অনুযায়ী চার বছর ধরে Most Loved Database