integral numerik.pdf
TRANSCRIPT
1
Integral Numerik
Sunkar E. Gautama, 2013
http://paradoks77.blogspot.com
Integral numerik ialah metode untuk menghitung nilai integrasi suatu fungsi dalam suatu
selang tanpa mempedulikan fungsi hasil integralnya dengan menggunakan metode numerik. Jadi,
untuk menghitung nilai integral tentu 𝑓 𝑥 = 2𝑥2 + 5𝑥 − 3 terhadap 𝑥 secara numerik, tidak perlu
mengetahui fungsi 𝐹(𝑥).
Dalam integral numerik, digunakan teorema integral tentu dari suatu fungsi 𝑓 𝑥 terhadap
𝑥 dalam selang [𝑎, 𝑏] sama dengan luas daerah di bawah kurva yang dibatasi oleh sumbu X, garis
𝑥 = 𝑎, dan 𝑥 = 𝑏. Dengan demikian, digunakan suatu metode untuk menghitung luasan di bawah
kurva tadi, dengan pengandaian luas daerah tadi setara dengan suatu segiempat dengan panjang
Δ𝑥 = 𝑏 − 𝑎 dan tinggi rata-rata ketinggian titik pada kurva, 𝑦 . Beberapa metode yang akan dibahas
di bawah ini ialah metode trapesium, metode Simpson, dan metode Simpson 3/8, dengan perluasan
integral komposit untuk kurva dengan loop yang tidak sederhana.
1. Metode Trapesium (trapezoidal rule)
Metode trapesium ialah metode yang paling sederhana diantara tiga metode yang
dibahas di sini. Metode trapesium mengandaikan daerah luasan yang ditinjau berbentuk
trapesium dengan panjang Δ𝑥 = 𝑏 − 𝑎 dan dipilih dua titik ketinggian yakni tinggi rusuk sejajar
masing-masing 𝑓 𝑥0 = 𝑓(𝑎) dan 𝑓 𝑥1 = 𝑓(𝑏) yang berjarak ℎ = Δ𝑥.
Pada trapesium, 𝐿 = panjang × tinggi rata − rata = Δ𝑥 × 𝑦
Dengan 𝑦 =𝑤0𝑦0+𝑤1𝑦1
𝑤0+𝑤1. 𝑤0 dan 𝑤1 masing-masing ialah pembobotan untuk tiap ketinggian titik
yang diambil. Mengingat pada trapesium (dua sudut siku-siku) rusuk miringnya linier, maka
pembobotannya seragam, yakni 𝑤0 = 𝑤1 = 1. Dengan demikian, luas daerah di bawah kurva
ialah:
Luas = Δ𝑥 ×𝑦0 + 𝑦1
2+ (galat)
2
𝐼 = 𝑓(𝑥)𝑏
𝑎
𝑑𝑥 =Δ𝑥
2 𝑓 𝑎 + 𝑓 𝑏 + 𝑂(ℎ3)
𝐼 = 𝑓(𝑥)𝑥1
𝑥0
𝑑𝑥 =ℎ
2 𝑓 𝑥0 + 𝑓 𝑥1 + 𝑂(ℎ3)
2. Metode Simpson
Jika pada metode trapesium hanya diambil dua titik ketinggian, maka pada metode
simpson diambil tiga titik ketinggian yang berjarak sama, ℎ =Δ𝑥
2=
𝑎−𝑏
2.
Tinggi rata-rata, 𝑦 =𝑤0𝑦0+𝑤1𝑦1+𝑤2𝑦2
𝑤0+𝑤1+𝑤2. Titik tinggi yang berada di tengah mendapatkan bobot
yang lebih tinggi, sebagaimana dapat dilihat bahwa ketinggian rata-rata cenderung mendekati
ketinggian pada titik tengahnya. Menggunakan fungsi Lagrange orde-2:
𝑃2 𝑥 = 𝑥 − 𝑥1 𝑥 − 𝑥2
𝑥0 − 𝑥1 𝑥0 − 𝑥2 𝑓 𝑥0 +
𝑥 − 𝑥0 𝑥 − 𝑥2
𝑥1 − 𝑥0 𝑥1 − 𝑥2 𝑓 𝑥1 +
𝑥 − 𝑥0 𝑥 − 𝑥1
𝑥2 − 𝑥0 𝑥2 − 𝑥1 𝑓 𝑥2
Di mana ℎ =𝑎−𝑏
2, 𝑥0 = 𝑎, 𝑥1 = 𝑎 + ℎ, 𝑥2 = 𝑏 = 𝑎 + 2ℎ. Dengan demikian
𝐼 = 𝑓(𝑥)𝑥2
𝑥0
𝑑𝑥 = 𝑃2(𝑥)𝑥2
𝑥0
𝑑𝑥 + 𝑅𝑠
Di mana Rs ialah suku yang mengandung galat komputasi, O(h5). Dari kedua persamaan di atas,
diperoleh rumus integral Simpson
𝐼 = 𝑓(𝑥)𝑥2
𝑥0
𝑑𝑥 =ℎ
3 𝑓 𝑥0 + 4𝑓 𝑥1 + 𝑓 𝑥2 + 𝑂(ℎ5)
Dengan demikian, diperoleh pembobotan 𝑤0 = 1, 𝑤1 = 4, 𝑤2 = 1.
3
3. Metode Simpson 3/8
Pada metode Simpson 3/8 dipilih empat titik ketinggian pada selang yang berjarak
sama, ℎ =Δ𝑥
3=
𝑎−𝑏
3, sehingga 𝑥0 = 𝑎, 𝑥1 = 𝑎 + ℎ, 𝑥2 = 𝑎 + 2ℎ, 𝑥3 = 𝑎 + 3ℎ = 𝑏.
Ketinggian rata-rata ialah 𝑦 =𝑤0𝑦0+𝑤1𝑦1+𝑤2𝑦2+𝑤3𝑦3
𝑤0+𝑤1+𝑤2+𝑤3, dengan 𝑤0 = 1, 𝑤1 = 3, 𝑤2 =
3, 𝑤3 = 1.
Luas daerah di bawah kurva:
𝐼 = 𝑓(𝑥)𝑏
𝑎
𝑑𝑥 = Δ𝑥 × 𝑦 + (galat)
𝐼 = 𝑓(𝑥)𝑥3
𝑥0
𝑑𝑥 =3ℎ
8 𝑓 𝑥0 + 3𝑓 𝑥1 + 3𝑓 𝑥2 + 𝑓 𝑥3 + 𝑂(ℎ5)
4. Metode Bode
Metode integral Bode menggunakan lima titik ketinggian yang berjarak sama, ℎ =Δ𝑥
4=
𝑎−𝑏
4 dan
tinggi rata-rata, 𝑦
𝑦 =𝑤0𝑦0 + 𝑤1𝑦1 + 𝑤2𝑦2 + 𝑤3𝑦3 + 𝑤4𝑣4
𝑤0 + 𝑤1 + 𝑤2 + 𝑤3 + 𝑤4
Dengan 𝑤0 = 7, 𝑤1 = 32, 𝑤2 = 12, 𝑤3 = 32, 𝑤4 = 7, sehingga
𝐼 = 𝑓(𝑥)𝑏
𝑎
𝑑𝑥 = Δ𝑥 × 𝑦 + (galat)
𝐼 = 𝑓(𝑥)𝑥4
𝑥0
𝑑𝑥 =2ℎ
45 7𝑓 𝑥0 + 32𝑓 𝑥1 + 12𝑓 𝑥2 + 32𝑓 𝑥3 + 7𝑓 𝑥4 + 𝑂(ℎ7)
4
5. Integral Komposit
Metode integral komposit yaitu metode menghitung integrasi numerik suatu fungsi
dengan membaginya dalam selang-selang tertentu menjadi segmen-segmen luasan sebanyak N,
selanjutnya segmen-segmen tadi dihitung luasnya menggunakan metode trapesium atau
Simpson kemudian dijumlahkan untuk menghitung integrasi fungsi. Karena pembagian menjadi
segmen-segmen, menggunakan integral komposit mengaruskan kita membuat vektor yang
merepresentasikan sumbu X. Makin banyak segmen yang dibuat maka solusi numerik yang
diperoleh akan makin mendekati solusi sebenarnya.
𝐼 = 𝑓(𝑥)𝑏
𝑎
𝑑𝑥 = 𝑓(𝑥)𝑥1
𝑥0
𝑑𝑥 + 𝑓(𝑥)𝑥2
𝑥1
𝑑𝑥 + ⋯ + 𝑓(𝑥)𝑥𝑛
𝑥𝑛−1
𝑑𝑥
Jika luasan tiap segmen dihitung menggunakan metode trapesium, diperoleh:
𝐼 =ℎ
2 𝑓 𝑥0 + 𝑓 𝑥1 +
ℎ
2 𝑓 𝑥1 + 𝑓 𝑥2 + ⋯ +
ℎ
2 𝑓 𝑥𝑛−1 + 𝑓 𝑥𝑛
𝐼 =ℎ
2 𝑓 𝑥0 + 2 𝑓(𝑥𝑖)
𝑛−1
𝑖=1
+ 𝑓(𝑥𝑛)
Misalkan kita ingin menghitung integral fungsi 𝑓(𝑥) dalam selang (𝑎, 𝑏) dengan
pembagian selang menjadi 100 upaselang (ingat, 100 upaselang berarti ada 100+1 titik).
Berikut algoritmanya:
1) a batas bawah; // definisikan batas bawah integrasi
2) b batas atas; // definisikan batas atas integrasi
3) h = (b – a)/100; // definisi lebar upaselang
4) x0 = a // membuat vektor X
for i = 1, i <= 100 // bernilai awal a, naik dengan beda h, hingga b
xi = x0 + h;
yi = f(xi); // membuat vektor Y (hasil fungsi)
end
5) for i = 0, i < 100 // perulangan dari i = 0 hingga 99
ui = (h/2)*(fi + fi+1) // menghitung luasan segmen
end
6) L0 = 0 // menghitung luas total segmen
for i = 1, i <= 100
Li = Li-1 + ui-1;
end
7) I = L100 // diperoleh hasil integrasi = luas total
Jika program/bahasa pemrograman yang digunakan mendukung fungsi barisan,
maka poin (4) dapat diganti dengan “x = a:h:b”, atau dalam Matlab menyediakan fungsi “x =
linspace(a,b,101)”. Jika program menyediakan fungsi sumasi, maka poin (7) dan (8) dapat
dihilangkan dan diganti menjadi “I = sum(y)”
Patut diingat pula indeks yang digunakan, apakah berjalan dari 0 ataukah dari 1.
Pada algoritma di atas, indeks berjalan dari nol, sehingga vektor X = (x0 x1 x2 … x100), jika indeks
berjalan dari satu, maka vektor X akan menjadi X = (x1 x2 x3 … x101)
5
Lampiran:
1. Contoh program integral numerik dengan metode Simpson menggunakan bahasa C++:
Fungsi: 𝑦 𝑥 = 2𝑥2 + 5𝑥 − 3.
//Integral Numerik Simpson by skaga
#include<iostream>
using namespace std;
int main()
{
int i, kol=3;
float x[kol], y[kol], a, b, deltax, h , ratay, L;
char off;
cout << "Masukkan batas bawah (a) : ";
cin >> a;
cout << "Masukkan batas atas (b) : ";
cin >> b;
deltax = b - a;
h = deltax/2;
x[0] = a, x[1] = a+h, x[2] = a+2*h;
for (i=0; i<3; i++){
y[i]=2*x[i]*x[i] + 5*x[i] - 3; // masukkan fungsi
}
ratay = (y[0] + 4*y[1] + y[2])/6;
L = deltax*ratay;
cout << "integral y(x) = " << L << '\n';
cin >> off;
return 0;
}
6
2. Contoh program integral numerik metode Simpson 3/8 menggunakan Matlab:
3. Contoh perhitungan integral numerik metode trapesium komposit menggunakan MS Excel.
𝑦 𝑥 = 𝑥2 sin 𝑥 ; 𝑎 = 2, 𝑏 = 3, ℎ = 0.1
i x(i) y(i) y(i-1) + y(i) (h/2)*(x(i-1) + x(i))
0 2 3.6371897
1 2.1 3.8067533 7.443943014 0.372197151
2 2.2 3.9131226 7.719875901 0.385993795
3 2.3 3.9447806 7.857903167 0.392895158
4 2.4 3.8906679 7.835448492 0.391772425
5 2.5 3.7404509 7.631118821 0.381555941
6 2.6 3.4847893 7.225240174 0.361262009
7 2.7 3.1155993 6.6003886 0.33001943
8 2.8 2.6263071 5.741906424 0.287095321
9 2.9 2.0120869 4.638393956 0.231919698
10 3 1.2700801 3.282166931 0.164108347
sum 3.298819274
% Integral numerik dengan metode Simpson 3/8
a = input('masukkan batas bawah = ');
b = input('masukkan batas atas = ');
deltax = b - a;
h = deltax/3;
x = [a (a+h) (a+2*h) b];
y = input('masukkan fungsi y=f(x) : ');
y = [1 3 3 1].*y;
ratay = sum(y)/8;
L = deltax*ratay;
fprintf('integral fungsi y(x) dari x = %g hingga x
= %g ialah %g \n', a, b, L);
𝑥2 sin 𝑥 𝑑𝑥 = −𝑥2 cos 𝑥 + 2𝑥 sin 𝑥
+ 2 cos 𝑥 + 𝐶
Metode analitik memberikan
solusi
Sehingga 𝑥2 sin 𝑥3
2𝑑𝑥 = 3,30719 …
Dengan program Matlab pada
lampiran 2, diperoleh hasil I = L =
3,3091.
7
4. Contoh program plot integral numerik fungsi
Panas jenis zat padat sebagai fungsi temperatur berdasarkan model Debye diberikan oleh
fungsi
𝐶𝑉 𝑇 = 9𝑁𝑘𝑇3
𝜃𝐷3
𝑥4𝑒𝑥
𝑒𝑥 − 1 2
𝜃𝐷 /𝑇
0
𝑑𝑥
Dengan 𝜃𝐷 temperatur Debye (konstanta), N jumlah atom, dan k tetapan Boltzmann. Plot fungsi
CV terhadap T dibuat dengan memerikan vektor T, memasukkan fungsi dan
mengintegralkannya, kemudian diplot. Berikut programnya menggunakan Matlab.
Daftar Pustaka:
Suarga, Fisika Komputasi: Solusi Problema Fisika dengan Matlab, Penerbit ANDI, Yogyakarta, 2005
% Perhitungan Panas Jenis Zat Padat model Debye menggunakan Simpson 3/8
% @Sunkar Eka Gautama, 2011
clear;
theta = input('nilai theta(Debye) = ');
batasatas = input('batas atas temperatur = ');
T = linspace(0,batasatas/theta,300); % T = T/theta
t = 1./T;
h = t/3;
a = 0.*h; b = h; c = 2*h; d = 3*h;
y = (3.*h./8).*(0 + 3.*(b.^4.*exp(b)./(exp(b)-1).^2)...
+ 3.*(c.^4.*exp(c)./(exp(c)-1).^2) + (d.^4.*exp(d)./(exp(d)-1).^2));
Y = 9.*T.^3.*y;
plot(T,Y);
title('Kurva Panas Jenis Zat Padat (CV) Model Debye');
xlabel('temperatur'); ylabel('CV (dalam R)');