Professional Documents
Culture Documents
ANALISA NUMERIK
OLEH :
b b
I( f ) f ( x)dx p n ( x)dx
a a
b n n
In ( f ) I j ,n ( x) f ( x j )dx W j , n ( x) f ( x j )
a j 0 j 0
b
Dengan W j ,n I j ,n ( x)dx j = 0, 1, 2, …,n
a
Untuk nilai n = 1 dan 2 telah disajikan sebagai rumus trapezium dan Simpson. Sekarang untuk
n = 3, contoh untuk menghitung w0 adalah :
b
( x x1 )( x x2 )( x x3 )
W0 dx
a
( x0 x1 )( x0 x2 )( x0 x3 )
x1
1
w0 (x x1 )( x x 2 )( x x3 )dx
x0 6h 3
3
1
w0 ( 1)h( 2)h( 3)hhd
6h 3 0
3
h 3h
w0 ( 1)( 2)( 3)d
60 8
3h
I3 ( f ) [ f ( x0 3 f ( x1 ) 3 f ( x 2 ) 3 f ( x3 )]
8
Kesalahan pada In(f) dinyatakan sebagai berikut:
a) Untuk n genap :
En ( f ) Cn h n 3 f ( n 2)
( ) [a, b]
n
1 2
Dengan C n ( 1)...( n) d
(n 2)! 0
b) Untuk n gasal :
En ( f ) C n h n 2 f ( n 1) ( ) [a, b]
n
1 2
Dengan C n ( 1)...( n) d
(n 1)! 0
n = 1, rumus trapesium
b
h h 3 ''
f ( x)dx [ f (a) f (b)] f )
a
2 12
n = 2, rumus Simpson
b
h a b h 3 ( 4)
f ( x)dx [ f (a) 4 f ( ) f (b)] f ( )
a
3 2 90
n=3
b
3h 3h 5 ( 4)
f ( x)dx [ f ( a ) 3 F ( a h) f (b h) f (b)] f ( )
a
8 80
n = 4, Rumus Boole
b
2h a b 8h 7 ( 6)
f ( x)dx [7 f (a) 32 F (a h) 12 f ( ) 32 f (b h)] 7 f (b)] f ( )
a
45 2 945
~ ~
Definisi : integrasi numeric I ( f ) yang mendekati I ( f ) disebut mempunyai derajat ketepatan
~ ~
m jika : (a) I ( f ) I ( f ) untuk semua polynomial f(x) derajat m, (b) I ( f ) I ( f ) untuk
beberapa polynomial f(x) derajat.
Contoh:
B. Kode Program
Program Integrasi;
Uses WinCrt;
Var
Koef : Array [0..10] of Real;
n, i,i2, i3, Pilih, P, code, j: Integer;
sig, x0, sum, h, a, b, fa, fb, fc, Int : Real;
Trapesium, Simpson, Simpson3, Boole : Real;
ulang :char;
ps, koefs, as, bs, pilihs : string;
Function Pangkat(pkt:Integer;Basis:Real):Real;
var sum1 : real;
Begin
Sum1 := 1;
For i2:=pkt downto 1 do
sum1 := Basis*sum1;
Pangkat := sum1;
end;
Procedure delay1;
Var
Wkt : longint;
Begin
For Wkt := 1 to 1250000 do
Write('');
End;
Procedure delay2;
Var
Wkt : longint;
Begin
For Wkt := 1 to 1000000 do
Write('');
End;
procedure judul1;
begin
procedure judul2;
begin
GotoXY (70,2);writeLn (' OADING');DELAY1;
GotoXY (70,2);writeLn ('L ADING');DELAY1;
GotoXY (70,2);writeLn ('LO DING');DELAY1;
procedure stop;
begin
clrscr;
GotoXY (30,10);WriteLn ('***************************');
GotoXY (29,11);WriteLn ('**');GotoXY (56,11);WriteLn ('**');
GotoXY (25,12);WriteLn ('*****');GotoXY (57,12);WriteLn
('*****');
GotoXY (29,13);WriteLn ('**');GotoXY (56,13);WriteLn ('**');
GotoXY (30,14);WriteLn ('***************************');
GotoXY (38,12);WriteLn ('TERIMA KASIH');
GotoXY (75,2);writeLn ('5');DELAY1;DELAY1;DELAY1;DELAY1;DELAY1;
GotoXY (75,2);writeLn ('4');DELAY1;DELAY1;DELAY1;DELAY1;DELAY1;
GotoXY (75,2);writeLn ('3');DELAY1;DELAY1;DELAY1;DELAY1;DELAY1;
GotoXY (75,2);writeLn ('2');DELAY1;DELAY1;DELAY1;DELAY1;DELAY1;
GotoXY (75,2);writeLn ('1');DELAY1;DELAY1;DELAY1;DELAY1;DELAY1;
GotoXY (75,2);writeLn ('0');DELAY1;DELAY1;DELAY1;DELAY1;DELAY1;
delay2;
clrscr;
GotoXY (30,7);WriteLn ('***************************');
GotoXY (29,11);WriteLn ('**');GotoXY (56,11);WriteLn ('**');
GotoXY (25,12);WriteLn ('*****');GotoXY (57,12);WriteLn
('*****');
GotoXY (29,13);WriteLn ('**');GotoXY (56,13);WriteLn ('**');
GotoXY (30,17);WriteLn ('***************************');
GotoXY (38,12);WriteLn ('TERIMA KASIH');
delay2;
clrscr;
GotoXY (30,4);
WriteLn ('***************************');
GotoXY (20,8);WriteLn ('**');GotoXY (65,8);WriteLn ('**');
GotoXY (25,12);WriteLn ('*****');GotoXY (57,12);WriteLn
('*****');
GotoXY (20,16);WriteLn ('**');GotoXY (65,16);WriteLn ('**');
GotoXY (30,20);WriteLn ('***************************');
GotoXY (38,12);WriteLn ('TERIMA KASIH');
delay2;
clrscr;
GotoXY (11,4);WriteLn ('**');GotoXY (74,4);WriteLn ('**');
GotoXY (16,12);WriteLn ('*****');GotoXY (65,12);WriteLn
('*****');
GotoXY (11,20);WriteLn ('**');GotoXY (74,20);WriteLn ('**');
GotoXY (38,12);WriteLn ('TERIMA KASIH');
delay2;
clrscr;
GotoXY (8,12);WriteLn ('*****');GotoXY (73,12);WriteLn
('*****');
GotoXY (38,12);WriteLn ('TERIMA KASIH');
delay2;
clrscr;
GotoXY (38,12);WriteLn (' ERIMA KASI ');delay2;
GotoXY (38,12);WriteLn (' RIMA KAS ');delay2;
GotoXY (38,12);WriteLn (' IMA KA ');delay2;
GotoXY (38,12);WriteLn (' MA K ');delay2;
GotoXY (38,12);WriteLn (' A ');delay2;
GotoXY (38,12);WriteLn (' ');delay2;
end;
procedure input2;
begin
val(koefs,koef[i],code);
if (code <> 0) then
begin
gotoxy (10,6);
writeln('Maaf, Input Harus Berupa Angka ');
j := 0;
end
else
if (koef[i]<-20) or (koef[i] >20) then
begin
gotoxy (10,6);
writeln(' Masukkan nilai harus antara -20 s/d 20');
j := 0;
end
else
j :=1;
end;
procedure input3;
begin
val(as,a,code);
if (code <> 0) then
begin
gotoxy (10,6);
writeln('Maaf, Input Harus Berupa Angka ');
j := 0;
end
else
if (a<0) or (a >5) then
begin
gotoxy (10,6);
writeln(' Masukkan nilai harus antara 0-5');
j := 0;
end
else
j :=1;
end;
procedure input4;
begin
procedure input5;
begin
val(pilihs,pilih,code);
if (code <> 0) then
begin
gotoxy (10,12);
writeln('Maaf, Input Harus Berupa Pilihan Yang Sudah
Tertera');
j := 0;
end
else
if (pilih<0) or (pilih >4) then
begin
gotoxy (10,12);
writeln('Maaf, Input Harus Berupa Pilihan Yang Sudah
Tertera');
j := 0;
end
else
j :=1;
end;
{program utama}
Begin
judul1;
judul2;judul2;judul2;judul2;judul2;
clrscr;
Repeat
repeat
gotoxy(5,4);
Write('Masukkan Pangkat Tertinggi Dari Persamaan! ');Readln(Ps);
clrscr;
input1;
until j = 1;
repeat
gotoxy (5,4);
Write('Batas Awal Integral (a) : ');Readln(as);
clrscr;
input3;
until j =1;
repeat
gotoxy (5,4);
Write('Batas Akhir Integral (b) : ');Readln(bs);
clrscr;
input4;
until j =1;
repeat
gotoxy (5,4);
Writeln ('Pilih penyelesaian Dengan Metode Berikut :(n)');
gotoxy (5,5);
Writeln ('1. Metoda Trapesium');
gotoxy (5,6);
Writeln ('2. Metoda 1/3 Simpson');
gotoxy (5,7);
Writeln ('3. Metoda 3/8 Simpson');
gotoxy (5,8);
Writeln ('4. Metoda Boole');
gotoxy (5,10);
Write ('PILIHAN ANDA : ');
Readln (Pilihs);
clrscr;
input5;
until j=1;
{PROSES !!!!!!!!!}
fa := 0;
fb := 0;
For i := P downto 1 do
begin
fa := Suku(Koef[i], a, i) + fa;
fb := Suku(Koef[i], b, i) + fb;
end;
fa := fa + koef[0];
fb := fb + koef[0];
Int := fa + fb;
{Metode Trapesium}
If Pilih = 1 Then
Begin
h := (b-a);
n := 1;
sig := 0;
x0 := 0;
writeln;writeln;writeln;writeln;
writeln(' PANGKAT TERTINGGI PERSAMAAN : ',P);WRITELN;
For i:= P Downto 0 do
Writeln(' KOEFISIEN PANGKAT KE-',i,' : ',Koef[I]
:0:2);WRITELN;
Writeln(' BATAS AWAL INTEGRAL (a) : ',a:0:2);WRITELN;
Writeln(' BATAS AKHIR INTEGRAL (b) : ',b:0:2);WRITELN;
Writeln(' PILIHAN KE : ',pilih);WRITELN;
Writeln(' DENGAN METODE TRAPESIUM (N = 1)');
WRITELN(' MENGHASILKAN : ',Trapesium:0:2);
end;
x0 := x0 +h;
If i mod 2 =1 then
begin
fa := 0;
for i3 := P downto 1 do
fa := Suku(Koef[i3], x0, i3) + fa;
fa := fa+koef[0];
sig := sig + 4*fa;
end
else
begin
fa := 0;
for i3 := P downto 1 do
fa := Suku(Koef[i3], x0, i3) + fa;
fa := fa+koef[0];
sig := sig + 2*fa;
end;
end;
writeln;writeln;writeln;writeln;
writeln(' PANGKAT TERTINGGI PERSAMAAN : ',P);WRITELN;
For i:= P Downto 0 do
Writeln(' KOEFISIEN PANGKAT KE-',i,' : ',Koef[I]
:0:2);WRITELN;
Writeln(' BATAS AWAL INTEGRAL (a) : ',a:0:2);WRITELN;
If i mod 3 =1 then
begin
fa := 0;
for i3 := P downto 1 do
fa := Suku(Koef[i3], x0, i3) + fa;
fa := fa+koef[0];
sig := sig + 2*fa;
end
else
begin
fa := 0;
for i3 := P downto 1 do
fa := Suku(Koef[i3], x0, i3) + fa;
fa := fa+koef[0];
sig := sig + 3*fa;
end;
end;
writeln;writeln;writeln;writeln;
writeln(' PANGKAT TERTINGGI PERSAMAAN : ',P);WRITELN;
For i:= P Downto 0 do
Writeln(' KOEFISIEN PANGKAT KE-',i,' : ',Koef[I]
:0:2);WRITELN;
Writeln(' BATAS AWAL INTEGRAL (a) : ',a:0:2);WRITELN;
Writeln(' BATAS AKHIR INTEGRAL (b) : ',b:0:2);WRITELN;
Writeln(' PILIHAN KE : ',pilih);WRITELN;
Writeln(' DENGAN METODE 3/8 SIMPSON (N = 3)');
WRITELN(' MENGHASILKAN : ',Simpson:0:2);
end;
{metode boole}
If Pilih = 4 Then
Begin
h := (b-a)/4;
n := 4;
sig := 0;
x0 := 0;
writeln;writeln;writeln;writeln;
writeln(' PANGKAT TERTINGGI PERSAMAAN : ',P);WRITELN;
For i:= P Downto 0 do
Writeln(' KOEFISIEN PANGKAT KE-',i,' : ',Koef[I]
:0:2);WRITELN;
Writeln(' BATAS AWAL INTEGRAL (a) : ',a:0:2);WRITELN;
Writeln(' BATAS AKHIR INTEGRAL (b) : ',b:0:2);WRITELN;
Writeln(' PILIHAN KE : ',pilih);WRITELN;
Writeln(' DENGAN METODE BOOLE (N = 4)');
WRITELN(' MENGHASILKAN : ',boole:0:2);
end;
writeln;writeln;
Write(' ANDA INGIN MENGULANG (Y/T) ? ');
ULANG := readkey;
clrscr;
Until upcase (ULANG) <>'Y';
stop;
DoneWinCrt;
End.
1. Fungsi pangkat
Function Pangkat(pkt:Integer;Basis:Real):Real;
var sum1 : real;
Begin
Sum1 := 1;
For i2:=pkt downto 1 do
sum1 := Basis*sum1;
Pangkat := sum1;
end;
2. Fungsi suku
Function Suku(koef, Basis:Real; P:integer) : real;
Begin
Suku := koef * Pangkat(P, basis) ;
End;
Fungsi ini digunakan untuk menentukan besar koefisien dan perhitungannya dari masing –
masing pangkat dalam suatu persamaan yang telah diinputkan. Fungsi ini akan dipanggil
pada program utama
3. Procedure
Pada program diatas terdapat beberapa procedure yaitu :
Procedure delay1 dan delay2
Kedua procedure ini digunakan untuk menyisipkan waktu jeda pada program.
Procedure ini digunakan pada procedure judul1 dan judul2 untuk memberikan jeda
waktu pada procedure tersebut.
Procedure stop
Procedure ini digunakan untuk memberikan tampilan penutup pada akhir
program. Procedure ini akan dipanggil pada akhir dari program utama.
X3 + 3X2 + 5X - 10 = 0
Pada saat program dijalankan sebelum pemasukkan nilai program akan menampilkan gambar
sebagai berikut :
3. Kemudian masukkan batas awal integral dari persamaan tersebut. Misalkan saja batas
awalnya adalah 1 yang seperti terlihat pada gambar dibawah ini :
4. Masukkan batas akhir integral dari persamaan tersebut. Misalkan saja batas akhirnya
adalah 2 yang seperti terlihat pada gambar dibawah ini :
6. Jika pengguna ingin mengulang lagi mengunakan program diatas dapat langsung
menekan huruf “Y” dan bila tidak dapat langsung menekan huruf “T” dan keluar dari
program. Hasilnya langsung di dapat seperti pada gambar di bawah ini :
Dan apabila pengguna memasukkan nilai yang menurut program diluar dari batasan
nilai yang telah diseting sebelumnya oleh pembuat program maka program akan
menampilkan beberapa pesan berbeda yang mengharuskan pengguna memasukkan nilai
sesuai dengan pesan tersebut dan program meminta penginputan nilai kembali yang benar.
Salah satu contohnya seperti dibawah ini :
Agama : Hindu
Email : turusdi.info@gmail.com
www.facebook.com/turusdi