Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 미분방정식을 풀기 위한 오일러 방법

<시간/>

이 문제에서는 미분 방정식 이 주어집니다. f(x, y) =dy/dx 초기값 y(x0 포함) ) =y0 . 우리의 임무는 미분 방정식을 풀기 위해 오일러 방법을 사용하여 방정식의 해를 찾는 것입니다.

오일러 방법

순방향 오일러 방법 이라고도 하는 오일러 방법 주어진 초기값을 사용하여 주어진 미분방정식의 해를 구하는 1차 수치적 절차입니다.

미분 방정식의 경우 f(x, y) =dy / dx. 오일러 방법은 다음과 같이 정의됩니다.

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

값 h는 다음과 같이 계산되는 단계 크기입니다.

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

우리 솔루션의 작동을 설명하는 프로그램,

예시

#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;
}

출력 -

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