Metoda Rungego-Kutty 4 Rzedu - nieprawidłowe wyniki ?

0

Program dotyczy problemu jak w temacie. Niestety wyniki powstałe różnią się od tych przykładowych... nie potrafię zidentyfikować błędu . Pomoże ktoś ?

Opis metod i przykłady działania :
http://oen.dydaktyka.agh.edu.pl/dydaktyka/matematyka/c_metody_numeryczne/wyklad/mrk.htm

Kod Programu :

#include <iostream>
#include <iomanip>
using namespace std;

//Define constants
#define X0 0
#define Y0 1
#define H 0.1
#define N 2

//Define Functions
double f(double x, double y);
double runge(double x, double y);


//Main Function
int main(double x, double y)
{
cout<<"\t******"
<<"\n\n";
cout<<" "
<<setw(25)<<"x"<<setw(27)<<"\ty"
<<"\n"
<<"\t----------------------------------------------------------"
<<"\n";
y=Y0;
for(int i=1;i<=10;i++)
{
x=X0+(i*H);
y=runge(x,y);
cout<<left<<setw(4)<<i<<"|"
<<setprecision(8)<<left<<setw(20)<<"\t"<<x
<<setprecision(8)<<left<<setw(20)<<"\t"<<y;
cout<<"\n\n";
}
cout<<"\n\n";
system("pause");
return 0;
}

double runge(double x, double y)
{
double K1 = (H * f(x,y));
double K2 = (H * f((x + (1 / 2 * H)), (y + (1 / 2 * K1))));
double K3 = (H * f((x + (1 / 2 * H)), (y + (1 / 2 * K2))));
double K4 = (H * f((x + H), (y + K3)));
double runge = y + ((K1 +2*K2 + 2*K3 + K4)/6);
return runge;
}

double f(double x, double y)
{
double f = x+y;
return f;
}
0

w C:
1 / 2 == 0 !!!
1 / 2 != 0.5

1 użytkowników online, w tym zalogowanych: 0, gości: 1