Modul 3 Mencari Akar
-
Upload
windu-nur-mohamad -
Category
Documents
-
view
491 -
download
53
Transcript of Modul 3 Mencari Akar
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 1
Dalam bagian ketiga ini, kita akan membahas tentang beberapa metode numerik yang dapat
digunakan untuk menemukan akar-akar persamaan non-linier. Masalah yang akan kita bahas
tersebut secara matematis dapat diterangkan sebagai pencarian harga harga x sedemikian hingga
memenuhi persamaan non-liner f (x) = 0.
Manakala kita mengatakan bahwa f (x) adalah fungsi non-linier dalam x , ini berarti bahwa f ( x)
tidak dinyatakan dalam bentuk ax + b , dimana a dan b merupakan konstanta dan manakala kita
mengatakan bahwa f ( x) adalah fungsi aljabar, ini berarti bahwa fungsi tersebut tidak melibatkan
bentuk diferensial dny/dxn.
Masalah menemukan akar dari suatu persamaan non linier ini merupakan masalah yang muncul
dalam berbagai disiplin ilmu. Contoh sederhana dari persamaan nonlinier adalah persamaan
kuadratik yang berbentuk f (x) = ax2 + bx + c yang dalam keadaan tertentu bisa diselesaikan
dengan formula kuadratik
푥 , = ±√ (3.1)
MENCARI AKAR-AKAR PERSAMAAN NON LINIER
Objektif: 1. Mengetahui metode numerik untuk mencari akar-akar persamaan non linier. 2. Mengimplementasikan metode numerik mencari akar menggunakan MATLAB. 3. Mengetahui fasilitas dalam MATLAB dalam mencari akar persamaan non linier. 4. Mengaplikasikan dalam permasalahan fisika.
PENDAHULUAN
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 2
Rumus-rumus yang memberikan nilai eksak dari penyelesaian secara eksplisit hanya ada untuk
kasus-kasus yang sangat sederhana. Fungsi yang cukup sederhana seperti f(x) = e-x– x sudah
tidak bisa diselesaikan secara analitik. Dalam hal ini satu-satunya alternatif adalah menggunakan
solusi pendekatan (approximate solution). Hal inilah yang menjadi sebab mengapa metode
numerik menjadi sangat diperlukan dalam memecahkan persoalan-persoalan dalam bidang sains
dan teknologi bahkan dalam bidang social maupun ekonomi.
Beberapa metode numerik akan dibahas secara detail antara lain metode bagi dua (bisection),
Newton-Raphson, posisi palsu (regula falsi/interpolasi linier), Secant dan metode iterasi
langsung. Contoh studi kasus dalam fenomena sistem fisika juga akan diberikan untuk
memberikan gambaran jelas terhadap metode yang dipelajari.
Secara umum, jika f(x) real dan kontinu pada interval antara xa sampai xb, dan f(xa) dan f(xb)
berlawanan tanda, maka
푓(푥 )푓(푥 ) < 0 (3.2)
dan sekurang-kurangnya ada satu akar pada interval itu.
Berikut langkah-langkah komputasi aktual dengan metode bisection:
1. Tentukan nilai awal xa yang lebih rendah dan xb yang lebih tinggi, sehingga fungsi
berubah tanda melalui interval. Ini bisa dicek dengan menghitung 푓(푥 )푓(푥 ) < 0.
2. Estimasikan akar xc, yang ditentukan oleh:
푥 = (3.3)
3. Lakukan evaluasi berikut untuk menentukan interval akar:
a. Jika 푓(푥 )푓(푥 ) < 0 .berarti akar pada sub-interval bawah (xa,xc), kemudian set xa=xc dan kembali lakukan langkah 2
b. Jika 푓(푥 )푓(푥 ) > 0 .berarti akar pada sub-interval atas(xa,xc), kemudian set xb=xc dan kembali lakukan langkah 2
c. Jika 푓(푥 )푓(푥 ) = 0 akarnya adalah xc, perhitungan dihentikan.
METODE BISECTION
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 3
Dengan metode ini ditentukan titik tengah interval, dan interval akan dibagi menjadi dua sub-
interval, yang salah satunya pasti mengandung akar. Berikutnya yang ditinjau adalah sub-interval
yang mengandung akar. Proses diulangi dengan membagi sub-interval tersebut dan memeriksa
separo sub-interval mana yang mengandung akar. Pembagiduaan sub-sub interval ini dilanjutkan
sampai lebar interval yang ditinjau cukup kecil.
Gambar 3.1: Metode bisection
Kriteria penghentian komputasi dan kesalahan estimasi pendekatan, adalah bijaksana untuk
selalu disertakan didalam setiap kasus pencarian akar. Kesalahan relatif er cukup representatif
untuk kasus dimana nilai akar sebenarnya telah diketahui. Pada situasi aktual biasanya nilai akar
sebenarnya tidak diketahui, sehingga diperlukan kesalahan relatif pendekatan, era, yaitu:
푒 = 100% (3.4)
Metode regulasi falsi disebut juga metode posisi palsu karena metode ini memberikan posisi
palsu akar x3 berdasarkan titik perpotongan garis lurus yang melalui (x1, f(x1)) dan (x2, f(x2))
dengan tanda berbeda dan kontinu. Dari titik tersebut dilakukan interpolasi linier, sehingga
metoda ini disebut juga interpolasi linier. Kelebihan metode ini adalah diperlukannya iterasi
METODE REGULASI FALSI
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 4
yang lebih sedikit untuk menemukan akar dari fungsi sehingga lebih efektif dibandingkan
metode bisection.
Gambar 3.2: Metode regulasi falsi
Berdasarkan kurva gambar 3.2 diatas, diperoleh
(3.5)
Sehingga diperoleh
(3.6)
Berikut langkah-langkah komputasi aktual dengan metode regulasi falsi:
1. Tentukan nilai awal x1 yang lebih rendah dan x2 yang lebih tinggi, sehingga fungsi
berubah tanda melalui interval. Ini bisa dicek dengan menghitung
2. Estimasikan akar x3, yang ditentukan oleh persamaan (3.6)
3. Lakukan evaluasi berikut untuk menentukan interval akar:
a. Jika .berarti akar pada sub-interval bawah (x1,x3), kemudian set x1=x3 dan kembali lakukan langkah 2
b. Jika .berarti akar pada sub-interval atas (x2,x3), kemudian set x2=x3 dan kembali lakukan langkah 2
c. Jika akarnya adalah x3, perhitungan dihentikan.
METODE NEWTON-RAPHSON
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 5
Metode Newton Raphson adalah metode iterasi lain untuk memecahkan persamaan f(x)=0,
dengan f diasumsikan mempunyai turunan kontinu f’. Secara geometri metode ini menggunakan
garis singgung sebagai hampiran fungsi pada suatu selang. Gagasan dasarnya adalah grafik f
dihampiri dengan garis-garis singgung yang sesuai. Dengan menggunakan suatu nilai xi sebagai
tebakan awal yang diperoleh dengan melokalisasi akar-akar dari f(x) terlebih dahulu, kemudian
ditentukan xi+1 sebagai titik potong antara sumbu x dan garis singgung pada kurva f di titik (xi
,f(xi)). Prosedur yang sama diulang, menggunakan nilai terbaru sebagai nilai coba untuk iterasi
seterusnya.
Gambar 3.3: Metode Newton-Rephson
Algoritma metode ini diperoleh dari perhitungan gradient garis singgung dari kurva dengan
menggunakan ekspansi deret Taylor fungsi f(xi+1) disekitar xi. Pendekatan beda hingga turunan
pada fungsi f(xi+1) adalah
(3.7)
Jika xi+1 adalah akar dari f(x)=0, maka persamaan diatas menjadi
(3.8)
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 6
Sehingga diperoleh
푥 = 푥 − ( )( )
(3.9)
Berikut langkah-langkah komputasi aktual dengan metode regulasi falsi:
1. Menentukan f’(x) dari f(x).
2. Menentukan nilai xi pada sembarang titik.
3. Menghitung xi+1 sesuai persamaan (3.9)
4. Membuat estimasi nilai xi+1 dengan kriteria:
a. Jika nilai kecil atau mendekati nol, maka xi+1 adalah akar dari persamaan, sehingga
perhitungan selesai.
b. Jika nilai belum kecil, perhitungan dilanjutkan dengan xi+1=xi*, kemudian dicari
xi+1* langkah 3 sampai diperoleh f(x*) kecil atau mendekati nol.
Pada dasarnya metode ini sama dengan metode Newton-Raphson, perbedaannya hanya terletak
pada pendekatan untuk turunan pertama dari f saja. Pendekatan f' pada metode Secant didekati
dengan ungkapan beda hingga yang didasarkan pada taksiran akar sebelumnya (beda mundur),
yaitu
푓 ( ) = ( ) = ( ) ( )( ) ( )
(3.10)
Selanjutnya, persamaan beda hingga (3.10) tersebut disubstitusi ke skema Newton-Raphson (3.9)
sehingga diperoleh
푥 = 푥 − ( )( ) ( )
(푥 − 푥 ) (3.11)
Jika kita perhatikan, ungkapan (3.11) ini identik dengan metode Regula Falsi seperti yang telah
dibahas di pasal yang lalu. Perbedaannya adalah metode Regula Falsi selalu menggantikan salah
satu dari dua taksiran akar sehingga akar selalu dalam keadaan terkurung dan titik-titik lama
selalu diupdate menjadi titik yang baru.
METODE SECANT
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 7
Gambar 3.4: Metode Secant
Sedangkan metode Secant tidak memerlukan dua taksiran awal yang harus mengurung akar
persamaan. Gambaran secara grafis metode Secant yang sedang mencari akar persamaan terlihat
pada gambar 3.4.
Berikut langkah-langkah komputasi aktual dengan metode Secant:
1. Berikan dua terkaan awal xa dan xb
2. Hitung xc dengan cara sesuai persamaan (3.11)
3. Set xa = xb, f a= f b dan xb = xc , f b = f c
4. Ulangi poin 2 dan 3 sampai xc tidak berubah secara signifikan.
Sebuah muatan Q1= +4 C berjarak 10 m dari sebuah muatan Q2= +9 C. Di titik
manakah pada garis yang menghubungkan dua muatan tersebut yang medan listriknya sama
dengan nol?
Solusi:
Medan listrik di titik P akan sama dengan 0, dengan syarat E1(x) = E2(x).
APLIKASI DALAM FISIKA
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 8
푥 =( )
푥 (3.12)
Jika didnyatakan dalam bentuk persamaan kuadrat, maka diperoleh fungsi:
푓(푥) = (푄 − 푄 )푥 + 2푄 푙푥 − 푄 푙 = 0 (3.13)
Dalam metode pencarian akar, dibutuhkan nilai akar awal pertama (x1) dan kedua (x2) sebagai
nilai kurung untuk membatasi pencarian akar. Kedua nilai tersebut ditentukan dengan perkiraan,
akan tetapi dapat digunakan statement if dan for seperti berikut:
Metode Bisection Cara I:
Berikut adalah script bisection_medan_nol.m clc clear close % Program Menghitung Akar Metode Bisection % By Mada Sanjaya WS disp(' ') disp(' ') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 9
disp(' +++++++++MENGHITUNG AKAR PERSAMAAN+++++++++++') disp(' ============METODE BISECTION=================') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' ') disp(' ') q1=input(' Masukan besar muatan q1 ='); q2=input(' Masukan besar muatan q2 ='); l=input(' Masukan jarak q1 dan q2='); x1=input(' Masukan akar awal pertama=');% tebakan akar pertama x2=input(' Masukan akar awal kedua=');% tebakan akar kedua % Nilai fungsi persamaan masing-masing tebakan akar f1=(q2-q1)*x1^2+2*q1*l*x1-q1*l^2; f2=(q2-q1)*x2^2+2*q1*l*x2-q1*l^2; t1=(x1+x2)/2; ft1=(q2-q1)*t1^2+2*q1*l*t1-q1*l^2; %input jumlah iterasi M=input(' Masukan jumlah iterasi='); % tempat menyimpan data x1 X1=zeros(M,1); X2=X1; % tempat menyimpan x2 T=X1;% tempat menyimpan t1 FX1=X1; FX2=X1; FT=X1; X1(1)=x1; X2(1)=x2; T(1)=t1; FX1(1)=f1; FX2(1)=f2; FT(1)=ft1; for m=2:M if FT(m-1)<0 X1(m)=T(m-1); X2(m)=X2(m-1); else X1(m)=X1(m-1); X2(m)=T(m-1); end FX1(m)=(q2-q1)*X1(m)^2+2*q1*l*X1(m)-q1*l^2; FX2(m)=(q2-q1)*X2(m)^2+2*q1*l*X2(m)-q1*l^2; T(m)=(X1(m)+X2(m))/2; FT(m)=(q2-q1)*T(m)^2+2*q1*l*T(m)-q1*l^2; end It=(1:M)'; disp(' ') disp(' AKAR AKAR PERSAMAAN METODE BISECTION ')% TABEL OUTPUT disp('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++') disp('Iterasi ke- Xm Xm+1 t F(Xm) F(Xm+1) F(t)') disp('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++') disp([It X1 X2 T FX1 FX2 FT]) % mengisi table
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 10
Output pada command window
Gambar 3.5: Output metode bisection cara I
Metode Bisection Cara II:
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 11
Gambar 3.6: Fungsi kuadrat medan listrik dua muatan
% Program Menghitung Akar Metode Bisection cara II % By Mada Sanjaya WS disp(' ') disp(' ') disp('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp('+++++++++MENGHITUNG AKAR PERSAMAAN+++++++++++') disp('============METODE BISECTION=================') disp('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' ') disp(' ') q1=input(' Masukan besar muatan q1 ='); q2=input(' Masukan besar muatan q2 ='); l=input(' Masukan jarak q1 dan q2='); x1=input(' Masukan akar awal pertama=');% tebakan akar pertama x2=input(' Masukan akar awal kedua=');% tebakan akar kedua disp('-------------------------') disp(' xm fm ') % xm adalah rata-rata x1 dan x2 disp('-------------------------') for k=1:10; f1=rumus_medan(q1,q2,l,x1); f2=rumus_medan(q1,q2,l,x2); xm=(x1+x2) / 2; fm=rumus_medan(q1,q2,l,xm); fprintf('%9.6f%13.6f \n', xm,fm) % Untuk memunculkan xm dan fm dalam 1 baris if (f1*fm<0) x2=xm; else x1=xm; end end
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 12
Gambar 3.7: Output metode bisection cara II
Metode Regulasi Falsi Cara I: % Program Menghitung Akar Metode Regulasi Falsi % By Mada Sanjaya WS disp(' ') disp(' ') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' +++++++++MENGHITUNG AKAR PERSAMAAN+++++++++++') disp(' ==============REGULASI FALSI=================') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' ') disp(' ') q1=input(' Masukan besar muatan q1 ='); q2=input(' Masukan besar muatan q2 ='); l=input(' Masukan jarak q1 dan q2='); x1=input(' Masukan akar awal pertama=');% tebakan akar pertama x2=input(' Masukan akar awal kedua=');% tebakan akar kedua % Nilai fungsi persamaan masing-masing tebakan akar f1=(q2-q1)*x1^2+2*q1*l*x1-q1*l^2; f2=(q2-q1)*x2^2+2*q1*l*x2-q1*l^2; w1=x2-(f2/(f2-f1))*(x2-x1); fw1=(q2-q1)*w1^2+2*q1*l*w1-q1*l^2;
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 13
%input jumlah iterasi M=input(' Masukan jumlah iterasi='); % tempat menyimpan data x1 X1=zeros(M,1); X2=X1; % tempat menyimpan x2 W=X1;% tempat menyimpan t1 FX1=X1; FX2=X1; FW=X1; X1(1)=x1; X2(1)=x2; W(1)=w1; FX1(1)=f1; FX2(1)=f2; FW(1)=fw1; for m=2:M if FW(m-1)<0 X1(m)=W(m-1); X2(m)=X2(m-1); else X1(m)=X1(m-1); X2(m)=W(m-1); end FX1(m)=(q2-q1)*X1(m)^2+2*q1*l*X1(m)-q1*l^2; FX2(m)=(q2-q1)*X2(m)^2+2*q1*l*X2(m)-q1*l^2; W(m)=X2(m)-(FX2(m)/(FX2(m)-FX1(m)))*(X2(m)-X1(m)); FW(m)=(q2-q1)*W(m)^2+2*q1*l*W(m)-q1*l^2; end It=1:M; disp(' ') disp(' AKAR AKAR PERSAMAAN METODE REGULASI FALSI ')% TABEL OUTPUT disp('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++') disp('Iterasi ke- Xm Xm+1 w F(Xm) F(Xm+1) F(w)') disp('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++') disp([It' X1 X2 W FX1 FX2 FW]) % mengisi tabel Output pada command window
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 14
Gambar 3.8: Output metode regulasi falsi cara I
Metode Regulasi Falsi Cara II: % Program Menghitung Akar Metode Relasi falsi cara II % By Mada Sanjaya WS disp(' ') disp(' ') disp('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp('+++++++++MENGHITUNG AKAR PERSAMAAN+++++++++++') disp('===========METODE REGULASI FALSI=============') disp('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' ') disp(' ') q1=input(' Masukan besar muatan q1 ='); q2=input(' Masukan besar muatan q2 ='); l=input(' Masukan jarak q1 dan q2='); x1=input(' Masukan akar awal pertama=');% tebakan akar pertama x2=input(' Masukan akar awal kedua=');% tebakan akar kedua disp('-------------------------') disp(' xm fm ') % xm adalah rata-rata x1 dan x2 disp('-------------------------') for k=1:10; f1=rumus_medan(q1,q2,l,x1); f2=rumus_medan(q1,q2,l,x2); xm=x2-(f2/(f2-f1))*(x2-x1); fm=rumus_medan(q1,q2,l,xm);
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 15
fprintf('%9.6f%13.6f \n', xm,fm) % Untuk memunculkan xm dan fm dalam 1 baris if (f1*fm<0) x2=xm; else x1=xm; end end
Gambar 3.9: Output metode regulasi falsi cara II
Metode Newton-Raphson: % Program Menghitung Akar Metode Newton-Raphson % By Mada Sanjaya WS disp(' ') disp(' ') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' +++++++++MENGHITUNG AKAR PERSAMAAN+++++++++++') disp(' ===========METODE NEWTON-RAPHSON=============') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' ') disp(' ') q1=input(' Masukan besar muatan q1 ='); q2=input(' Masukan besar muatan q2 ='); l=input(' Masukan jarak q1 dan q2='); x=input(' Masukan akar awal pertama=');% tebakan akar pertama
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 16
% Nilai fungsi persamaan tebakan akar f=(q2-q1)*x^2+2*q1*l*x-q1*l^2; % Turunan persamaan f yaitu f'ditulis sebagai berikut df=2*(q2-q1)*x+2*q1*l; %input jumlah iterasi M=input(' Masukan jumlah iterasi='); % tempat menyimpan data x1 X=zeros(M,1); FX=X; dFX=X; X(1)=x; FX(1)=f; dFX(1)=df; for m=2:M X(m)=X(m-1)-(FX(m-1)/dFX(m-1)); FX(m)=(q2-q1)*X(m)^2+2*q1*l*X(m)-q1*l^2; dFX(m)=2*(q2-q1)*X(m)+2*q1*l; end It=1:M; disp(' ') disp(' AKAR AKAR PERSAMAAN METODE NEWTON-RAPHSON')% TABEL OUTPUT disp(' +++++++++++++++++++++++++++++++++++++++++') disp(' Iterasi ke- Xm F(X) F(X+1)') disp(' +++++++++++++++++++++++++++++++++++++++++') format short disp([It' X FX dFX]) % mengisi tabel Output pada command window
Gambar 3.10: Output metode Newton-Raphson
Metode Secant:
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 17
% Program Menghitung Akar Metode Secant % By Mada Sanjaya WS disp(' ') disp(' ') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' +++++++++MENGHITUNG AKAR PERSAMAAN+++++++++++') disp(' ==============METODE SECANT =================') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' ') disp(' ') q1=input(' Masukan besar muatan q1 ='); q2=input(' Masukan besar muatan q2 ='); l=input(' Masukan jarak q1 dan q2='); x1=input(' Masukan akar awal pertama=');% titik singgung 1 x2=input(' Masukan akar awal kedua=');% titik singgung 2 % Nilai fungsi persamaan masing-masing titik singgung f1=(q2-q1)*x1^2+2*q1*l*x1-q1*l^2; f2=(q2-q1)*x2^2+2*q1*l*x2-q1*l^2; s1=x2-(f2*(x2-x1)/(f2-f1)); fs1=(q2-q1)*s1^2+2*q1*l*s1-q1*l^2; %input jumlah iterasi M=input(' Masukan jumlah iterasi='); % tempat menyimpan data x1 X1=zeros(M,1); X2=X1; % tempat menyimpan x2 S=X1;% tempat menyimpan t1 FX1=X1; FX2=X1; FS=X1; X1(1)=x1; X2(1)=x2; S(1)=s1; FX1(1)=f1; FX2(1)=f2; FS(1)=fs1; for m=2:M if FS(m-1)<0 X1(m)=S(m-1); X2(m)=X2(m-1); else X1(m)=X1(m-1); X2(m)=S(m-1); end FX1(m)=(q2-q1)*X1(m)^2+2*q1*l*X1(m)-q1*l^2; FX2(m)=(q2-q1)*X2(m)^2+2*q1*l*X2(m)-q1*l^2; S(m)=X2(m)-(FX2(m)*(X2(m)-X1(m))/(FX2(m)-FX1(m))); FS(m)=(q2-q1)*S(m)^2+2*q1*l*S(m)-q1*l^2; end It=1:M; disp(' ') disp(' AKAR AKAR PERSAMAAN METODE SECANT ')% TABEL OUTPUT disp('++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++') disp('Iterasi ke- Xm-1 Xm S F(Xm-1) F(Xm) F(S)') disp('++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++')
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 18
disp([It' X1 X2 S FX1 FX2 FS]) % mengisi tabel Output pada command window
Gambar 3.11: Output metode secant
Berbagai fungsi matematis bisa dievaluasi dan dianalisis dengan berbagai command yang ada di
MATLAB. Salah satu fungsi matematis yang sering digunakan, yaitu polinomial, penanganan
dan evaluasinya akan dibahas pula dalam bagian ini.
Suatu polinomial, p(x), berderajat n dinyatakan sebagai sebuah vektor baris p berukuran n+1.
Elemen vektor menunjukkan koefisien dari polinomial yang diurutkan dari orde tertinggi ke
terendah.
푝(푥) = 푎 푥 + 푎 푥 + ⋯+ 푎 푥 + 푎 (3.14)
POLINOMIAL DALAM MATLAB
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 19
Dinyatakan sebagai
풑 = (푎 푎 … 푎 푎 ) (3.15)
Command berikut digunakan untuk menangani polinomial:
Tabel 3.1: Fungsi built in MATLAB untuk polinomial
No Nama fungsi Keterangan
1 polyval(p,x) mengevaluasi polinonial p pada nilai x, dengan x bisa berupa skalar maupun vektor
2 poly(x) menghitung vektor sepanjang n+1 yang mewakili suatu polinomial orde-n. Vektor x sepanjang n berisi akar-akar dari polinom tersebut
3 roots(p) menghitung vektor berisi akar-akar dari polinomial p
4 conv(p,q) menghitung produk (hasil perkalian) dari polinomial p dan q. Bisa juga dianggap sebagai konvolusi antara p dan q
5 [k,r] = deconv(p,q) membagi polinomial p dengan q. Hasil pembagian disimpan dalam polinom k dan sisa pembagian dalam polinom r. Bisa juga dianggap sebagai dekonvolusi antara p dan q
6 polyder(p) menghitung vektor sepanjang n berisi turunan pertama dari polinom p
Fungsi dalam MATLAB untuk mencari akar suatu fungsi, ditampilkan dalam table berikut
Tabel 3.2: Fungsi built in MATLAB untuk iterasi suatu fungsi
No Nama fungsi Keterangan 1 fplot(‘fcn’,lim,’string’) memplot fungsi fcn pada interval lim dengan
property yang didefinisikan oleh string. fcn berupa M-file yang berisi definisi fungsi. lim berupa vektor 2 elemen berisi batas interval xmin dan xmax.
2 fzero(‘fcn’,x0) menghitung nol dari fungsi fcn dengan nilai tebakan awal x0.
3 fzero(‘fcn’,x0,tol) menghitung nol dari fungsi fcn dengan nilai tebakan awal x0. tol menentukan toleransi error dari perhitungan pendekatan yang diinginkan
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 20
Contoh 1
Berikut adalah fasilitas Matlab untuk mencari akar posisi medan listrik nol sebagaimana telah di
buat solusinya menggunakan beberapa metode numerik.
푓(푥) = (푄 − 푄 )푥 + 2푄 푙푥 − 푄 푙 = 0 (3.13)
Metode I
Gambar 3.12: Fungsi roots untuk mencari akar persamaan polinomial
Metode II
Gambar 3.13: Script fungsi kuadrat medan listrik dua muatan
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 21
Gambar 3.14: Fungsi fzero untuk mencari akar suatu fungsi.
Contoh 2
Gambar 3.15: Aliran fluida pada sebuah pipa kecil
Sesuai Hukum Bernoulli, maka diperoleh
(3.16)
Dengan,
Q = 1.2m3/s = volume aliran fluida tiap satuan waktu
g = 9.81 m/s2 = percepatan gravitasi
b = 1.8m = lebar pipa
h0 = 0.6m = ketinggian maksimum air
H = 0.075m = tinggi pelebaran pipa
h = ketinggian air
Dengan menggunakan pendekatan numerik, tentukan besar h.
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 22
Solusi:
Besar h dapat ditentukan dengan mencari akar persamaan bernoulli, dapat dipilih sebagian atau
seluruh metode yang telah dijelaskan diatas. Berikut solusi dengan menggunakan beberapa
metode pencarian akar.
Metode Bisection Cara II
%Program Menghitung Akar Bisection %By Mada Sanjaya WS disp(' ') disp(' ') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' ++++++++++HUKUM BERNOULLI+++++++++') disp(' ========METODE BISECTION II=======') disp(' ') disp(' ') Q=input(' Masukan besar debit Q ='); g=input(' Masukan besar percepatan gravitasi g ='); b=input(' Masukan lebar pipa b ='); h0=input(' Masukan tinggi maksimum h0 ='); H=input(' Masukan tinggi pelebaran pipa H ='); h1=input(' Masukan akar awal pertama=');% tebakan akar pertama h2=input(' Masukan akar awal kedua=');% tebakan akar kedua disp('-------------------------') disp(' hm fm ') % hm adalah rata-rata h1 dan h2 disp('-------------------------') for k=1:10; f1=bernoulli(Q,g,b,h0,H,h1); f2=bernoulli(Q,g,b,h0,H,h2); hm=(h1+h2) / 2; fm=bernoulli(Q,g,b,h0,H,hm); fprintf('%9.6f%13.6f \n', hm,fm) % Untuk memunculkan hm dan fm dalam 1 baris if (f1*fm<0) h2=hm; else h1=hm; end end
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 23
Output
File Untuk Menentukan Akar Awal Pertama dan kedua
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 24
Metode Regulasi Falsi Cara I % Program Menghitung Akar Metode Regulasi Falsi I % By Mada Sanjaya WS disp(' ') disp(' ') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' +++++++++MENGHITUNG AKAR PERSAMAAN+++++++++++') disp(' =============REGULASI FALSI I================') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' ') disp(' ') Q=input(' Masukan besar debit Q ='); g=input(' Masukan besar percepatan gravitasi g ='); b=input(' Masukan lebar pipa b ='); h0=input(' Masukan tinggi maksimum h0 ='); H=input(' Masukan tinggi pelebaran pipa H ='); h1=input(' Masukan akar awal pertama=');% tebakan akar pertama h2=input(' Masukan akar awal kedua=');% tebakan akar kedua % Nilai fungsi persamaan masing-masing tebakan akar f1=h0^2*(Q^2/2*g*b^2+h1^3+H*h1)-h1^2*(Q^2/2*g*b^2+h0^3); f2=h0^2*(Q^2/2*g*b^2+h2^3+H*h2)-h2^2*(Q^2/2*g*b^2+h0^3); w1=h2-(f2/(f2-f1))*(h2-h1); fw1=h0^2*(Q^2/2*g*b^2+w1^3+H*w1)-w1^2*(Q^2/2*g*b^2+h0^3); %input jumlah iterasi M=input(' Masukan jumlah iterasi='); % tempat menyimpan data h1 X1=zeros(M,1); X2=X1; % tempat menyimpan h2 W=X1;% tempat menyimpan t1 FX1=X1; FX2=X1; FW=X1; X1(1)=h1; X2(1)=h2; W(1)=w1; FX1(1)=f1; FX2(1)=f2; FW(1)=fw1; for m=2:M if FW(m-1)<0 X1(m)=W(m-1); X2(m)=X2(m-1);
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 25
else X1(m)=X1(m-1); X2(m)=W(m-1); end FX1(m)=h0^2*(Q^2/2*g*b^2+X1(m)^3+H*X1(m))-X1(m)^2*(Q^2/2*g*b^2+h0^3); FX2(m)=h0^2*(Q^2/2*g*b^2+X2(m)^3+H*X2(m))-X2(m)^2*(Q^2/2*g*b^2+h0^3); W(m)=X2(m)-(FX2(m)/(FX2(m)-FX1(m)))*(X2(m)-X1(m)); FW(m)=h0^2*(Q^2/2*g*b^2+W(m)^3+H*W(m))-W(m)^2*(Q^2/2*g*b^2+h0^3); end It=1:M; disp(' ') disp(' AKAR AKAR PERSAMAAN METODE REGULASI FALSI')% TABEL OUTPUT disp('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++') disp('Iterasi ke- Xm Xm+1 w F(Xm) F(Xm+1) F(w)') disp('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++') disp([It' X1 X2 W FX1 FX2 FW]) % mengisi tabel
Output
Metode Regulasi Falsi Cara II % Program Menghitung Akar Metode Relasi falsi cara II % By Mada Sanjaya WS disp(' ')
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 26
disp(' ') disp('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp('+++++++++MENGHITUNG AKAR PERSAMAAN+++++++++++') disp('==========METODE REGULASI FALSI II===========') disp('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' ') disp(' ') Q=input(' Masukan besar debit Q ='); g=input(' Masukan besar percepatan gravitasi g ='); b=input(' Masukan lebar pipa b ='); h0=input(' Masukan tinggi maksimum h0 ='); H=input(' Masukan tinggi pelebaran pipa H ='); h1=input(' Masukan akar awal pertama=');% tebakan akar pertama h2=input(' Masukan akar awal kedua=');% tebakan akar kedua disp('-------------------------') disp(' hm fm ') % xm adalah rata-rata h1 dan h2 disp('-------------------------') for k=1:10; f1=bernoulli(Q,g,b,h0,H,h1); f2=bernoulli(Q,g,b,h0,H,h2); hm=(h1+h2) / 2; fm=bernoulli(Q,g,b,h0,H,hm); fprintf('%9.6f%13.6f \n', hm,fm) % Untuk memunculkan hm dan fm dalam 1 baris if (f1*fm<0) h2=hm; else h1=hm; end end Output
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 27
Metode Fzero
Output
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 28
Berdasarkan hasil perhitungan pencarian akar dengan menggunakan beberapa metode
diatas diperoleh nilai akar yang hampir sama yaitu 0.6006. Hal ini mengisyaratkan bahwa
metode pencarian akar memiliki tingkat akurasi yang sama. Penggunaan beberapa metode ini
bertujuan agar hasil pencarian akar dari metode yang satu dapat menjadi pembanding bagi
metode yang lain.
Contoh 3
Prinsip kerja propulsi roket merupakan penerapan dari hukum ketiga Newton dan kekalan
momentum. Prinsip kerja pada roket ini sama dengan yang dipakai cumi-cumi atau gurita untuk
mendorong diri mereka. Mereka mengeluarkan air dari tubuh mereka dengan gaya yang sangat
besar, dan air yang dikeluarkan mengerjakan gaya yang sama dan berlawanan pada cumi-cumi
atau gurita, mendorongnya ke depan. Sebuah roket mendapatkan sebuah dorongan dengan
membakar bahan bakar dan membuang gas yang terbentuk lewat belakang. Roket mengerjakan
gaya pada gas buang, dan dari hukum Newton III, gas mengerjakan gaya yang sama dan
berlawanan pada roket.
Dengan menggunakan analis perubahan momentum system maka diperoleh persamaan propulsi
roket, secara matematis dapat ditulis sebagai
ekskeluar Fdtdmu
dtdvm (3.17)
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 29
dimana keluaru adalah kecepatan semburan gas, m adalah massa roket dan air di dalamnya, dan
Feks adalah gaya eksternal dari berat roket. Gaya dorong roket merupakan gaya yang bekerja
pada roket akibat gas yang dikeluarkannya. Sesuai persamaan diatas, maka diperoleh
dtdmuF keluardorong (3.18)
Karena gaya eksternal (Feks = -mg) bernilai negative, agar roket dapat dipercepat keatas maka
gaya dorong harus lebih besar dari gaya eksternal tersebut. Setelah kita mensubstitusi Feks dan
membagi dengan m diperoleh
gdtdm
mu
dtdv keluar (3.19)
Gambar 3.16: (a) momentum roket sebelum bergerak, (b) momentum roket setelah bergerak
Dengan mengintegralkan persamaan (3.19), maka diperoleh kelajuan gerak roket yang dapat
ditulis sebagai
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 30
gtmmuvv
f
ikeluarif ln . (3.20)
Sedangkan untuk kelajuan roket yang bergerak dalam ruang bebas tanpa gaya eksternal,
persamaan (3.20) menjadi
f
ikeluarif m
muvv ln (3.21)
dimana vf dan vi adalah kelajuan akhir dan awal roket, mf dan mi adalah massa akhir dan roket
roket.
Kecepatan roket Saturn V dalam arah vertical v terhadap permukaan bumi dapat diaproksimasi
dengan sedikit perubahan pada persamaan (3.20) menjadi
푣 = 푢 ln − 푔푡 (3.22)
dengan
u = 2510 m/s = kecepatan pada saat bahan bakar dikeluarkan relatif terhadap roket
M0 = 2.8 × 106 kg = massa awal roket pada saat t=0.
m˙ = 13.3 × 103 kg/s = laju pemakaian bahan bakar
g = 9.81 m/s2 = percepatan gravitasi
t = waktu diukur terhadap t=0.
Tentukan waktu yang diperlukan agar roket dapat mencapai kecepatan suara 335 m/s.
Solusi :
Metode Bisection Cara II
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 31
%Program Menghitung Akar Bisection %By Mada Sanjaya WS disp(' ') disp(' ') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' ++++++++++++GERAK ROKET+++++++++++') disp(' ========METODE BISECTION II=======') disp(' ') disp(' ') v=input(' Masukan besar kecepatan ='); u=input(' Masukan besar kecepatan saat bahan bakar keluar ='); m0=input(' Masukan besar massa awal roket ='); m=input(' Masukan laju pemakaian bahan bakar ='); g=input(' Masukan percepatan gravitasi ='); t1=input(' Masukan akar awal pertama=');% tebakan akar pertama t2=input(' Masukan akar awal kedua=');% tebakan akar kedua disp('-------------------------') disp(' tm fm ') % hm adalah rata-rata h1 dan h2 disp('-------------------------') for k=1:10; f1=roket(u,m0,m,g,t1,v); f2=roket(u,m0,m,g,t2,v); tm=(t1+t2) / 2; fm=roket(u,m0,m,g,tm,v); fprintf('%9.6f%13.6f \n', tm,fm) % Untuk memunculkan hm dan fm dalam 1 baris if (f1*fm<0) t2=tm; else t1=tm; end end
File Untuk Menentukan Akar Awal Pertama dan Kedua
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 32
Output
Metode Newton-Raphson
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 33
clc clear close % Program Menghitung Akar Metode Newton-Raphson % By Mada Sanjaya WS disp(' ') disp(' ') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' +++++++++MENGHITUNG AKAR PERSAMAAN+++++++++++') disp(' ===========METODE NEWTON-RAPHSON=============') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' ') disp(' ') v=input(' Masukan besar kecepatan ='); u=input(' Masukan besar kecepatan saat bahan bakar keluar ='); m0=input(' Masukan besar massa awal roket ='); m=input(' Masukan laju pemakaian bahan bakar ='); g=input(' Masukan percepatan gravitasi ='); t=input(' Masukan akar awal pertama=');% tebakan akar pertama % Nilai fungsi persamaan tebakan akar f=u*log(m0*(m0-m*t)^-1)-g*t-v; df=u*1/(m0*(m0-m*t)^-1)*(m0*m*(m0-m*t)^-1)-g; %input jumlah iterasi M=input(' Masukan jumlah iterasi='); % tempat menyimpan data x1 X=zeros(M,1); FX=X; dFX=X; X(1)=t; FX(1)=f; dFX(1)=df; for m=2:M X(m)=X(m-1)-(FX(m-1)/dFX(m-1)); FX(m)=u*log(m0*(m0-m*X(m))^-1)-g*X(m)-v;% Turunan persamaan f yaitu f'ditulis sebagai berikut dFX(m)=u*1/(m0*(m0-m*X(m))^-1)*(m0*m*(m0-m*X(m))^-1)-g; end It=1:M; disp(' ') disp(' AKAR AKAR PERSAMAAN METODE NEWTON-RAPHSON')% TABEL OUTPUT disp(' +++++++++++++++++++++++++++++++++++++++++') disp(' Iterasi ke- Xm F(X) F(X+1)') disp(' +++++++++++++++++++++++++++++++++++++++++') format long disp([It' X FX dFX]) % mengisi tabel
Output
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 34
Metode Regulasi Falsi Cara I % Program Menghitung Akar Metode Regulasi Falsi % By Mada Sanjaya WS disp(' ') disp(' ') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' +++++++++MENGHITUNG AKAR PERSAMAAN+++++++++++') disp(' ==============REGULASI FALSI I===============') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' ') disp(' ') v=input(' Masukan besar kecepatan ='); u=input(' Masukan besar kecepatan saat bahan bakar keluar ='); m0=input(' Masukan besar massa awal roket ='); m=input(' Masukan laju pemakaian bahan bakar ='); g=input(' Masukan percepatan gravitasi ='); t1=input(' Masukan akar awal pertama=');% tebakan akar pertama t2=input(' Masukan akar awal kedua=');% tebakan akar kedua % Nilai fungsi persamaan masing-masing tebakan akar f1=u*log(m0/(m0-m*t1))-g*t1-v; f2=u*log(m0/(m0-m*t2))-g*t2-v;% Turunan persamaan f yaitu f'ditulis sebagai berikut w1=t2-(f2/(f2-f1))*(t2-t1); fw1=u*log(m0/(m0-m*w1))-g*w1-v;% Turunan persamaan f yaitu f'ditulis sebagai berikut %input jumlah iterasi
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 35
M=input(' Masukan jumlah iterasi='); % tempat menyimpan data x1 X1=zeros(M,1); X2=X1; % tempat menyimpan x2 W=X1;% tempat menyimpan t1 FX1=X1; FX2=X1; FW=X1; X1(1)=t1; X2(1)=t2; W(1)=w1; FX1(1)=f1; FX2(1)=f2; FW(1)=fw1; for m=2:M if FW(m-1)<0 X1(m)=W(m-1); X2(m)=X2(m-1); else X1(m)=X1(m-1); X2(m)=W(m-1); end FX1(m)=u*log(m0/(m0-m*X1(m)))-g*X1(m)-v;% Turunan persamaan f yaitu f'ditulis sebagai berikut FX2(m)=u*log(m0/(m0-m*X2(m)))-g*X2(m)-v; W(m)=X2(m)-(FX2(m)/(FX2(m)-FX1(m)))*(X2(m)-X1(m)); FW(m)=u*log(m0/(m0-m*W(m)))-g*W(m)-v; end It=1:M; disp(' ') disp(' AKAR AKAR PERSAMAAN METODE REGULASI FALSI')% TABEL OUTPUT disp('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++') disp('Iterasi ke- Xm Xm+1 w F(Xm) F(Xm+1) F(w)') disp('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++') format short disp([It' X1 X2 W FX1 FX2 FW]) % mengisi tabel Output
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 36
Metode Fzero
Output
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 37
Berdasarkan hasil pencarian akar di atas diperoleh waktu yang dibutuhkan roket untuk mencapai
suatu kecepatan yang sebanding dengan kecepatan suara yaitu 335 m/s2. Roket akan mencapai
kecepatan tersebut pada saat t = 70.53 sekon.
Contoh 4
Contoh aplikasi gesekan udara adalah penerjun payung yang menggunakan parasut. Model kasus
ini diturunkan dari pernyataan percepatan sebagai perubahan kecepatan pada selang waktu
(dv/dt)
= (3.23)
Gaya (F) terdiri dari dua gaya berlawanan, yaitu yang cenderung kebawah karena tarikan
gravitasi FD dan gaya tarik keatas oleh resistansi udara FU :
퐹 = 퐹 + 퐹 (3.24)
jika gaya kebawah ditandai positif, maka FD = mg, dimana g = percepatan gravitasi 9,8 m/s2.
resistansi udara bisa diformulasikan dengan bermacam variasi. Pendekatan sederhana adalah
diasumsikan bahwa gaya ini berbanding linier dengan kecepatan, dan arahnya keatas, sehingga
FU = –cv, dimana c = konstanta pembanding disebut koefisien tarik (kg/s).
Dengan subtitusi (3.24) dan formulasi FD dan FU, persamaan (3.23) berubah menjadi
= (3.25)
Atau disederhanakan menjadi
= 푔 − 푣 (3.26)
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 38
Persamaan (3.26) adalah persamaan diferensial, dimana solusi eksak untuk kecepatan jatuh
penerjun tidak bisa ditentukan dengan manipulasi aljabar sederhana. Selebihnya, teknik yang
lebih lanjut pada kalkulus harus digunakan untuk menentukan solusi analitik atau eksaknya. Jika
keadaan awal penerjun diam (v=0 pada t =0) persamaan (3.26) menjadi
푣(푡) = 1− 푒 (3.27)
Persamaan (3.27) dinamakan solusi analitik atau eksak karena secara eksak memenuhi
persamaan diferensial biasa.
Tentukan koefisien tarik (drag coeffisient) c yang diperlukan sebuah parasut bermassa m= 68,1 kg
sehingga kecepatannya 40 m/s setelah terjun bebas selama t=10 sekon.
Dapat kita lihat bahwa tidak seperti kecepatan parasut secara eksplisit dapat diisolasi pada satu
sisi dan sebagai fungsi waktu. Dalam kasus ini koefisien drag adalah implisit. Kasus ini bisa
diselesaikan dengan metode numerik dengan cara mengurangi variabel takbebas v pada kedua
sisi persamaan, sehingga:
푓(푐) = 1− 푒 − 푣 (3.28)
Nilai c yang membuat f(c)=0 , selanjutnya disebut akar persamaan, yang juga representasi dari
koefisien drag sebagai solusi dari kasus.
Solusi:
Metode Bisection Cara II
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 39
clc clear close %Program Menghitung Akar Bisection %By Halimatussadiyah disp(' ') disp(' ') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' ++++++++++++GERAK ROKET+++++++++++') disp(' ========METODE BISECTION II=======') disp(' ') disp(' ') m=input(' Masukan besar massa parasut ='); v=input(' Masukan besar kecepatan ='); t=input(' Masukan besar waktu terjun bebas ='); g=input(' Masukan percepatan gravitasi ='); c1=input(' Masukan akar awal pertama=');% tebakan akar pertama c2=input(' Masukan akar awal kedua=');% tebakan akar kedua disp('-------------------------') disp(' cm fm ') % hm adalah rata-rata h1 dan h2 disp('-------------------------') for k=1:10; f1=pegas(m,g,c1,v,t); f2=pegas(m,g,c2,v,t); cm=(c1+c2) / 2; fm=pegas(m,g,cm,v,t); fprintf('%9.6f%13.6f \n', cm,fm) % Untuk memunculkan hm dan fm dalam 1 baris if (f1*fm<0) c2=cm; else c1=cm; end end Output
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 40
File Untuk Mencari Akar Awal Pertama dan Kedua
Metode Fzero
Output
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 41
Contoh 5
Sebuah peluru bermassa m ditembakan dari puncak gedung yang tingginya h0 dengan kecepatan awal v0 dan sudut elevasi .
Gambar 3.19: Gerak proyektil
Dengan pendekatan metode numerik tentukan waktu yang diperlukan peluru untuk sampai pada ketinggian maksimum dan sampai di tanah.
Solusi:
Metode bisection cara II
clc clear close %Program Menghitung Akar Bisection
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 42
%By Halimatussadiyah disp(' ') disp(' ') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' ++++++++++HUKUM BERNOULLI+++++++++') disp(' ==========METODE BISECTION II=====') disp(' ') disp(' ') v0=input(' Masukan v0 ='); th=input(' Masukan th ='); g=input(' Masukan g ='); t1=input(' Masukan akar awal pertama=');% tebakan akar pertama t2=input(' Masukan akar awal kedua=');% tebakan akar kedua disp('-------------------------') disp(' hm fm ') % hm adalah rata-rata h1 dan h2 disp('-------------------------') for k=1:10; f1=elevasi(v0,th,g,t1); f2=elevasi(v0,th,g,t2); tm=(t1+t2) / 2; fm=elevasi(v0,th,g,tm); fprintf('%9.6f%13.6f \n', tm,fm) % Untuk memunculkan hm dan fm dalam 1 baris if (f1*fm<0) t2=tm; else t1=tm; end end output
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 43
File Untuk Mencari Akar Awal Pertama dan Kedua
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 44
Metode Regulasi Falsi
disp(' ') disp(' ') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' +++++++++MENGHITUNG AKAR PERSAMAAN+++++++++++') disp(' ==============REGULASI FALSI=================') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' ') disp(' ') v0=input(' Masukan v0 ='); th=input(' Masukan th ='); g=input(' Masukan g ='); t1=input(' Masukan akar awal pertama=');% tebakan akar pertama t2=input(' Masukan akar awal kedua=');% tebakan akar kedua % Nilai fungsi persamaan masing-masing tebakan akar f1=(2.*v0.*sin(th)/g)-t1; f2=(2.*v0.*sin(th)/g)-t2 w1=t2-(f2/(f2-f1))*(t2-t1); fw1=(2.*v0.*sin(th)/g)-w1; %input jumlah iterasi M=input(' Masukan jumlah iterasi='); % tempat menyimpan data t1 X1=zeros(M,1); X2=X1; % tempat menyimpan t2 W=X1;% tempat menyimpan t1 FX1=X1; FX2=X1; FW=X1; X1(1)=t1; X2(1)=t2; W(1)=w1; FX1(1)=f1; FX2(1)=f2; FW(1)=fw1; for m=2:M if FW(m-1)<0 X1(m)=W(m-1); X2(m)=X2(m-1); else X1(m)=X1(m-1); X2(m)=W(m-1); end FX1(m)=(2.*v0.*sin(th)/g)-X1(m); FX2(m)=(2.*v0.*sin(th)/g)-X2(m); W(m)=X2(m)-(FX2(m)/(FX2(m)-FX1(m)))*(X2(m)-X1(m)); FW(m)=(2.*v0.*sin(th)/g)-W(m); end It=1:M; disp(' ') disp(' AKAR AKAR PERSAMAAN METODE REGULASI FALSI')% TABEL OUTPUT disp('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++') disp('Iterasi ke- Xm Xm+1 w F(Xm) F(Xm+1) F(w)') disp('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++') format short disp([It' X1 X2 W FX1 FX2 FW]) % mengisi tabel
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 45
Output
Metode Newton-Raphson clc clear close disp(' ') disp(' ') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' +++++++++MENGHITUNG AKAR PERSAMAAN+++++++++++') disp(' ===========METODE NEWTON-RAPHSON=============') disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') disp(' ') disp(' ') v0=input(' Masukan v0 ='); th=input(' Masukan th ='); g=input(' Masukan g ='); t=input(' Masukan akar awal pertama=');% tebakan akar pertama % Nilai fungsi persamaan tebakan akar f=(2*v0*sin(th)/g)-t; df=-1; %input jumlah iterasi M=input(' Masukan jumlah iterasi='); % tempat menyimpan data t1
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 46
X=zeros(M,1); FX=X; dFX=X; X(1)=t; FX(1)=f; dFX(1)=df; for m=2:M X(m)=X(m-1)-(FX(m-1)/dFX(m-1)); FX(m)=(2*v0*sin(th)/g)-X(m);% Turunan persamaan f yaitu f'ditulis sebagai berikut dFX(m)=1; end It=1:M; disp(' ') disp(' AKAR AKAR PERSAMAAN METODE NEWTON-RAPHSON')% TABEL OUTPUT disp(' +++++++++++++++++++++++++++++++++++++++++') disp(' Iterasi ke- Xm F(X) F(X+1)') disp(' +++++++++++++++++++++++++++++++++++++++++') format short disp([It' X FX dFX]) % mengisi tabel Output
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 47
Metode FZero
Output
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 48
Dari hasil pencarian akar di atas diperoleh waktu yang diperlukan peluru untuk sampai pada
ketinggian maksimum dan sampai di tanah sebesar 1.77 sekon. Waktu tersebut dibutuhkan
peluru untuk bergerak secara parabola dari keadaan awalnya sampai peluru tersebut menyentuh
tanah.
Berikut adalah beberapa studi kasus pemanfaatan materi pendahuluan fisika komputasi.
,
Gambar 3.17: Osilasi sistem pegas
PROBLEM 1. OSILASI PEGAS
STUDI KASUS BEBERAPA APLIKASI MATLAB UNTUK SISTEM FISIKA
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 49
Terdapat dua buah benda bermassa m yang dihubungkan oleh pegas dan piston. Konstanta pegas
adalah k, dan c adalah koefisien redaman piston. Ketika sistem diberi simpangan dan dilepaskan
maka sistem akan berosilasi dalam bentuk
푥 (푡) = 퐴 푒 cos(휔 푡 + 휑 ) ,푘 = 1,2 (3.29)
Dengan 퐴 dan ∅ adalah konstanta, dan 휔 = 휔 ± 푖휔 adalah akar dari
휔 + 2 휔 + 3 휔 + 휔 + = 0 (3.30)
Tentukan dua kombinasi yang mungkin dari 휔 dan 휔 dan tentukan kapan simpangan xk(t)=0,
jika k/m =1500 s-1 dan c/m=12 s-1.
Rangkaian Seri RLC
Gambar 3.18: Rangkaian RLC
Dari rangkaian RLC seri diatas, kapasitor sebelumnya telah terisi penuh dengan muatan sebesar
Q0. setelah saklar tertutup maka arus mulai mengalir. Maka daya yang hilang pada resistor
sebesar
= −퐼 푅 (3.31)
Sehingga persamaan umum untuk rangkaian seri RLC adalah
PROBLEM 2. OSILASI TEREDAM RANGKAIAN RLC
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 50
+ 퐿퐼 = −퐼 푅 (3.32)
Karena besarnya arus sebanding dengan penurunan muatan kapasitor maka
퐿 + 푅 + = 0 (3.33)
Dengan solusi umumnya adalah
푄(푡) = 푄 푒 cos(휔′푡 + 휑) (3.34)
dimana
훾 = (1.27)
adalah faktor redaman.
dan
휔′ = 휔 − 훾 (3.35)
Adalah frekuensi angular osilasi teredam.
Dan 0Q dan ditentukan oleh kondisi awal. Jika R = 0, maka frekuensi angular kembali
menjadi frekuensi osilasi harmonik sebesar.
휔 =√
(3.36)
Terdapat tiga kondisi terkait osilasi teredam yaitu under damped, critically damped dan over
damped dengan kriteria sebagai berikut
Untuk under damping,
푅 < (3.37)
Untuk critically damping,
KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011
Created @ 2011 by Mada Sanjaya WS 51
Jadilah seperti elang, berani sendirian dan terbang lebih tinggi
dari yang lain
푅 = (3.38)
Untuk over damping,
푅 > (3.39)
Dengan menggunakan persamaan (3.34) serta metode numerik dalam mencari akar, tentukan
waktu yang diperlukan sampai muatan tidak berosilasi lagi untuk masing-masing kriteria diatas.