Anda di halaman 1dari 6

Tugas Kuliah

KOMPUTASI NUMERIK

Dosen :
Dr. rer. nat. Ir. Yuswan Muharam, MT

Disusun Oleh :
Kelompok 4
1. Imas Mega Pratiwi

(1306370524)

2. Mega Puspitasari

(1306370713)

3. Ryan Andriant

(1306409356)

DEPARTEMEN TEKNIK KIMIA


FAKULTAS TEKNIK
UNIVERSITAS INDONESIA
DEPOK, NOVEMBER 2014

Tugas
Buatlah program Pascal untuk menyelesaikan SPANL di bawah ini dengan menggunakan
Metode Newton.

w 3 2w 2 3w 4 12.828
wx xy yz 3,919
w 2 2wx x 2 1
w x y z 3.663

Pembahasan
SPANL di atas dapat diselesaikan dengan menggunakan metode Newton. Dalam
menyelesaiakan SPANL di atas diperlukan fungsi turunan pertama. Dimana dalam hal ini kami
menggunakan metode diferensial selisih maju dari ketiga metode diferensial yang ada untuk
mendapatkan persamaan turunan pertamanya.
f ' ( x)

f ( x h) f ( x )
h

Di dalam menyelesaikan SPANL juga dikenal matriks Jacobian, dimana matriks yang
telah terbentuk kemudian dapat digunakan sebagai SPAL sehingga untuk mendapatkan solusi
x1 hingga xn dapat digunakan metode eliminasi Gauss. Bila x yang dihasilkan belum
memenuhi kriteria konvergensi yang diitetapkan, maka nilai x yang diperoleh ditambahkan
pada nilai x taksiran awal untuk kemudian digunakan sebagai nilai x baru. Perhitungan
dihentikan hingga konvergensi tercapai. Berikut listing program pascal yang digunakan untuk
menyelesaikan program pascal di atas :
program SPANL_Kelompok_4;
v
ar
a,b,c,it,i : integer;
y : real;
x : array [1..4] of real;
f : array [1..4] of real;
nf : array[1..4,1..5] of real;
xh : array [1..4] of real;
fxh : array [1..4] of real;
df : array [1..4] of real;
d : array [1..4] of real;
p : array[1..5] of real;
dx : array [1..4] of real;
begin
writeln('input taksiran awal : ');
for a:=1 to 4 do

readln(x[a]);
write('input jumlah iterasi : ');
readln(i);
for it:=1 to i do
begin
f[1]:=x[1]*x[1]*x[1]+2*x[1]*x[1]+3*x[1] ;
f[2]:=x[1]*x[2]+x[2]*x[3]+x[3]*x[4];
f[3]:=x[1]*x[1]+2*x[1]*x[2]+x[2]*x[2];
f[4]:=x[1]+x[2]+x[3]-x[4];
nf[1,5]:=12.828-4-f[1];
nf[2,5]:=-3.919-f[2];
nf[3,5]:=1-f[3];
nf[4,5]:=-3.663-f[4];
for a:=1 to 4 do
begin
for b:=1 to 4 do
begin
{diferensial selisih maju}
xh[b]:=x[b]+0.00001;
fxh[1]:=xh[1]*xh[1]*xh[1] + 2*xh[1]*xh[1] + 3*xh[1];
fxh[2]:=xh[1]*xh[2] + xh[2]*xh[3] + xh[3]*xh[4];
fxh[3]:=xh[1]*xh[1] + 2*xh[1]*xh[2] + xh[2]*xh[2];
fxh[4]:=xh[1] + xh[2] + xh[3] - xh[4];
df[a]:=(fxh[a]-f[a])/0.00001;
xh[b]:=x[b];
nf[a,b]:=df[a];
end;
end;
{eliminasi gauss}
{a. substitusi dan eliminasi}
for c:=1 to 3 do
begin
for a:=c to 4 do
begin
p[a]:= nf[a,c]/nf[c,c];
p[c]:=0;
for b:=1 to 5 do
nf[a,b]:=nf[a,b]-p[a]*nf[c,b] ;
end;
end;
{b. substitusi balik}
y:=0;
for a:=4 downto 1 do
begin
d[a]:=(nf[a,5]-y)/nf[a,a];
y:=0;
for b:=4 downto a do
y:= y+nf[a,b]*d[b];
end;
for a:=1 to 4 do
x[a]:=x[a]+d[a];

clrscr;
for a:=1 to 4 do
writeln('x',a,' = ',x[a]:9:4,'
end;

d',a,' = ',d[a]:5:2);

end.

Adapun bagian-bagian program dari penyelesaian SPANL di atas adalah sebagai berikut :
program SPANL_Kelompok_4;
uses wincrt;
var
a,b,c,it,i : integer;
y : real;
x : array [1..4] of real;
f : array [1..4] of real;
nf : array[1..4,1..5] of real;
xh : array [1..4] of real;
fxh : array [1..4] of real;
df : array [1..4] of real;
d : array [1..4] of real;
p : array[1..5] of real;
dx : array [1..4] of real;

Deklarasi Variabel

Main Program

begin
end.

Bagian main program


writeln('input taksiran awal : ');
for a:=1 to 4 do
readln(x[a]);
write('input jumlah iterasi : ');

readln(i);
for it:=1 to i do
begin
f[1]:=x[1]*x[1]*x[1]+2*x[1]*x[1]+3*x[1] ;
f[2]:=x[1]*x[2]+x[2]*x[3]+x[3]*x[4];
f[3]:=x[1]*x[1]+2*x[1]*x[2]+x[2]*x[2];
f[4]:=x[1]+x[2]+x[3]-x[4];
nf[1,5]:=12.828-4-f[1];
nf[2,5]:=-3.919-f[2];
nf[3,5]:=1-f[3];

nf[4,5]:=-3.663-f[4];

Deklarasi
Fungsi

Bagian metode diferensiasi selisih maju pada proses menentukan turunan pertama
for a:=1 to 4 do
begin
for b:=1 to 4 do
begin
{diferensial selisih maju}
xh[b]:=x[b]+0.00001;
fxh[1]:=xh[1]*xh[1]*xh[1] + 2*xh[1]*xh[1] +
3*xh[1];
fxh[2]:=xh[1]*xh[2] + xh[2]*xh[3] + xh[3]*xh[4];
fxh[3]:=xh[1]*xh[1] + 2*xh[1]*xh[2] + xh[2]*xh[2];
fxh[4]:=xh[1] + xh[2] + xh[3] - xh[4];
df[a]:=(fxh[a]-f[a])/0.00001;
xh[b]:=x[b];
nf[a,b]:=df[a];
end;

end;

Bagian program eliminasi gauss


{eliminasi gauss}
{a. substitusi dan eliminasi}
for c:=1 to 3 do
begin
for a:=c to 4 do
begin
p[a]:= nf[a,c]/nf[c,c];
p[c]:=0;
for b:=1 to 5 do
nf[a,b]:=nf[a,b]-p[a]*nf[c,b] ;
end;
end;
{b. substitusi balik}
y:=0;
for a:=4 downto 1 do
begin
d[a]:=(nf[a,5]-y)/nf[a,a];
y:=0;
for b:=4 downto a do
y:= y+nf[a,b]*d[b];
end;
for a:=1 to 4 do

x[a]:=x[a]+d[a];

Berikut hasil eksekusi program dengan taksiran awal


w = x1 = 23,
x = x2 = 34
y = x3 = 56
z = x4 = 67
dengan jumlah iterasi 10.

Jadi, dapat disimpulkan dengan menggunakan program SPANL di atas, diperoleh hasil :
w = 26,5991
x = -142,5809
y = 11,1483
z = 51,6612

Anda mungkin juga menyukai