/* 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