Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  код
Language: C/C++
Code:
#include "cmath"
#include <iostream>

using namespace std;
double f(double x, double y)
{
    double y1 = 1/(0.7*log(fabs(4-y)))-y/(1.4);
    return y1;
}

double ispravlenuyEuler(double x, double y, double h)
{
    double k1=h*f(x, y);
    double k2=h*f(x+h, y+k1);
    double y1= (k1+k2)/2;
    return y+y1;
}

double PredictCorrect(double x, double y1, double y2, double y3, double y4, double h)

    double y0 = y4 +h*(55*f((x+3*h),y4)-59*f((x+2*h),y3)+37*f((x+h),y2)-9*f(x,y1))/24;
    double yk = y4 +h*(9*f((x+4*h),y0)+19*f((x+3*h),y4)-5*f((x+2*h),y3)+f(x+h,y2))/24;
    do
    {
        y0 = yk;
        yk = y4 +h*(9*f((x+4*h),y0)+19*f((x+3*h),y4)-5*f((x+2*h),y3)+f(x+h,y2))/24;
    }
    while (fabs(y0/yk)>1.001);
    return yk;
}


double Print(double x, double y, double h)

    int i=0;
    double y1=y, y2, y3, y4, iE, PC, *Y=&y2; 
    cout.width (3);
    cout<<"  n";
    cout.width (9);
    cout<<"  xn";
    cout.width (13);
    cout<<"   испр.Эйлер";
    cout.width (13);
    cout<<"      Пр.кор.";
    cout<<endl;
    cout.width (3);
    cout<<i;
    cout.width (9);
    cout<<x;
    for(int n=0;n<2;n++)
    {
        cout.width (13);
        cout<<y1;
    }
    cout<<endl;
    
    while (i!=4)
    {
        i++;
        x=x+h;
        cout.width (3);
        cout<<i;
        cout.width (9);
        cout<<x;
        *Y=ispravlenuyEuler(x, y, h);
        y=*Y;
        for(int n=0;n<2;n++)
        {
            cout.width (13);
            cout<<*Y;
        }
        Y=Y+1;
        cout<<endl;
    }
    iE=y;
    while (x < 2.99)
    {
        i++;
        iE=ispravlenuyEuler(x, iE, h);
        PC=PredictCorrect(x, y1, y2, y3, y4, h);
        x=x+h;
        y1=y2; y2=y3; y3=y4; y4=PC;
        cout.width (3);
        cout<<i;
        cout.width (9);
        cout<<x;
        cout.width (13);
        cout<<iE;
        cout.width (13);
        cout<<PC;
        cout<<endl;
    }
}

int main()
{
    Print(0, 0, 0.03);
    return 0;
}
     
          
Comments: