Вы находитесь на странице: 1из 3

runge kutta

#include <iostream.h>
#include <math.h>
#include <iomanip.h>
void main()
{
double eps = 1e-3;
double k[4];
double xx,x,x1,x2,yy,y,y1,y2,fx,delx,delt,pita;
int i,n;
cout<<masukkan titik awal(x0,y0) : ;// masukan nilai x0 spasi yo
cin>>x1>>y1;
cout<<masukan titik akhir(x) : ;
cin>>x2;
cout<<endl<<endl;
n=0;
delt = 100;

while(fabs(delt)>eps) //iterasi selama delt lebih besar dari eps


{
n+=1;//cacah iterasi
pita = pow(2,n); //2^n
delx = (x2-x1)/pita;
xx=x1;
yy = y1;
while(xx<x2)

{
x=xx;
y=yy;
for(i=1;i<=4;i++)
{
//*****************************
//fx=y; //bentuk fungsi
fx = 4*x+5;
//fx = 1-exp(-12.5*x/68.1);
//fx = fx*9.8*68.1/12.5;
//*****************************
k[i] = delx*fx;
if(i==1|| i==2)
{
x = xx+delx/2;
y = yy+k[i]/2;
}
else
if(i==3)
{
x =xx+delx;
y = yy+k[3];
}
}//for
xx =xx+delx;
yy = yy+(k[1]+2*(k[2]+k[3])+k[4])/6;//iterasi range kutta orde 4
}//while
if (n==1)
{

cout.width(15);
cout<<pita;
cout.width(15);
cout<<yy;
}
else
{
delt = yy-y2;
cout.width(15);
cout<<pita;
cout.width(15);
cout<<pita;
cout.width(15);
cout<<yy;
cout.width(15);
cout<<delt;
}
cout<<endl;
y2=yy;
}//while
cout<<nilai fungsi di x = <<x2<< adalah : <<yy;
cout <<endl;
cout<<banyaknya iterasi = <<n;
cout<<endl;
}

Вам также может понравиться