modul 3 mencari akar

51
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 d n y/dx n . 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) = ax 2 + 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

Upload: windu-nur-mohamad

Post on 21-Jan-2016

491 views

Category:

Documents


53 download

TRANSCRIPT

Page 1: 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

Page 2: Modul 3 Mencari Akar

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

Page 3: Modul 3 Mencari Akar

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

Page 4: Modul 3 Mencari Akar

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

Page 5: Modul 3 Mencari Akar

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)

Page 6: Modul 3 Mencari Akar

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

Page 7: Modul 3 Mencari Akar

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

Page 8: Modul 3 Mencari Akar

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')

Page 9: Modul 3 Mencari Akar

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

Page 10: Modul 3 Mencari Akar

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:

Page 11: Modul 3 Mencari Akar

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

Page 12: Modul 3 Mencari Akar

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;

Page 13: Modul 3 Mencari Akar

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

Page 14: Modul 3 Mencari Akar

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);

Page 15: Modul 3 Mencari Akar

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

Page 16: Modul 3 Mencari Akar

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:

Page 17: Modul 3 Mencari Akar

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('++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++')

Page 18: Modul 3 Mencari Akar

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

Page 19: Modul 3 Mencari Akar

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

Page 20: Modul 3 Mencari Akar

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

Page 21: Modul 3 Mencari Akar

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.

Page 22: Modul 3 Mencari Akar

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

Page 23: Modul 3 Mencari Akar

KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011

Created @ 2011 by Mada Sanjaya WS 23

Output

File Untuk Menentukan Akar Awal Pertama dan kedua

Page 24: Modul 3 Mencari Akar

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);

Page 25: Modul 3 Mencari Akar

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(' ')

Page 26: Modul 3 Mencari Akar

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

Page 27: Modul 3 Mencari Akar

KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011

Created @ 2011 by Mada Sanjaya WS 27

Metode Fzero

Output

Page 28: Modul 3 Mencari Akar

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)

Page 29: Modul 3 Mencari Akar

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

Page 30: Modul 3 Mencari Akar

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

Page 31: Modul 3 Mencari Akar

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

Page 32: Modul 3 Mencari Akar

KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011

Created @ 2011 by Mada Sanjaya WS 32

Output

Metode Newton-Raphson

Page 33: Modul 3 Mencari Akar

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

Page 34: Modul 3 Mencari Akar

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

Page 35: Modul 3 Mencari Akar

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

Page 36: Modul 3 Mencari Akar

KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011

Created @ 2011 by Mada Sanjaya WS 36

Metode Fzero

Output

Page 37: Modul 3 Mencari Akar

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)

Page 38: Modul 3 Mencari Akar

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

Page 39: Modul 3 Mencari Akar

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

Page 40: Modul 3 Mencari Akar

KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011

Created @ 2011 by Mada Sanjaya WS 40

File Untuk Mencari Akar Awal Pertama dan Kedua

Metode Fzero

Output

Page 41: Modul 3 Mencari Akar

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

Page 42: Modul 3 Mencari Akar

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

Page 43: Modul 3 Mencari Akar

KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011

Created @ 2011 by Mada Sanjaya WS 43

File Untuk Mencari Akar Awal Pertama dan Kedua

Page 44: Modul 3 Mencari Akar

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

Page 45: Modul 3 Mencari Akar

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

Page 46: Modul 3 Mencari Akar

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

Page 47: Modul 3 Mencari Akar

KOMPUTASI SISTEM FISIKA BERBASIS MATLAB 2011

Created @ 2011 by Mada Sanjaya WS 47

Metode FZero

Output

Page 48: Modul 3 Mencari Akar

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

Page 49: Modul 3 Mencari Akar

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

Page 50: Modul 3 Mencari Akar

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,

Page 51: Modul 3 Mencari Akar

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.