4
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;

Range Kutta 4

Embed Size (px)

Citation preview

Page 1: Range Kutta 4

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)

Page 2: Range Kutta 4

{

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)

{

Page 3: Range Kutta 4

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;

}