Improved Eulers method implementation in CPP Language


/*
    Improved Eulers method implementation in CPP Language-----

    Md. Alamgir Hossain
    Department of Computer Science & Engineering.
    Jessore University of Science & Technology, Bangladesh.
    Email : alamgir.cse14.just@gmail.com
*/

#include<bits/stdc++.h>
using namespace std;
double equation(double x, double y)
{
    ///Here enter the right side of your differential equation---
    ///Some example of equation in the res variable--

    ///You can check with your desired equation
    ///From here remove comment and check for another equation...
    double res;
    ///Equation start
   // res = (3*x*x)+1;
    //res = (x*x)+(y*y);
    res = x*y;
   // res = y+(x*x);
   // res = ((2*y)/x)+(x*x*x);
    //res = y-((2*x)/y);

    return res;

}
int main()
{
    double x0,y0,h;

    cout<<"Enter the value of X0 : ";
    cin>>x0;
    cout<<"Enter the value of Y0 : ";
    cin>>y0;

    cout<<"Enter the value of h : ";
    cin>>h;

    int n;

    cout<<"Enter how many y you wants : ";
    cin>>n;

    cout<<"\nSerial----X----------Y-----------------------------------------------------\n";

    cout<<"Y(1)     "<<x0<<"       "<<y0<<"\n";
    cout<<"----------------------------------------------------------------------------\n";
    for(int i=0;i<n-1;i++){
        double x,y,y1,y2;
        x = x0+h;
        y1 = equation(x0,y0);

        y2 = equation(x0+h,y0+(h*equation(x0,y0)));

        y = y0+h*((y1+y2)/2);

        cout<<"Y("<<i+2<<")"<<"   "<<x<<"       "<<y<<"\n";
        cout<<"---------------------------------------------------------------------------\n";

        x0 = x;
        y0 = y;

    }
    return 0;
}

/*

Input Example---For the Equation y' = (x*y);

Enter the value of X0 : 1
Enter the value of Y0 : 1
Enter the value of h : .1
Enter how many y you wants : 10

Serial----X----------Y------------------------------------------------------
Y(1)     1       1
----------------------------------------------------------------------------
Y(2)   1.1       1.1105
---------------------------------------------------------------------------
Y(3)   1.2       1.24554
---------------------------------------------------------------------------
Y(4)   1.3       1.41094
---------------------------------------------------------------------------
Y(5)   1.4       1.61426
---------------------------------------------------------------------------
Y(6)   1.5       1.86528
---------------------------------------------------------------------------
Y(7)   1.6       2.17678
---------------------------------------------------------------------------
Y(8)   1.7       2.56555
---------------------------------------------------------------------------
Y(9)   1.8       3.05378
---------------------------------------------------------------------------
Y(10)   1.9       3.67095
---------------------------------------------------------------------------
*/

No comments:

Post a Comment