Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

วิธีออยเลอร์สำหรับการแก้สมการเชิงอนุพันธ์ใน C++


ในปัญหานี้ เราจะได้ สมการเชิงอนุพันธ์ f(x, y) =dy/dx ด้วยค่าเริ่มต้น y(x0 ) =y0 . งานของเราคือการหาคำตอบของสมการโดยใช้วิธีออยเลอร์ในการแก้สมการอนุพันธ์

วิธี EULER

วิธีการออยเลอร์เรียกอีกอย่างว่า วิธีส่งต่อออยเลอร์ เป็นขั้นตอนเชิงตัวเลขลำดับแรกในการหาคำตอบของสมการอนุพันธ์ที่กำหนดโดยใช้ค่าเริ่มต้นที่กำหนด

สำหรับสมการอนุพันธ์ 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