プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

ルンゲクッタ微分方程式の4次規則


Runge Kutta法は、常微分方程式(ODE)を解くために使用されます。 xとyにdy/dx関数を使用し、yの初期値、つまりy(0)も必要です。与えられたxのyの近似値を見つけます。 ODEを解くには、次の式に従う必要があります。

ルンゲクッタ微分方程式の4次規則

ここでhは間隔の高さです。

注: これらの式から、最初の2つのk1とk2を使用して、ODEのルンゲクッタ2次解を見つけることができます。

入力と出力

Input:
The x0 and f(x0): 0 and 0
the value of x = 0.4
the value of h = 0.1
Output:
Answer of differential equation: 0.0213594

アルゴリズム

rungeKutta(x0, y0, x, h)

入力- 初期のx値とy値、ターゲットのx値、および間隔hの高さ。

出力- 値xのyの値。

Begin
   iteration := (x – x0)/h
   y = y0
   for i := 1 to iteration, do
      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
   return y
End

#include <iostream>
using namespace std;

double diffOfy(double x, double y) {
   return ((x*x)+(y*y)); //function x^2 + y^2
}

double rk4thOrder(double x0, double y0, double x, double h) {
   int iteration = int((x - x0)/h);    //calculate number of iterations
   double k1, k2, k3, k4;
   double y = y0;    //initially y is 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));    //update y using del y
      x0 += h;    //update x0 by h
   }
   return y;    //f(x) value
}

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. OneNote forWindows10で方程式をグラフ化する方法

    昨年の夏、Microsoftは Windows10OneNoteアプリの興味深い機能を公開しました –数学アシスタント。この機能は、主にメモの作成に使用されていたアプリのユーティリティを強化しました。この機能の特別な点は、ユーザーが方程式を手書きしてアプリに変換させ、それを解決するための手順を概説できることです。この機能(インテリジェントな支援)により、アプリは多くの学生の数学の家庭教師になりました。現在、より効果的に学習できるようにするための取り組みとして、アプリは優れた機能、つまりOneNoteで方程式をグラフ化する機能を備えています。 。 Windows10OneNoteで方程式のグラ

  2. Redisは4年連続で最も愛されているデータベースです

    3ピートより良いものは何ですか? 4年連続で最も愛されているデータベースに選ばれました! Stack Overflowの年次開発者調査では、コーディングコミュニティの動向を把握し、最も愛され、最も望まれ、最も恐れられているテクノロジーについて説明しています。 65,000人を超える開発者が回答し、今年は従来の視聴者を超えて、より多様な人々から意見を聞くために特別な努力を払いました。 その拡張されたコミュニティを念頭に置いて、Redisは、開発者から再び最も愛されているデータベースに選ばれたことを特に光栄に思っており、この指定を4年連続で獲得しています。また、開発者の間で全体で6番目に人気の