Computer >> Máy Tính >  >> Lập trình >> C ++

Phương pháp Euler để giải phương trình vi phân trong C ++

Trong bài toán này, chúng ta được đưa ra một phương trình vi phân f (x, y) =dy / dx với giá trị ban đầu y (x 0 ) =y 0 . Nhiệm vụ của chúng tôi là tìm nghiệm của phương trình bằng phương pháp Euler để giải phương trình vi phân.

PHƯƠNG PHÁP EULER

Phương pháp Euler còn được gọi là Phương pháp euler chuyển tiếp là một thủ tục số bậc nhất để tìm nghiệm của phương trình vi phân đã cho bằng cách sử dụng giá trị ban đầu đã cho.

Đối với phương trình vi phân f (x, y) =dy / dx. Phương thức Euler được định nghĩa là,

y (n + 1) =y (n) + h * f (x (n), y (n))

Giá trị h là kích thước bước được tính bằng,

h =(x (n) - x (0)) / n

Chương trình minh họa hoạt động của giải pháp của chúng tôi,

Ví dụ

#include <iostream>
using namespace std;

float equation(float x, float y) {

   return (x + y);
}

void solveEquationEulers(float x0, float y, float h, float x) {

   float temp = 0.0;

   while (x0 < x) {
      temp = y;
      y = y + h * equation(x0, y);
      x0 = x0 + h;
   }
   cout<<"The solution of the differential equation at x = "<< x <<" is f(x, y) = "<<y;
}

int main()
{
   float x0 = 0;
   float y0 = 1;
   float h = 0.5;
   float x = 0.1;
   solveEquationEulers(x0, y0, h, x);
   return 0;
}

Đầu ra -

The solution of the differential equation at x = 0.1 is f(x, y) = 1.5