Anda di halaman 1dari 11

Tugas 2 Pemodelan Teknik Kimia

Dosen: Prof. Dr. Ir. Setijo Bismo, DEA

Metode SPAL, SPANL, dan Goal Seek


Nama : Nida Fathia
NPM : 1506673170
Jurusan : Teknik Kimia

JAWABAN VERSI EXCEL


Soal 1.a:
x + y +3 z=5
x + y + z=7
4 x+ 4 y +12 z=20
Jawaban:
1. SPAL diatas adalah bentuk dari [ A ] [ x ] =[ b ]. Pertama adalah memasukan angka-angka
koefisien serta hasilnya pada excel dengan bentuk seperti bentuk dasarnya, yakni [ A ]
pada sebelah kiri, lalu [ x ] dikosongkan terlebih dahulu dan [ b ] pada sebelah kanan.

2. Menyeleksi
semua
kolom yang
akan diisi dengan
nilai-nilai.

3. Sesuai
dengan
metode
Gauss, untuk mentukan nilai x, pake digunakan rumus x= A−1 b , jika Ax=b. Oleh
karena itu, digunakanlah formula excel sebagai berikut dan menekan shift + ctrl +
enter.

mmult adalah fungsi excel untuk mengalikan 2 matriks. Sedangkan, minverse adalah
fungsi excel untuk mengubah matriks dari seleksi ke bentuk inverse-nya.
4. Namun, pada persamaan ini tidak terdapat nilai x, y dan z yang sesuai dikarenakan
sistem persamaan ini divergen.

Soal 1.b:
3 u+1,1 v−2 w−1,8 x=11
3,2 u+2,1 v +3,2 w+2,2 x=0
3,4 u+2,3 v+ 4,1 w+3,2 x=6
1,6 u+1,1 v−3,2w +2,4 x=−5

Jawaban:
1. SPAL diatas adalah bentuk dari [ A ] [ x ] =[ b ]. Pertama adalah memasukan angka-angka
koefisien serta hasilnya pada excel dengan bentuk seperti bentuk dasarnya, yakni [ A ]
pada sebelah kiri, lalu [ x ] dikosongkan terlebih dahulu dan [ b ] pada sebelah kanan.

2. Menyeleksi semua kolom yang akan diisi dengan nilai-nilai.

3. Sesuai dengan metode Gauss, untuk mentukan nilai x, pake digunakan rumus
x= A−1 b , jika Ax=b. Oleh karena itu, digunakanlah formula excel sebagai berikut
dan menekan shift + ctrl + enter.
mmult adalah fungsi excel untuk mengalikan 2 matriks. Sedangkan, minverse adalah
fungsi excel untuk mengubah matriks dari seleksi ke bentuk inverse-nya.
4. Maka nilai-nilai dari x adalah:
u = 40,67527
v = -77,86745
w = 3,11166
x = 10,63794

Soal 2.a:
2 sin x+3 cos y=0,4119
2 e x −3 ln y=3,427

Jawaban:
1. SPANL diatas dapat ditulis dalam bentuk [ A ] [ x ] =[ b ]. [ A ] pada matriks ini adalah
matriks jacobian, dimana dalam satu baris adalah turunan pertama pada satu
persamaan dan kolomnya adalah turunan terhadap variabel yang ada. [ x ] adalah nilai
perbedaan dari nilai x tebakan (pada saat ini dikosongkan). [ b ] adalah hasil dari
persamaan awal, apabila nilai variabel dimasukan sesuai dengan nilai variabel
tebakan.
2. Menyeleksi semua kolom yang akan diisi dengan nilai-nilai y.

3. Sesuai dengan metode Gauss, untuk mentukan nilai x, pake digunakan rumus
x= A−1 b , jika Ax=b. Oleh karena itu, digunakanlah formula excel sebagai berikut
dan menekan shift + ctrl + enter.

mmult adalah fungsi excel untuk mengalikan 2 matriks. Sedangkan, minverse adalah
fungsi excel untuk mengubah matriks dari seleksi ke bentuk inverse-nya.

4. Iterasi dilakukan hingga perbedaan nilai variabel sesuai dengan konvergensi (¿ 10−6 ).
Konvergensi tercapai pada iterasi kelima.
5. Maka nilai-nilai dari y adalah:
x = 1,016809
y = 2,014908

Soal 2.b:
x 1 ∙ x 2−x 3 ∙ x2 + x 4 ∙ x3 =−3,919

x 31+ 2 x 22−3 x 3−4 x 4=−2,580


x 1+ x2 + x 3−x 4 =−3,663

x 21+ 2 x 1 ∙ x 2+ x22=1,000

Jawaban:
1. SPANL diatas dapat ditulis dalam bentuk [ A ] [ x ] =[ b ]. [ A ] pada matriks ini adalah
matriks jacobian, dimana dalam satu baris adalah turunan pertama pada satu persamaan
dan kolomnya adalah turunan terhadap variabel yang ada. [ x ] adalah nilai perbedaan dari
nilai x tebakan (pada saat ini dikosongkan). [ b ] adalah hasil dari persamaan awal, apabila
nilai variabel dimasukan sesuai dengan nilai variabel tebakan.

2. Menyeleksi semua kolom yang akan diisi dengan nilai-nilai x.

3. Sesuai dengan metode Gauss, untuk mentukan nilai x, pake digunakan rumus
x= A−1 b , jika Ax=b. Oleh karena itu, digunakanlah formula excel sebagai berikut
dan menekan shift + ctrl + enter.

mmult adalah fungsi excel untuk mengalikan 2 matriks. Sedangkan, minverse adalah
fungsi excel untuk mengubah matriks dari seleksi ke bentuk inverse-nya.
4. Iterasi dilakukan hingga perbedaan nilai variabel sesuai dengan konvergensi (¿
10−5 ).

5. Setelah dilakukan iterasi, didapatkan konvergensi pada iterasi kelima belas dengan
nilai-nilai dari y adalah:
x1 = -3,85713
x2 = 4,85713
x3 = -3,75326
x4 = 0,90974

Soal 3:
For the chemical reaction
2A ↔ B + 2C
The equilibrium constant expression is
[B][C ]2
K=
[ A ]2
For this reaction, the value of the equilibrium constant K at a certain temperature is 0.288 ml
L-1.
A reaction mixture is prepared in which the initial concentrations are [A]=1, [B]=0, [C]=0
molL-1. From mass balance and stoichiometry, the concentrations at equilibrium are [A]=1-

4 x3
2x, [B]=x, [C]=2x mol L-1, from which the expression for K is . Find the value of
1−4 x−4 x 2
x that makes the expression have a value of 0.288, and calculate the concentrations of A, B,
and C at equilibrium.

Jawaban:
1. Meng-input nilai x di satu cell dan meng-input persamaan dengan nilai x di x tebakan
di cell lainnya.

2. Persamaan yang di-input ditulis sebagai berikut.


4 x3
0,288=
1−4 x−4 x 2
3. Memillih Goal Seek, Data > What-If Analysis > Goal Seek.
4. Menuliskan nilai Set cell sebagai cell persamaan. Menuliskan nilai To value sebagai
0,288. Menuliskan nilai By changing cell sebagai cell nilai x. Lalu menekan Ok.

5. Goal Seek akan mencari nilai x yang mendekati persamaan tersebut dengan
pendekatan numeris. Setelah pencarian, Goal Seek tidak dapat menemukan nilai x
yang memenuhi persamaan tersebut.

6. Ditemukan nilai x adalah 0.190042574141244 yang dinilai paling mendekati nilai x

yang sesungguhnya.

JAWABAN VERSI KODE FORTRAN


1. Soal tentang SPAL atau Sistem Persamaan Aljabar Linear :
Kode Program Eliminasi Gauss:
Program Eliminasi_Gauss
Parameter (NofEqn = 3)
Real*8 A(NofEqn,NofEqn)
Real*8 b(NofEqn),x(NofEqn)
Integer I,J,K,NEQ
Real*8 Diag,FMul,SUm
C ---> Seksi ELIMINASI GAUSS <---
C INPUT N => Jumlah Persamaan HARUS = NofEqn
NEQ = NofEqn
C AKHIR dari INPUT N
C INPUT A => Masukkan harga komponenen MATRIKS A
DO I=1,NEQ
DO J=1,NEQ
WRITE(*,'(A,I1,A,I1,A,$)') 'A(',I,',',J,') = '
READ(*,*) A(I,J)
END DO
WRITE(*,'(A,I1,A,$)') 'b(',I,') = '
READ(*,*) b(I)
END DO
C AKHIR dari INPUT A dan b
C ---> Pembentukan MATRIKS DIAGONAL ATAS <---
Do I=1, NEQ-1
Diag = A(I,I)
Do J=I+1, NEQ
FMul = A(J,I)/Diag
Do K=I,NEQ
A(J,K) = A(J,K) - A(I,K)*FMul
Enddo
b(J) = b(J) - b(I)*FMul
Enddo
Enddo
C ---> AKHIR dari Pembentukan MATRIKS DIAGONAL ATAS <---
C ---> Backsubstitution <---
x(NEQ) = b(NEQ)/A(NEQ,NEQ)
Do I=NEQ-1,1,-1
Sum = 0.0
Do J=NEQ,I+1,-1
Sum = Sum + A(I,J)*x(J)
Enddo
x(I) = (b(I) - Sum)/A(I,I)
Enddo
C ---> AKHIR dari Backsubstitution <---
C ---> AKHIR dari Seksi Eliminasi GAUSS <---
Write(*,*) 'Matriks DIAGONAL ATAS dan VEKTOR RUAS KANAN:'
Do I=1,NEQ
Do J=1,NEQ
Write(*,'(F8.4,3X,$)') A(I,J)
Enddo
Write(*,'(F8.4)') b(I)
Enddo
Write(*,*)
Write(*,*) 'HASIL, berupa VEKTOR JAWAB:'
Do I=1,NEQ
Write(*,'(2X,A2,I1,A4,F10.6)') 'x(',I,') = ',x(I)
Enddo
STOP
END
C === AKHIR dari Program Utama ===

Langkah-langkah menyelesaikan Pers. menggunakan kode fortran:


a. Buka program Plato/Force/Fortran versi apapun yang dimiliki, ubah
parameter (number of equation) menjadi jumlah equation yang diinginkan
b. Compile dan run program (CTRL + F5)
c. Input nilai a(1,1) dan B(1) sampai a(i,j) dan B(i) [i adalah jumlah baris, j
adalah jumlah kolom]
d. Kemudian keluar hasil berupa matriks diagonal atasnya dan hasil x
masing-masing

2. Soal tentang SPANL atau Sistem Persamaan Aljabar Non Linear


Kode Program SPANL 2 persamaan:
Program Contoh_SPANL_2Pers

PARAMETER (NEQ = 2)

INTEGER ITER,ITMAX,I,N
REAL*8 Aij(NEQ,NEQ)
REAL*8 FX(NEQ),DX(NEQ),X(NEQ)
LOGICAL Solved,Converged,ItMaxReached
REAL*8 FTOL,TOL,NV,NormVect

Write(*,17) 'Jumlah persamaan/variabel: '


Read(*,*) N
Write(*,*) 'Harga-harga awal untuk X:'
Do I = 1,N
Write(*,18) 'X0[',I,']= '
Read(*,*) X(I)
EndDo

Write(*,17) 'ITMAX: '


Read(*,*) ITMAX
Write(*,17) 'FTOL: '
Read(*,*) FTOL
Write(*,17) 'XTOL: '
Read(*,*) TOL

17 FORMAT(A,$)
18 FORMAT(A,I1,A,$)

C Menghitung harga norma fungsi SPANL


CALL FSPANL(X,FX,N)
NV = NormVect(FX,N)
ITER = 0

If (NV .LT. FTOL) then


C memeriksa harga norma fungsi SPANL
WRITE(*,*) 'SOLVED: Norm Vektor is less than TOLerance'
STOP
EndIf

10 CONTINUE
ITER = ITER + 1

CALL JACSPANL(X,Aij,N)
CALL EGAUSS(Aij,DX,FX,N)

Do I= 1,N
X(I) = X(I) - DX(I)
EndDo

CALL FSPANL(X,FX,N)
Solved = (NormVect(FX,N) .LT. FTOL)
If (.NOT. Solved) CALL FSPANL(X,FX,N)

Converged = (NormVect(DX,N) .LT. TOL)


ItMaxReached = (ITER .GE. ITMAX)
IF (.NOT. (Solved .OR. Converged .OR. ItMaxReached
* .OR. (ITER .LE. 4))) GO TO 10
IF (.NOT. ItMaxReached) then
Write(*,*) 'Vektor jawab X adalah:'
Do I = 1,N
write(*,*) 'X[',I,']= ',X(I)
EndDo
Do I = 1,N
write(*,*) 'DX[',I,']= ',DX(I)
EndDo
Do I = 1,N
write(*,*) 'FX[',I,']= ',FX(I)
EndDo
Write(*,*) 'Jumlah Iterasi: ',ITER
Else
Write(*,*) 'Tak ada KONVERGENSI setelah ',ITMAX,
* ' Iterasi terlampaui'
EndIf

STOP
END

Subroutine EGAUSS (A,x,b,noe)


INTEGER noe
REAL*8 A(noe,*),x(*),b(*)
INTEGER i,j,k
REAL*8 pivot,mult,top

Do j=1,noe-1
C {Triangularisasi}
pivot = a(j,j)
Do i=j+1,noe
mult = a(i,j)/pivot
Do k = j+1,noe
a(i,k) = a(i,k)- mult*a(j,k)
b(i) = b(i) - mult*b(j)
EndDo
EndDo
EndDo
C {Triangularisasi}

C *---Substitusi Balik---*
x(noe) = b(noe)/a(noe,noe)
Do i = noe-1,1,-1
top = b(i)
Do k = i+1,noe
top = top - a(i,k)*x(k)
x(i) = top/a(i,i)
EndDo
EndDo
RETURN
END

Subroutine FSPANL (x,f,noe)


C Fungsi vektorial dari SPANL

INTEGER noe,i
REAL*8 x(noe),f(noe), fx(noe)

fx(1) = 2*sin*x(1)+3*cos*x(2)-0.4119
fx(2) = 2*exp**x(1) - 3*ln*x(2)-3.427

Do i = 1,noe
f(i) = fx(i)
EndDo

RETURN
END

Subroutine JACSPANL(x,A,noe)
C Matriks JACOBI dari Fungsi SPANL
INTEGER noe
REAL*8 x(*),A(noe,*)

A(1,1) = 2*x(1)*cos*x(1)
A(1,2) = -3*x(2)*sin*x(2)
A(2,1) = 2*exp**x(1)
A(2,2) = -3/x(2)
RETURN
END
Function NormVect(x,n)
INTEGER n,i
REAL*8 NormVect,x(*)
REAL*8 sum
sum = 0.0
Do i = 1,n
sum = sum + x(i)**2
EndDo
NormVect = sum
RETURN
END

Langkah-langkah menggunakan program SPANL:


a. Buka, kemudian ubah parameter (number of Eqn) menjadi jumlah
parameter persamaan yang diinginkan
b. Ubah nilai f(x) pada subroutine spanl menjadi persamaan yang diinginkan
dengan memasukkan x tebakan ke persamaan tersebut
c. Ubah nilai matriks jacobian pada seksi matriks jacobian menjadi nilai
matriks turunan setiap kolomnya (untuk j = 1 turunkan thdp x, j=2
turunkan thdp y, dst).
d. Kemudian compile dan run
e. Masukkan jumlah persamaan, nilai awal untuk masing-masing x, Iterasi
maksimum, FTOL (keakuratan untuk f), dan XTOL (keakuratan untuk x)
f. Maka akan muncul tampilan yang menunjukkan nilai x, dx, dan fx pada
iterasi tsb.

Anda mungkin juga menyukai