Anda di halaman 1dari 10

PRAKTIKUM KOMPUTASI NUMERIK

PENYELESAIAN PERSAMAAN DIFFERENSIAL TINGKAT TINGGI METODE


EULER DAN RUNGE KUTTA 2

Disusun oleh :

RIZKY RAMADHAN
21507334056

D4 TEKNIK ELEKTRONIKA
JURUSAN PENDIDIKAN TEKNIK ELEKTRONIKA DAN INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA

2022
I. Flowchart

Gambar 1.1 Flowchart Penyelesaian Persamaan Differensial Tingkat 2 Metode Euler


Gambar 1.2 Flowchart Penyelesaian Persamaan Differensial Tingkat 2 Metode Runge
Kutta 2
II. Listing Program
2.1 Listing Program Differensial Tingkat 2 Metode Euler

#include <iostream>
#include <iomanip>
#include <math.h>

using namespace std;


int main()
{

float x, x0, y0, z0 , h, y, z;


int i, n;
cout.precision(5);

cout <<"Masukan Pendekatan Awal x0 =";


cin >>x0;
cout <<" Masukan Pendekatan Awal y0 =";
cin >> y0;
cout << "Masukan Pendekatan Awal z0 =" ;
cin >> z0;
cout <<" Masukan step h = ";
cin >>h;
cout << "Masukan Nilai N = ";
cin >> n;

cout << "n" <<setw(15) << "x" << setw(15)<< "y" <<setw(16) << "z=y'" <<
endl;
for(i=0; i <=n; i++)
{
y = y0 + h * z0;
z = z0 + h * (1-(2*x0*y0)-(3*z0));

cout <<i <<setw(15)<< x0 << setw(15) << y <<setw(15) << z <<endl;

y0=y;
z0=z;
x0 = x0+h;
}
return 0;
}
2.2 Listing Program Differensial Tingkat 2 Metode Runge Kutta 2

#include<iostream>
#include<iomanip>
#include<math.h>

using namespace std;


int main()
{
float x0, y0,z0, x,y,z, k1, k2,h;
float l1,l2;
int i,n;
cout.precision(5);

cout <<"Pendekatan awal x0 = ";


cin >>x0;
cout <<"Pendekatan awal y0 = ";
cin >> y0;
cout << "Pendekatan awal z0 = ";
cin>> z0;
cout <<" Masukan Step h = ";
cin >>h;
cout << "masukan nilai N= ";
cin >> n;

cout << "n" <<setw(15) << "x" << setw(15)<< "k1" <<setw(16) << "k2"
<<setw(16) <<"l1" <<setw(16) << "l2" << setw(16) << "y" << setw(16)
<<"z=y'" <<endl;

for(i=0; i <=n; i++)


{
k1 = h * z0;
l1 = h * (1-(2*x0*y0)-(3*z0));
l2 = h * (1-2*(x0+h)*(y0+k1)-3*(z0+l1));
k2 = h * (z0+l1);
y = y0 + 0.5 *(k1+k2);
z = z0 + 0.5 *(l1+l2);

cout <<i <<setw(15)<< x0 << setw(16) << k1 <<setw(16) << k2


<<setw(16) << l1 << setw(16) << l2 << setw(16) << y <<setw(17) << z <<endl;

y0=y;
z0=z;
x0 = x0+h;
return 0;
}

III. Hasil Simulasi

Gambar 3.1 Output Program Persamaan Differensial Tingkat 2 Metode Euler

Gambar 3.2 Output Program Persamaan Differensial Tingkat 2 Metode Runge


Kutta 2
IV. Tugas
1. Amati Gambar berikut ini,

a. Cari bentuk model matematik system pegas diatas !


Jawab :
Karena pararel, maka :
Kp = k1+k2
F = m.g
Fp = -k.∆x
-f = -k . ∆x
b. Apabila nilai F = 10 N, tentukan differensiasi system tersebut !
Jawab :
𝑑2 𝑦 𝑑𝑦
+ + 𝑥 + 𝑦 = 10
𝑑𝑥 2 𝑑𝑥
𝑓(𝑥, 𝑦, 𝑧) = 𝑧
𝑔(𝑥, 𝑦, 𝑧) = 10 − (𝑥 + 𝑦) ∗ 𝑧
c. Selesaikan persamaan differensial yang didapat menggunakan metode Euler dan
Runge Kutta !
Jawab :

Gambar 4.1 Output Program Persamaan Differensial Tingkat 2 Metode Euler


Gambar 4.2 Output Program Persamaan Differensial Tingkat 2 Metode Runge
Kutta 2

d. Impelementasikan penyelesaian tersebut dalam Bahasa pemrograman C++ !


Jawab :
1. Listing Program Persamaan Differensial Tingkat 2 Metode Euler

#include <iostream>
#include <iomanip>
#include <math.h>

using namespace std;


int main()
{

float x, x0, y0, z0 , h, y, z;


int i, n;
cout.precision(5);

cout <<"Masukan Pendekatan Awal x0 =";


cin >>x0;
cout <<" Masukan Pendekatan Awal y0 =";
cin >> y0;
cout << "Masukan Pendekatan Awal z0 =" ;
cin >> z0;
cout <<" Masukan step h = ";
cin >>h;
cout << "Masukan Nilai N = ";
cin >> n;
cout << "n" <<setw(15) << "x" << setw(15)<< "y" <<setw(16) << "z=y'"
<<endl;
for(i=0; i <=n; i++)
{
y = y0 + h * z0;
z = z0 + h * (10-(x0+y0)*z0);

cout <<i <<setw(15)<< x0 << setw(15) << y <<setw(15) << z


<<endl;

y0=y;
z0=z;
x0 = x0+h;
}
return 0;
}

2. Listing Program Persamaan Differensial Tingkat 2 Metode Runge Kutta 2

#include<iostream>
#include<iomanip>
#include<math.h>

using namespace std;


int main()
{
float x0, y0,z0, x,y,z, k1, k2,h;
float l1,l2;
int i,n;
cout.precision(5);

cout <<"Pendekatan awal x0 = ";


cin >>x0;
cout <<"Pendekatan awal y0 = ";
cin >> y0;
cout << "Pendekatan awal z0 = ";
cin>> z0;
cout <<" Masukan Step h = ";
cin >>h;
cout << "masukan nilai N= ";
cin >> n;
cout << "n" <<setw(15) << "x" << setw(15)<< "k1" <<setw(16) << "k2"
<<setw(16) <<"l1" <<setw(16) << "l2" << setw(16) << "y" << setw(16)
<<"z=y'" <<endl;

for(i=0; i <=n; i++)


{
k1 = h * z0;
l1 = h * (10-(x0+y0)*z0);
l2 = h * (1-2*(x0+h)*(y0+k1)-3*(z0+l1));
k2 = h * (z0+l1);
y = y0 + 0.5 *(k1+k2);
z = z0 + 0.5 *(l1+l2);

cout <<i <<setw(15)<< x0 << setw(16) << k1 <<setw(16) << k2


<<setw(16) << l1 << setw(16) << l2 << setw(16) << y <<setw(17) << z
<<endl;

y0=y;
z0=z;
x0 = x0+h;
}
return 0;
}

Anda mungkin juga menyukai