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
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)
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.
METODE BISECTION
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)
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.
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
yang lebih sedikit untuk menemukan akar dari fungsi sehingga lebih efektif dibandingkan
metode bisection.
(3.5)
Sehingga diperoleh
(3.6)
METODE NEWTON-RAPHSON
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.
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)
Sehingga diperoleh
( )
= − ( )
(3.9)
METODE SECANT
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.
Solusi:
Medan listrik di titik P akan sama dengan 0, dengan syarat E1(x) = E2(x).
= ( )
(3.12)
( )=( − ) +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:
disp(' ')
disp(' ')
disp(' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
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;
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
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;
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
Metode Newton-Raphson:
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
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
Metode Secant:
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
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;
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('++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++')
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)
Dinyatakan sebagai
=( … ) (3.15)
Command berikut digunakan untuk menangani polinomial:
Fungsi dalam MATLAB untuk mencari akar suatu fungsi, ditampilkan dalam table berikut
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
Contoh 2
(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.
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
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
Output
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);
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
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
Metode Fzero
Output
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
dv dm
m u keluar Feks (3.17)
dt dt
dimana u keluar 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
dm
Fdorong u keluar (3.18)
dt
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
dv u dm
keluar g (3.19)
dt m dt
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
mi
v f vi u keluar ln gt . (3.20)
mf
Sedangkan untuk kelajuan roket yang bergerak dalam ruang bebas tanpa gaya eksternal,
persamaan (3.20) menjadi
mi
v f vi u keluar ln (3.21)
mf
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 :
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
Output
Metode Newton-Raphson
clc
clear
close
Output
Metode Fzero
Output
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)
= − (3.26)
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:
clc
clear
close
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
Metode Fzero
Output
Contoh 5
Sebuah peluru bermassa m ditembakan dari puncak gedung yang tingginya h0 dengan kecepatan
awal v0 dan sudut elevasi .
Dengan pendekatan metode numerik tentukan waktu yang diperlukan peluru untuk sampai pada
ketinggian maksimum dan sampai di tanah.
Solusi:
clc
clear
close
%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
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
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
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
Metode FZero
Output
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.
,
PROBLEM 1. OSILASI PEGAS
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
+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.
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)
+ =− (3.32)
+ + =0 (3.33)
( )= ′
cos( + ) (3.34)
dimana
= (1.27)
Dan Q0 dan ditentukan oleh kondisi awal. Jika R = 0, maka frekuensi angular kembali
= (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)
= (3.38)
> (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.