5 0 204 KB
LABORATORIUM TEKNIK KIMIA FAKULTAS TEKNIK UPN “VETERAN” JAWA TIMUR Praktikum Percobaan
: MATEMATIKA TEKNIK I :METODE NEWTON-RHAPSON DAN METODE SECANT Tanggal : 26 FEBRUARI 2019 Pembimbing : DR.T.IR.DYAH SUCI .MT
Nama NPM/Semester Sesi Paralel
: ABDU RACHMAN WP : 17031010168/ IV : III :D
LAPORAN RESMI
SOAL 1. Jelaskan Pengertian, Tujuan, Manfaat, Perbedaan, Persamaan, dan Algoritma Dari, Metode Newton Rhapson, Metode Secant, Dan Metode Iterasi. 2. Selesaikanlah Persoalan Teknik Kimia Dibawah Ini Untuk Mencari Nilai Suatu Variable Dengan Metode Numeric Menggunakan Program Matrix Laboratory (MatLab) a. Dalam Meneliti Derajat Pencampuran Dalam Suatu Tangki Berpengaduk, Diperoleh Suatu Persamaan Sebagai Berikut : −1 x
( ) 0,078125=2 x−2 x (1−e ) 2
Dimana x Adalah Bilangan Disperse Tangki. Tentukan Harga x Dengan Metode Newton Raphson Dan Metode Secant Dengan Toleransi Sebesar 0,0001 ! Diberikan Harga Awal x = 0,005 Buatlah Program Metode Newton Rhapson dan Metode Secant Dengan Matrix Laboratory (MatLab) Yang Terdiri Dari Listing Program, Hasil Run, Dan Flowchart Dari Persamaan Berikut Ini!! (Program Dijadikan Dalam 1 Program Pada MatLab, Dan Dapat Diinputkan Untuk Dipilih) (Setiap Praktikan Harus Berbeda). b. Reaksi Kesetimbangan Dalam Suatu Proses Teknik Kimia, Campuran Karbon Monoksida Dan Oksigen Mencapai Kesetimbangan Pada Suhu 300oK Dan Tekanan 5 Atm. Reaksi Teiritisnya Adalah CO + 1/2O2 CO2 Reaksi Kimia Yang Sebenarnya Terjadi Dapat Ditulis Sebagai CO + O2 xCO2 + (1+X)/2 O2 + (1-X) CO2
51
Persamaan Kesetimbangan Kimia Untuk Menentukan Fraksi Mol CO Yang Tersisa Yaitu X, Ditulis Sebagai
( 1−x ) (3+ x )1/ 2 Kp= x (x +1)1 /2 P1/ 2
, 0=Torelansi 6. Program akan memproses dan menampilkan nilai i , x1, x2, x3, f(x1), f(x2), dan f(x3) 7. Program akan memproses dengan nilai x1 sama dengan x2 , x2 sama dengan x3 dan i sama dengan i ditambah satu 8. Program selesai
c. Iterasi
55
1. Memulai program 2. Input masukkan persamaan f(x) dan masukkan nilai x1, dna torelansi 3. Program akan memproses nilai x2 dengan rumus x2 dan besar kesalahan fungsi 4. Program akan mengulang dengan batas besar kesalahan >= torelansi 5. Program akan memproses dengan nilai x1 sama dengan x2 dan i sama dengan i ditambah satu 6. Program akan menampilkan nilai i, xi, xi+1, dan % 7. Program selesai
56
2. a) Algoritma Program 1) Mulai 2) Masukkan persamaan (f) 3) Masukkan pilihan anda (s) 4) Jika memilih satu a) Masukkan nilai x1 b) Program akan memproses dan menampilkan nilai i,x1,x2,fi,f2 c) Perulangan dengan nilai mutlak x2 dikurang x1 dibagi dengan 2 lebih besar dari nilai toleransi (0.0001) d) Program akan memproses dan menampilkan nilai i,x1,x2,fi,f2 5) Jika memilih 2 a) Masukkan nilai x1 dan x2 b) Program akan memproses dengan fx=inline(char(f)) c) Perulangan dengan nilai mutlak fx(x2) lebih besar atau sama dengan dari nilai toleransi (0.0001) d) Program akan memproses dan menampilkan nilai i,x1,x2,x3,fx(x1),fx(x2),fx(x3) e) Program akan memproses dengan nilai x1 sama dengan x2 , x2 sama dengan x3 dan i sama dengan i ditambah satu 6) Selesai
Flowchart Program
57
Listing Program clear all;
58
clc; syms x disp('Mencari Nilai x derajat pencampuran dengan Metode Newton-Raphtson dan Secant'); f=input('Masukkan persamaan = '); tol=0.0001; disp('1. Metode Newton Raphtson '); disp('2. Metode Secant '); s=input('Pilih Metode yang anda inginkan = '); switch s case 1 disp('Metode Newton Rhapson'); x1=input('Masukkan xi = '); fi=subs(f,x,x1); fd=diff(f); f2=subs(fd,x,x1); x2=x1-(fi/f2); i=1; disp('-------------------------------------------------------------------'); fprintf('%1s%7s%10s%15s%15s\n','No','xi','xi+1','fi','Turunan'); disp('-------------------------------------------------------------------'); fprintf('%1.0f%10.3f%10.3f%15.3f%15.3f\n',i,x1,x2,fi,f2); while abs((x2-x1)/x2)>tol i=i+1; x1=x2; fi=subs(f,x,x1); f2=subs(fd,x,x1); x2=x1-(fi/f2); fprintf('%1.0f%10.3f%10.3f%15.3f%15.3f\n',i,x1,x2,fi,f2); end disp('-------------------------------------------------------------------'); case 2
59
disp('Metode Secant'); x1=input ('Masukkan x1 = '); x2=input ('Masukkan x2 = '); fx=inline(char(f)); x3=x2-(fx(x2))*(x2-x1)/(fx(x2)-fx(x1)); i=1; disp('-----------------------------------------------------------------------------------'); fprintf('%1s%7s%10s%15s%15s%15s%15s\n','No','xi-1','xi','xi+1','f(xi1)','f(xi)','f(xi+1)'); disp('-----------------------------------------------------------------------------------'); while abs(fx(x3))>=tol fprintf('%1.0f%10.3f%10.3f%15.3f%15.3f%15.3f %15.3f\n',i,x1,x2,x3,fx(x1),fx(x2),fx(x3)); x1=x2; x2=x3; i=i+1; x3=x2-(fx(x2))*(x2-x1)/(fx(x2)-fx(x1)); end disp('-----------------------------------------------------------------------------------'); end
Hasil Run Program Jika memilih satu
60
Jika memilih dua
b)
Algoritma Program 1) Mulai 2) Masukkan persamaan (f) 3) Masukkan pilihan anda (s)
61
4) Jika memilih satu e) Masukkan nilai x1 f) Program akan memproses dan menampilkan nilai i,x1,x2,fi,f2 g) Perulangan dengan nilai mutlak x2 dikurang x1 dibagi dengan 2 lebih besar dari nilai toleransi (0.0001) h) Program akan memproses dan menampilkan nilai i,x1,x2,fi,f2 5) Jika memilih 2 f) Masukkan nilai x1 dan x2 g) Program akan memproses dengan fx=inline(char(f)) h) Perulangan dengan nilai mutlak fx(x2) lebih besaratau sama dengan dari nilai toleransi (0.0001) i) Program akan memproses dan menampilkan nilai i,x1,x2,x3,fx(x1),fx(x2),fx(x3) j) Program akan memproses dengan nilai x1 sama dengan x2 , x2 sama dengan x3 dan i sama dengan i ditambah satu 6) Selesai
62
Flowchart Program
63
Listing Program clear all;
64
clc; syms x disp('Mencari Nilai Fraksi Mol Sisa dengan Metode Newton-Raphtson dan Secant'); kp=input('Masukkan nilai Kp ='); P=input('Masukkan nilai P ='); f=input('Masukkan persamaan = '); tol=0.001; disp('1. Metode Newton Raphtson '); disp('2. Metode Secant '); s=input('Pilih Metode yang anda inginkan = '); switch s case 1 disp('Metode Newton Rhapson'); x1=input('Masukkan xi = '); fi=subs(f,x,x1); fd=diff(f); f2=subs(fd,x,x1); x2=x1-(fi/f2); i=1; disp('-------------------------------------------------------------------'); fprintf('%1s%7s%10s%15s%15s\n','No','xi','xi+1','fi','Turunan'); disp('-------------------------------------------------------------------'); fprintf('%1.0f%10.3f%10.3f%15.3f%15.3f\n',i,x1,x2,fi,f2); while abs((x2-x1)/x2)>tol i=i+1; x1=x2; fi=subs(f,x,x1); f2=subs(fd,x,x1); x2=x1-(fi/f2); fprintf('%1.0f%10.3f%10.3f%15.3f%15.3f\n',i,x1,x2,fi,f2); end
65
disp('-------------------------------------------------------------------'); case 2 disp('Metode Secant'); x1=input ('Masukkan x1 = '); x2=input ('Masukkan x2 = '); fx=inline(char(f)); x3=x2-(fx(x2))*(x2-x1)/(fx(x2)-fx(x1)); i=1; disp('-----------------------------------------------------------------------------------'); fprintf('%1s%7s%10s%15s%15s%15s%15s\n','No','xi-1','xi','xi+1','f(xi1)','f(xi)','f(xi+1)'); disp('-----------------------------------------------------------------------------------'); while abs(fx(x3))>=tol fprintf('%1.0f%10.3f%10.3f%15.3f%15.3f%15.3f %15.3f\n',i,x1,x2,x3,fx(x1),fx(x2),fx(x3)); x1=x2; x2=x3; i=i+1; x3=x2-(fx(x2))*(x2-x1)/(fx(x2)-fx(x1)); end disp('-----------------------------------------------------------------------------------'); end
Hasil Run Program Jika Memilih Metode 1
66
Jika Memilih Metode 2
c)
Algoritma Program 1) Mulai 2) Masukkan persamaan (f)
67
3) Masukkan pilihan anda (s) 4) Jika memilih satu i) Masukkan nilai v1 j) Program
akan
memproses
dan
menampilkan
nilai
i,v1,v2,fi,f2 k) Perulangan dengan nilai mutlak v2 dikurang v1 dibagi dengan 2 lebih besar dari nilai toleransi (0.001) l) Program
akan
memproses
dan
menampilkan
nilai
i,v1,v2,fi,f2 5) Jika memilih 2 k) Masukkan nilai V1 dan V2 l) Program akan memproses dengan fx=inline(char(f)) m) Perulangan dengan nilai mutlak fx(V2) lebih besaratau sama dengan dari nilai toleransi (0.001) n) Program
akan
memproses
dan
menampilkan
nilai
i,V1,V2,V3,fx(V1),fx(V2),fx(V3) o) Program akan memproses dengan nilai V1 sama dengan V2 , V2 sama dengan V3 dan i sama dengan i ditambah satu 6) Selesai
Flowchart program
68
Listing Program clear all;
69
clc; syms v disp('Mencari Nilai Volume Molar dengan Metode Newton-Raphtson dan Secant'); f=input('Masukkan persamaan = '); tol=0.001; disp('1. Metode Newton Raphtson '); disp('2. Metode Secant '); s=input('Pilih Metode yang anda inginkan = '); switch s case 1 disp('Metode Newton Rhapson'); v1=input('Masukkan Vi
= ');
fi=subs(f,v,v1); fd=diff(f); f2=subs(fd,v,v1); v2=v1-(fi/f2); i=1; disp('-------------------------------------------------------------------'); fprintf('%1s%7s%10s%15s%15s\n','No','vi','vi+1','fi','Turunan'); disp('-------------------------------------------------------------------'); fprintf('%1.0f%10.3f%10.3f%15.3f%15.3f\n',i,v1,v2,fi,f2); while abs((v2-v1)/v2)>tol i=i+1; v1=v2; fi=subs(f,v,v1); f2=subs(fd,v,v1); v2=v1-(fi/f2); fprintf('%1.0f%10.3f%10.3f%15.3f%15.3f\n',i,v1,v2,fi,f2); end disp('-------------------------------------------------------------------'); case 2
70
disp('Metode Secant'); V1=input ('Masukkan V1 = '); V2=input ('Masukkan V2 = '); fx=inline(char(f)); V3=V2-(fx(V2))*(V2-V1)/(fx(V2)-fx(V1)); i=1; disp('-----------------------------------------------------------------------------------'); fprintf('%1s%7s%10s%15s%15s%15s%15s\n','No','vi-1','vi','vi+1','f(vi1)','f(vi)','f(vi+1)'); disp('-----------------------------------------------------------------------------------'); while abs(fx(V3))>=tol fprintf('%1.0f%10.3f%10.3f%15.3f%15.3f%15.3f %15.3f\n',i,V1,V2,V3,fx(V1),fx(V2),fx(V3)); V1=V2; V2=V3; V3=V2-(fx(V2))*(V2-V1)/(fx(V2)-fx(V1)); i=i+1; end disp('-----------------------------------------------------------------------------------'); end
Hasil Run Program Jika memilih satu
71
Jika memilih dua
72