Anda di halaman 1dari 4

TUGAS 1 Fisika Komputasi

1. Membuat program penyelesaian persamaan dy/dx = 5x – 4 menggunakan metode euler


orde 1

#include<iostream.h>
#include<math.h>
#include<iomanip.h>
#include<conio.h>
void main()
{

double eps=1e-3;
double x,x1,x2,y,y1,y2,fx,delx,delt,pita;
int n;
cout<<"masukkan titik awal (x0,y0) :";
cin>>x1>>y1;
cout<<"masukkan titik akhir (x) :";
cin>>x2;
cout<<endl<<endl;
n=0;
delt=100;
while (fabs(delt)>eps)
{
n+=1;
pita=pow(2,n);
delx=(x2-x1)/pita;
x=x1;
y=y1;
while (x<x2)
{

fx=5*x-4;

y=y+fx*delx;
x=x+delx;
}
if(n==1)
{
cout.width(15);
cout<<pita;
cout.width(15);
cout<<y;
}
else
{
delt=y-y2;
cout.width(15);
cout<<pita;
cout.width(15);
cout<<y;
cout.width(15);
cout<<delt;
}
cout<<endl;
y2=y;
}
cout<<"Nilai Fungsi di x="<<x2<<" adalah:"<<y;
cout<<endl;
getch ();
}

Hasil program:

1. Membuat program penyelesaian persamaan dy/dx = 5x – 4 menggunakan metode Runge


Kutta orde 2-Heun
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
#include <conio.h>
void main()
{
double eps=1e-3;
double k[4];
double xx,x1,x2,yy,y1,y2,fx,delx,delt,pita;
int i,n,x,y;

cout<<"Masukkan titik awal (xo,yo): ";


cin>>x1>>y1;
cout<<"Masukkan titik akhir (x): ";
cin>>x2;
cout<<endl<<endl;
n=0;
delt=100;

while (fabs(delt)>eps)
{
n+=1;
pita=pow(2,n);
delx=(x2-x1)/pita;
xx=x1;
yy=y1;
while(xx<x2)
{
x=xx;
y=yy;
for (i=1;i<=2;i++)
{
fx=5*x-4;
k[i]=delx*fx;
if(i==1)
{
x=xx+delx;
y=yy+k[i];
}
}
xx=xx+delx;
yy=yy+(k[1]+k[2])/2;
}
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<<yy;
cout.width(15);
cout<<delt;
}
cout<<endl;
y2=yy;
}
cout<<"Nilai Fungsi di x= "<<x2<<" adalah : "<<yy;
cout<<endl;
cout<<"Banyaknya iterasi= "<<n;
cout<<endl;
getch();
}

Hasil program:

Anda mungkin juga menyukai