Hengki Wildan N - JOB8

Anda mungkin juga menyukai

Anda di halaman 1dari 12

PRAKTIKUM KOMPUTASI NUMERIK

INTEGRASI NUMERIK

Disusun oleh :

HENGKI WILDAN NOVIANA


21507334012

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

2022

I. FLOWCHART:
Metode integral reimann:
MULAI

float batas_bawah, batas_atas, N,


h;
float x, Li, L, L_eksak, error, x_atas,
x_bawah;

Masukkan nila x batas


bawah :
Masukkan nilai x batas
atas :
Masukkan N:

h = (batas_atas-
batas_bawah)/N;

x = batas_bawah;

Tidak

while(x<=batas_atas+h)

Ya
L = L*h;
Li = (x*x);

x_atas =
batas_atas*batas_atas L += Li;
*batas_atas;

x_bawah =
batas_bawah*batas_b
awah*batas_bawah; cout << x << " "
<< Li << endl;

L_eksak = (0.333*x_atas)-
(0.333*x_bawah);

x = x+h;
error = fabs(L_eksak-L);

cout << "L_numerik = "


<< L << " L_eksak = "
<< L_eksak << endl;

cout << "error = " <<


error << endl;

SELSAI

Metode Integrasi Trapezoida :


MULAI

float a, b, h, N, X, Xatas, Xbawah,


Lf1, Lf,Lf0,Lfn,L, Lexact, Error,
SigmaLf;

cout << "Masukkan nilai


batas bawah = "; cin >> a ;
cout << "Masukkan nilai
batas atas = "; cin >> b;
cout << "Masukkan nilai
pembagi N = "; cin >> N;

h = (b-a)/N;

X = a;

Tidak

while (X <= b+h)

Lexact = pow(b,3)/3 - Ya
(pow(a,3)/3);
Lf0 = pow(a, 2);

L = h*(Lf0+2*SigmaLf -
Lfn -2*Lf1)/2; Lf1 = pow(a+h,2);

Lfn = pow(b, 2);


Error = fabs(Lexact-L);

Lf = pow(X, 2);

SigmaLf += Lf;

cout <<" "<<X <<


" " << Lf << "
"<< SigmaLf <<"
"<<endl;

X = X+h;

cout << "Nilai Luasnya


= " << L <<" Nilai L
exact: "<<Lexact << "
Nilai Error: "<<Error;

SELSAI

II. LISTING PROGRAM


Metode integral reimann:
#include <iostream>
#include "math.h"
using namespace std;
int main()
{
float batas_bawah, batas_atas, N, h;
float x, Li, L, L_eksak, error, x_atas, x_bawah;
cout << "masukkan batas bawah = ";
cin >> batas_bawah;
cout << "masukkan batas atas = ";
cin >> batas_atas;
cout << "masukkan N = ";
cin >> N;
h = (batas_atas-batas_bawah)/N;
x = batas_bawah;
while(x<=batas_atas+h)
{
Li = (x*x);
L += Li;
cout << x << " " << Li << endl;
x = x+h;
}
L = L*h;
x_atas = batas_atas*batas_atas*batas_atas;
x_bawah = batas_bawah*batas_bawah*batas_bawah;
L_eksak = (0.333*x_atas)-(0.333*x_bawah);
error = fabs(L_eksak-L);
cout << "L_numerik = " << L << " L_eksak = " << L_eksak << endl;
cout << "error = " << error << endl;
return 0;
}

Metode Integrasi Trapezoida :


#include <iostream>
#include "math.h"
using namespace std;
int main()
{
float a, b, h, N, X, Xatas, Xbawah, Lf1, Lf,Lf0,Lfn,L, Lexact, Error, SigmaLf;
cout << "Masukkan nilai batas bawah = ";
cin >> a ;
cout << "Masukkan nilai batas atas = ";
cin >> b;
cout << "Masukkan nilai pembagi N = ";
cin >> N;
h = (b-a)/N;
X = a;
while (X <= b+h)
{
Lf0 = pow(a, 2);
Lf1 = pow(a+h,2);
Lfn = pow(b, 2);
Lf = pow(X, 2);
SigmaLf += Lf;
cout <<" "<<X << " " << Lf << " "<< SigmaLf <<" "<<endl;
X = X+h;
}
Lexact = pow(b,3)/3 -(pow(a,3)/3);
L = h*(Lf0+2*SigmaLf -Lfn -2*Lf1)/2;
Error = fabs(Lexact-L);
cout << "Nilai Luasnya = " << L <<" Nilai L exact: "<<Lexact << " Nilai Error:
"<<Error;
return 0;
}

II. Hasil Praktikum:

Metode integral reimann:

Metode Integrasi Trapezoida :


III. TUGAS:
1.
a. Listing program:
Metode Reimann
#include <iostream>
#include <math.h>
#include <iomanip>
#include <stdlib.h>
#define f(x) 2*x*x*x //fungsi f(x)
#define g(x) (x*x*x*x)/2 //fungsi intergral f(x)
/* Untuk mendapatkan nilai g(x), dapat mengungjungi situs https://www.integral-
calculator.com/ */
using namespace std;

int main(){
float batas_bawah, batas_atas, N, h, i, Li, L, L_eksak, error, x_atas, x_bawah;
cout << "masukkan batas bawah = ";
cin >> batas_bawah;
cout << "masukkan batas atas = ";
cin >> batas_atas;
cout << "masukkan N = ";
cin >> N;

h = (batas_atas-batas_bawah)/N;
i = batas_bawah;

while(i <= batas_atas + h){


Li = f(i);
L += Li;
cout << i << " " << Li << endl;
i = i + h;
}
L = L*h;
cout << setprecision(3) << fixed;
L_eksak = g(batas_atas) - g(batas_bawah);
error = fabs(L_eksak-L);

cout << "L_numerik = " << L << " L_eksak = " << L_eksak << endl;
cout << "error = " << error << endl;
return 0;
}
L = L*h;
cout << setprecision(3) << fixed;
L_eksak = g(batas_atas) - g(batas_bawah);
error = fabs(L_eksak-L);

cout << "L_numerik = " << L << " L_eksak = " << L_eksak << endl;
cout << "error = " << error << endl;
return 0;
}

2. Metode Reimann :
N = 10

N = 20
N = 100

Anda mungkin juga menyukai