You are on page 1of 40
BAB 2 PERSAMAAN DIFERENSIAL BIASA Persamaan diferensial (PD) adalah salah satu metode yang sangat penting dalam pemodelan matematis dari berbagai fenomena. Persamaan diferensial merupakan suatu cara untuk menyatakan berbagai gejala, baik dalam kaitannya dengan ilmu pengetahuan maupun dengan gejala alam dan sosial. Berbagai fenomena dalam jimu fisika, kimia, biologi, ekonomi, dan teknik dapat dimodelkan dengan persamaan diferensial. Pada bab ini akan dibahas beberapa metode penyelesaian persamaan diferensial biasa (Ordinary Differential Equation / ODE), seperti metode euler, metode verlet, metode runge-kutta, dan metode adaptif, yang akan diaplikasikan pada solusi masalah fisika seperti: gerak peluru (projectile motion), bandul (pendulum), gerak orbit planet, dan model lorenz untuk cuaca Pada Fisika Dasar telah dipelajari gerak peluru dengan menggunakan kinematika sederhana di mana pengaruh gesekan/hambatan udara diabaikan. Pada bab ini pengaruh gesekan, misainya ketika bola tenis dilemparkan, akan diperhitungkan. Persoalan bandul pada fisika dasor selalu dianalisis dengan menganggap bahwa sudut simpangan cukup kecil sehingga sin(0) = @. Pada bagian ini anggapan tidak akan diberlakukan, Gerak orbit planet yang berbentuk elips akan disimulasi ‘melalui persamaan diferensial, Demikian pula hanya dengan model cuaca dari Lorenz yang membuittikan bahwa cuaca pada hakikatnya sulit diprediksi karena sifatnya yang chaos. 2.1 MODEL PERSAMAAN DIFERENSIAL BIASA (ODE) Persamaan diferensial biasa (Ordinary Differential Equation / ODE) adalah persamaan diferensial yang melibatkan satu variabel, pada umumnya waktu (time) t pada problema fisika. Ada tiga bentuk ODE yang sering dijumpai dalam problema fisika, yaitu: 1. Persamaan Peluruhan (Decay) wy =0 = at); a“? = Y = Yo exp(-at); (2.1) @ Dipindai dengan CamScanner a 46 FisikKA KOMPUTASI SOLUS! PROBLEMA FiSIKA DENGAN Matug 2. Persamaan Pertumbuhan (Growth): dy a= 0 => y = Yo exp(+at); (2.2) 3. Persamaan Osilasi (Oscillation): 4 : Fe ley = 0 = y = yo explFiot): 3 Persamaan diferensial berorde lebih tinggi biasanya ditransformasi ke bentuk orde 1. Misalnya persamaan orde-2 berikut ini: a’y dy moa 7M ay = 0 (24) ate 7 dt ny ) ditransformasi dengan subsitusi v = dy/dt, schingga diperoleh: dv Ul K —+—vt—y=0; (2.5) dt m m> e dan dy —-v=0 4 dt ea sebagai sistem persamaan diferensial biasa ber-orde-1. Pada persamaan di atas, 7), K, ©, dan m adalah tetapan atau parameter fisis. Suatu sistem persamaan diferensial bias Komponen (variabel) dapat dituliskan dal: sebagai berikut: ‘a berorde-1 yang terdiri atas n buah lam bentuk vektor persamaan diferensl dy + f(t,y) = 0 2n at (t,y) c atau dalam format: dy — = f(t, y); (28) ai (ty) atau y’ = f(ty). di mana y dan f adalah vektor dengan n komponen, @ Dipindai dengan CamScanner PERSAMAAN DIFERENSIAL BIASA 47 Berbagai metode analitik diperkenalkan dalam matematika untuk menyelesaikan persamaan diferensial biasa. Namun demikian dalam buku ini diberikan solusi dalam bentuk numerik di mana hasilnya disimulasikan dengan grafik. 2.2 GERAK PELURU Andaikan sebuah bola tenis dilemparkan, maka gerakannya dapat dijelaskan dengan cara menghitung vektor posisi bola r() dan vektor kecepatan bola v(t) pada waktu t. Persamaan gerak peluru dapat ditulskan sebagai sistem PD-orde-1 berikut ini: dv_ Fr - roe &_ RO, Eas 29) dt m dt di mana m : massa bola tenis Fa(y}: gaya penghambat udara, yang bergantung pada kecepatan bola v @: percepatan gravitasi setempat Persamaan diferensial (2.9) menyatakan percepatan dan kecepatan bola. Ketika bola melayang maka terjadi hambatan udara yang bisa memperlambat laju bola. Hambatan ini akan semakin besar bila bola bergerak lebih cepat atau permukaan bola lebih luas. Persamaan dari gaya hambatan udara ini biasa ater FE hay settee aa bet ene! 15 Waktu t Bandul Sedormana wat teh, tH 57 Gambar 2.2 - Osilasi bandul dengan @ = 10 dan h = 0.01 Berikut ini adalah contoh untuk sudut awal besar = 150 derajat dengan h=0.1 Masukkan simpangan sudul awal - 150 Masukkan nilai time step h - 0.1 Titik balik pada t = 2.800000 Titik balik pada t = 8.300000 Titik balik pada t = 13.800000 Titik balik pada t = 19.400000 Titik balik pada t = 24.900000 Perioda Rata-rata bandul = 11.05 +/- 0.05 @ Dipindai dengan CamScanner FisikA KOMPUTASI SOLUS! PROBLEMA FisiKa DENGay My My Bandul Sederhana Gamabr 2.3 - Osilasi bandul dengan @ = 150 dan h = 0.1 2.4 OrpiT KOMET/PLANET Hukum Gravitasi (Gravitational Law} Newt sangat fundamental dalam iknu fisika yang menjelackan bila ada dua massa, masing-masing m dan M, berada jarale interaksi antara keduanya sebesar: 1 maka ada gaya 67 x 10-11 m3 Kg. 52 m, M = massa benda (Ka) jarak antara kedua benda (m) Planet, termasuk bumi, bintang, komet, dan semua hukum gravitasi, walaupun hukum ini kemudian dir dengan memasukkan unsur relatvitas benda angkasa_ men, evisi oleh Albert Einstein Gerak planet telah diamati berabodabad yang laiu. Salah satu p terkenal adalah Copemicus yang kemudian menyimpulkan bahwa planermet yang bergerak mengitari matahari. Kemudian Tycho Brahe melakukan Pengulen pencatatan atas posisi planet-planet tersebut di anghasa dari wakty ke wake. Setelah Tycho Brahe meninggal, Kepler, seorang matematisi, men, '9analsis data yang telah diumpulkan oleh Brahe, kemudian menyimpulkan babu orig pe @ Dipindai dengan CamScanner PERSAMAAN DIFERENSIAL BIASA 59 planet tersebut adalah ellips. Kepler kemudian mengemukakan tiga buah hukum, vyaitu: 1. Setiap planet yang mengorbit matahari memiliki lintasan ellips di mana ‘matahari berada pada salah satu fokus-nya. 2. Vektor radius dari matahari ke planet yang mengorbit akan menyapu Juasan yang sama pada interval waktu yang sama. 3. Kuadrat dari periode (waktu edar) dari dua planet berbanding langsung dengan pangkat tiga dari orbit mereka. Berikut ini adalah analisis fisis sederhana dari gerak orbit planet. Andaikanlah sebuah komet mengitari matahari. Dimensi yang digunakan adalah dimensi ruang angkasa di mana jarak diukur dengan satuan AU (Astronomical Unit di mana 1 AU = 1.496 x 10!1 m, dan satuan waktu adalah tahun (year). Massa matahari Mr1.99 x 10% kg, massa komet m anggaplah = 1. Pada sistem ini hasil kali GM = 4? AUS /yr?. Persamaan gerak dapat diturunkan dari persamaan energi, yaitu sebagai berikut: (2.34) di samping itu bila orbitnya melingkar maka gaya sentripetal akan seimbang dengan gaya gravitasinya, schingga: my? _GMm (2.35) ror atau: v=VGM/r (2.36) Subsitusi (2.36) ke (2.34) memberikan energi orbit adalah: GMm (2.37) E=- 2r Bila lintasan adalah ellips maka r dapat diganti dengan a = radius terpanjang dari clips, sehingga persamaan (2.37) menjadi: (2.38) (2.39) @ Dipindai dengan CamScanner 60 Fisika KoMPUTAS! SOLUS! PROBLEMA FISIKA DENGAN Matuy Dengan menggunakan kekekalan momentum maka diperoleh periode orbit; Cay yang membuktikan hukum Kepler ke-3. ORBIT PLANET DENGAN METODE EULER it st mengelilingi matahari Pertama untuk memberi kesan tentang orbit plane! = pavenean geeky diselesaikan dengan metode euler. Persamaan gerak (2.19 ‘dengan metode euler disclesaikan sebagai berikut: vt +h) =i) +h * afr, v) rt +h)= rt) +h * vi) di mana untuk orbit planet: afe.v) =~ GM*r / [113 Sebagai nilai awal dapat dimasukkan 1(0), (0) serta nila time-step h. Langkah langkeh penyelesainnya adalah sbb: 1. Masukkan nila’ awal : 1(0), 40), 2. Tetapkan GM=4n2 dan m=1 3. Lakukan perulangan (misalnya hingga 200 kali) 4. Gambar grafik: a. polar(wplot, rplot) 6. plotitplot, kinetik, tplot, potensial ee @ Dipindai dengan CamScanner PERSAMAAN DIFERENSIAL BIASA 64, Program MATLAB orbit-planet dengan metode euler tersebut di atas adalah sbb: torbitE ~ program untuk menggambarkan orbit planet & dengan metode Euler clear; help orbitE r0 = input('Masukkan posisi awal dalam AU - '); vO = input ('Masukkan kecepatan awal dalam AU/thn - '); h = input('Masukkan nilai time-step dalam thn - '); r= [r0 01; ‘tvektor posisi v = [0 v0]; %vektor kecepatan GM = 4*pi*2; %tetapan GM dalam satuan AU mel time stepmax = 200; for i=1:stepmax rplot (i) = norm(r); wplot(i) = atan2(r(2), r(1)); tplot (i) = time; kinetik(i) = 0.5*m*norm(v) *2; potensial(i) = -GM*m/norm(r); -GM*r/norm(r) *3; x + htv; vi + h*a; time = time + h; end subplot (121) polar(wplot, rplot, ‘+') grid ylabel('Posisi (AU)') title('Gerak Orbit') subplot (122) Etotal = kinetik + potensial; plot (tplot,kinetik,'-.', tplot,potensial, '--' tplot, total, '-') xlabel (‘Waktu (thn) ') ylabel('Energi') title('EK(dot) EP(dash) ETot (solid) ') subplot (111) @ Dipindai dengan CamScanner _, 62 FisikA KOMPUTAS! SOLUS! PROBLEMA FISIKA Dengan, Matug » orbitE orbitE - program untuk menggambarkan orbit planet dengan metode euler Masukkan posisi awal dalam AU - 1 Masukkan kecepatan awal dalam AU/thn - 2*pi Masukkan nilai time-step dalam thn - 0.02 Hasiinya dapat dilthat pada gambar berikut. Kesimpulan metode euler tidak terlay Presisi sehingga orbit tidak berbentuk tetapi berbentuk spiral. Ini akibat dari total energi yang tidak konstan tetapi berfambah. Seandainya planet mengikuti orbit in berarti semakin lama akan semakin jauh dari matahari dan tidak akan kembali lagi ke sekitar matahari. Metode euler dapat dimodifikas i dengan metode euler-cromer, yaitu. persamaan (2.5) sebagai berikut: Vast = Vy thtag yet = tat Ape di mana hasil vt+h) langsung digunakan dimodifikasi dengan menukar tempat ai Hasilnya bisa dilihat pada gambar beriku untuk menghitung 1(t+h), ntara r= r+ ht itnya. program orbitE 'v dengan v= v + hta. @ Dipindai dengan CamScanner PERSAMAAN DIFERENSIAL BIASA, 63 EK(dot) EP(dash) ETot(solic) Gerak Orbit 20) ‘Waktu (thn) Gambar 2.4 - Gerak Orbit dengan Metode Euler (ORBIT PLANET DENGAN METODE EULER-CROMER Karena metode euler gagal dalam memprediksi orbit planet maka berikutnya akan dicoba mencari solusi orbit planet ini dengan metode euler-cromer. Pada metode ini komputasi kecepatan (v) didahulukan, di mana komputasi lintasan () dilakukan setelah komputasi kecepatan. forbitEC - program untuk menggambarkan orbit planet % dengan metode Euler-Cromer clear; help orbitEC r0 = input('Masukkan posisi awal dalam AU - ') vO = input('Masukkan kecepatan awal dalam AU/thn h = input('Masukkan nilai time-step dalam thn - "ys r= [y0 0); Svektur posisi v= [0 v0]; %vektor kecepatan @ Dipindai dengan CamScanner 64 Fisika KOMPUTASI SOLUS! PROBLEMA Fisika DENA aainnianial My, m= 1; time = 0 stepmax = 200; for i=1:stepmax rplot(i) = norm(r); wplot (i) = atan2(r(2), r(1))i tplot(i) = time; kinetik(i) = 0.5*m*norm(v) %2; potensial(i) = -GM*m/norm(r); a = -GM*r/norm(r)%3; v=v+ hta; rer + h*v; time = time + h; end subplot (121) polar(wplot, rplot, '+') grid ylabel('Posisi (AU) ') title('Gerak Orbit') subplot (122) Etotal = kinetik + potensial; plot(tplot,kinetik,'-.', tplot,potensial,'--', tplot, Etotal,'-') xlabel('Waktu (thn) ') ylabel ('Energi') title('EK(dot) EP(dash) ETot (solid) 3) subplot (111) @ Dipindai dengan CamScanner PERSAMAAN DIFERENSIAL BIASA atin roecrone tse 30) Gerak Orbit Oe es a 9 2 Waktu (thn) ‘Gambar 2.5 - Gerak Orbit dengan metode euler-cromer Apabila program euler-cromer ini dijalankan dengan data masukan posisi awal r0 = 1, kecepatan awal v0 = 2*pi, dan h = 0.02, temyata lintasan yang dihasilkan adalah lingkaran seperti tampak pada gambar di atas. Namun untuk kasus di mana kecepatan sudut awal lebih rendah temyata metode ‘euler-cromer juga gagal, Karena memberikan lintasan garis bukan ellips. Perhatikan hasilnya berikut ini: » orbitBC orbitEC - program untuk menggambarkan orbit planet dengan metode euler-cromer Masukkan posisi awal dalam AU - 1 Masukkan kecepatan awal dalam AU/thn - pi Masukkan nilai time-step dalam thn - 0.02 @ Dipindai dengan CamScanner FisIKA KOMPUTAS! SOLUS! PROBLEMA FISIKA DENGAN Mat 66 isi EK (dot) EP(dash) ETot(soligy Gerak Orbit Diperlukan suatu metode penyelosaiay agar dapat diperoleh bentul lin N persat tasan planet yang lebih balk, maan diferensial yang lebih akurl Runge-kutta order-2 * Runge-kutta orde-d Runge-hutta fehiberg orde-45 Runge-kutta adaptif @ Dipindai dengan CamScanner PERSAMAAN DIFERENSIAL Bisa 67 Peat ae a | RUNGE-KUTTA OrDE-2 Formula dari runge-kutta orde-2 adalah sbb: x(t+h) = x(Q) + Ye KI + Ke) (2.41) di mana: Kl=h* f(t, x(t)) K2=h* f(t+h, x(t}+h*K1) ‘Langkah Pemrograman dapat dilakukan sbb: * hitungK1 =h* f(t, xit)) . xtemp = x(t) + h*K1 = ttemp =t+h K2 = hMittemp, xtemp) x(tth) = x(t) + (K1 + K2) /2 Masukkan langkah ini ke dalam baris Program OrbitE menggantikan r dan v, hasil dari program dengan runge-kutta orde-2, dengan rilai awal r= 1, v= pi h = 0.05 adalah sbb: EK(do!) EP (dash) ETot(solid) 300 a 100! | j \ 2 3 31 : 100 enor 05 1 Waka (tha) Gambar 2.7 - Hasil Orbit Planet dengan metode runge-kutta orde-2, vO=1 @ Dipindai dengan CamScanner if 68 FisIKA KOMPUTAS! SOLUS! PROBLEMA Fisika DENG, AN My Terlihat bahwa orbit planet baru mendekati ellips. Walaupun didanding y hasil euler-cromer sudah lebih baik, namun belum memuaskan. eng, METODE RUNGE-KUTTA ORDE-4 Formula dari metode runge-kutta orde-4 adalah sebagai berikut: x(tth) = x() + h*(K1 + 2*K2 + 2*K3 + K4) /6 ee di mana: K1 = f(t.) K2={(t+ ¥h,x+%h Kl) K3= (t+ ¥eh, x + ¥eh K2) K4= f(t +h, x +h K3) Langkah pemrograman dapat dilakukan sebagai berikut: hitung K1 = f(t, h) hper2 = h/2 tper2 =t + h/2 xtemp = x + hper2*K1 K2= fitper2, xtemp) xtemp = x + hper2*K2 K3 = fitper2, xtemp) tplush = t +h xtemp = x +h*K3 K4 = {(tplush, xtemp) xplus =x +h"(K] + 2*K2 + 2*K3 + K4y/6 Fungsi RK berikut ini adalah implementasi metode runge-kutta orde-4. atlas Cee function xnew RK4 (x, t, h, derivRK, param) % metode Runge-Kutta orde-4 & x = vektor variabel dependen x(t) % t = varibel independen (waktuy % h = step size | agi * derivRK fungsi yang memberikan ruas kanan dari 4x/ % param = parameter ekstra % xnew nilai x(t+h) hper2 = 0.5*h; Kl = feval (derivrx, x tb thper2 = t + hper2; xtemp = x + hper2*k1; » Param); at @ Dipindai dengan CamScanner eee 69 feNSIAL BIAS AAN DIFER persAM! i{(derivRk, xtemp, thper2, param); fe *K2; ey + hper2*K2; : a xtemP © ai(derivRK, xtemp, thper2, param); evi coe ey xtemP © aliderivRK, xtemp, tplush, param) ; Ke eee + WY (KL + 2.°K2 + 2.*K3 + Ka) /6 ynew = return, Progam OrbitRK4 adalah program persamaan gerak orbit planet yang ‘memanfaatkan fungsi RK4 adalah sbb: SorbitRK4 - program untuk menggambarkan orbit planet $ dengan metode Runge-Kutta orde-2 clear; help orbitRK4 ro input (‘Masukkan posisi awal dalam AU - '); vO = input(‘Masukkan kecepatan awal dalam AU/thn - *) h = input ('Masukkan nilai time-step dalam thn - r= [x00]; &vektor posisi v = (0 v0]; %vektor kecepatan GM = 4*pi~ m=; time = 0 stepmax = 200; state = (r(1) r(2) v(1) v(2)]; for is1:stepmax xplot(i) = norm(r); wplot(i) = atan2(r(2), r(1)); tplot(i) = time; Kinetik(i) = 0.5*m*norm(v) 72; Potensial(i) = -GM*m/norm(x) ; State = RK4(state, time, h, ‘gerak', GM); r= [state(1) state(2)]; Vv = [state(3) state(4)]; time = time + h; end Subplot (121) Polar(wplot, rplot, '+') grid ylabel('Posisi (AU)') Dipindai dengan CamScanner FisikA KOMPUTAS! SoLus! PROBLEMA FIsikA DENGAN yy, Mug 70 title('Gerak orbit") subplot (122) a Etotal = kinetik + potensial: eee plot (tplot,kinetik, '--'+ : tplot,Etotal, '-') xlabel (‘Waktu (thn) ') ylabel ('Energi') a title('EK(dot) EP(dash) ETot (solid) ') subplot (111) Persamaan gerak dituliskan dalam fungsi ‘gerak’ sebagai berikut: function deriv = gerak(s, t, GM) % vektor derivatif (s(1) 5 (2)]; {s(3) s(4)]; -GM*r/norm(r)*3; deriv = [v(1) v(2) a(1) a(2)]; return Dengan parameter yang sama, 10 = 1 AU, vO = m AU/thn, dan h = 0.005 thn diperoleh hasil sebagai berikut: » orbitRK4 orbitRK4 - program untuk menggambarkan orbit planet dengan metode runge-kutta orde-2 Masukkan posisi awal dalam AU - 1 Masukkan kecepatan awal dalam AU/thn - pi Masukkan nilai time-step dalam thn - 0. 005" @ Dipindai dengan CamScanner 4 DIFERENSIAL BIASA inal oo Oe Gerak Orbit Posisi (AU) Energi ‘Waktu (thn) Gambar 2.8 - Orbit Planet dengan metode munge-kutta orde-4, vO = x Tetthat hasil yang lebih tepat di mana orbit planet sudah berbentuk ellis seperti yang diharapkan. METODE RUNGE-KUTTA ADAPTIF Metode adaptif adalah metode di mana besarnya time-step h bisa diubah sesuai dengan besamya error yang bisa diterima. Pada setiap langkah besarnya ener diperkirakan dan apabila lebih besar dari batas yang diberikan maka h diper hat misalnya h/2. Demikian seterusnya. Sebaliknya bila error jauh lebih kecil dari Yang diberikan maka time-step h bisa diperbesar, misalnya 2h. Proses adaptif dapat dilakukan sebagai berikut: 1. Gunakan time-step = h untuk menghitung x1 = x(t+h) ae 2 Gunakan time-step =h/2, untuk menghitung ee Fai ste langkah karena hitung dulu x(t+h/2) kemudian dat 3. Selisih keduanya adalah error, E = x1 ~ 2. 4. Tetapkan batas error, misalnya Eb. Dipindai dengan CamScanner 72 FisIKA KOMPUTAS! SOLUS! PROBLEMA FISIKA DENGay Mw rg il step bart gary = h 5. Error dari RK@ & h°, maka pemilihan time-step ars = b (Eb /ey4 Cara lain adalah dengan seleksi if E >= Eb maka h = h/2, else h = 25), Berikut ini adalah fungsi ARK (Adaptive Runge-Kutta) dalam MATLAB: function [x, t, h] = ARK(x,t,h,err,derivRK, param) % fungsi Adaptive Runge-Kutta % di-adopsi dari buku Alejandro R.Garcia, "Numeric, Methods". ts = t; ss faktorl = 0.9; stepmax = 100; for i=1:stepmax % hitung x(t+h) dua langkah dengan time-step h/2 hper2 = 0.5+h; xtemp RK4(xs, ts, hper2, derivRK, param); t = ts + hper2; RK4(xtemp, t, hper2, derivRK, param); tung x(t+h) satu langkah dengan time-step h ts +h; xtemp = RK4(xs, ts, h, GerivRK, param); % hitung error (selisih) scale = 0.5*(abs(x) + abs(xtemp))*err; xbeda = x ~ xtemp; errmax = max(abs(xbeda)./(scale + eps)); % bila errmax terlalu besar hitung hbaru h_lama = h; h = faktorl*h_lama*errmax*(-0.20); % h tidak diperkecil lebih dari faktor2 h = max(h, h_lama/faktor2) ; if errmax < 1 break; end end h_= min(h, faktor2*h_lama); xi faktor2 = uwn x & t Program untuk menyelesaikan gerak orbit planet dengan memanfaatkan "3S" kutta adaptif adalah sbb: eee eee atl @ Dipindai dengan CamScanner it planet am untuk menggambarkan orbit Pp - prose ge-Kutta adaptive qbitAK ~ Eengan metode Run orbitARK i (Masukkan posisi input asukkan kecepatan a! me tmasukkan nilai time-s ; evektor posisi gvektor kecepatan awal dalam AU - ')i wal dalam AU/thn - ')i input tep dalam thn - '); 200; state = [x(1) r(2) v(1) v(2)]i err = 1.e-3; for i=1:stepmax rplot(i) = norm(r); wplot (i) = atan2(r(2), ©(1)); tplot (i) = time; kinetik(i) = 0.5*m*norm(v)*2; Potensial(i) = -GM*m/norm(r) i ,__[state, time, h] = ARK(state, time, h, err, gerak', GM) ; Le {state(1) state(2)]i {state(3) state(4) 1]; time = ti a time + h; Subplot (121) Polar Stig (plot, rplot, '+') Ylabel (1 pogj title ("Posisi (AU) ') ('Gerak it’ mbPloe (132) Orbit") al = Pl * kinetik ; oe tplot-kinetik potensial teEtotal,:1) tplot potensial, ‘~~ : abel Manet Wake (hn) *) Serer geneesi) Meroe aii) EP(dash) ETot (solid) ") @ Dipindai dengan CamScanner 74 FisikA KOMPUTAS! SOLUS! PROBLEMA FISIKA DENGay Ma Program ini dicoba dengan posisi awal 1 AU, kecepatan sudut awal x/2 dan h=0,008, dengan hasil sebagai berikut: » orbitARK AU ite orbitARK - program untuk menggambarkan orbit planet dengan metode runge-kutta adaptif Masultkan posisi awal dalam AU - 1 Masulkan kecepatan awal dalam AU/thn - pi/2 Masulkan nilai time-step dalam thn - 0.005 Grafik lintasan terlihat berbentuk ellips. Terlihat dalam gambar bahwa perulangan 'ebih banyak dilakukan pada posisi perihelion (dekat ke matahari) dari ada posi aphelion. EK(dot) EP(dash) ETot(sobd) 1500 1000 4 Dipindai dengan CamScanner wo MAAN DIFERENSIAL Gingell eet LE 95 MODEL CuaCA LORENZ perabad-abad telah dipercaya bahwa berbagai fenomena fisis seperti cuaca it iprediksi Karena variabel yang terkait di dalamnya sangat banyak. se komputer modern berkapasitas besar dan berkecepatan tinggi Fee merjaniikan bahwa tidak lama lagi fenomena alam dengan mudah suttfmamaan. Pada awal tahun 60-an, seorang ahli metereologh dari MIT sora EA Lorenz ingin membultikan bahwa tidak begity mudah melalaikan frells gela cuaca, Karena sangat kompleks, dan sifat alam yang non-lnier Lorenz membuat suatu model matematis dalam bentuk sistem persamaan diaersal nonlinear, yang Kemudian disederhanakan menjadi 12 variabel. Pada altima dapat diambil kesimpulan bahwa gejala cuaca tidak periodik dan sangat bergentung pada kondisi awal. Mode cuaca lorenz yang disederhanakan menjadi 3 variabel adalah sbb: (2.43) @ mana 6, r, dan b adalah tetapan posit, Persamaan (2.34) menggambarkan Patt sistem persamaan diferensial untuk gerak konveksi dalam udara karena feuarth ‘suhu, x menyatakan laju konveksi, y dan z menvatakan gradien me Nilai parameter pada dasamya bergantung pada komposisi udara, ving igen = 10, b = 8/3, dan r berbanding dengan gradien temperatur Sis alae Persamaan diferensial ini akan diselesaikan dengan metode runge-kutta suaty (°° lprogram dalam MATLAB. Persamaan (2.34) dimasukkan dalam "esi bemama PDLorenz, dan program penyelesaiannya adalah LORENZ. Ten tt tt sae pala fit Seriv = ppLorenz(a, time, param) iferen ntUk mendefinisikan sistem persamaan as yausial Lorenz tine ktor(x y 2] Darag 208k Gigunakan dalam fungsi @erjy _ Parameter [rs b] Xe aqqys Vektor (ax/at dy/at az/dt) a i vea(2); z=a(3); is = param(2); b = param(3)i = at ly - x); rex - YY - x*zZ;7 @ Dipindai dengan CamScanner si 76 FisikA KOMPUTASI SOLUS! PROBLEMA Fisika, DENGay My deriv(3) = x*y - b*z: % Lorenz - program komputasi persamaan Lorenz 8 menggunakan metode Runge-Kutta Adaptive clear; help Lorenz; state = input('Masukkan posisi awal [x y z]-+), input ('Masukkan nilai parameter r -'); r= s = 10; % parameter sigma b = 8./3.; param = [rs b]; h = 1; % nilai step-size awal err = 1.e-3; % toleransi kesalahan time=0; stepmax = 300; for i=1:stepmax ([state, time, h] = ARK(state, time, h, err, *‘PDLorenz', param); % = state(1); y=state(2); z=state(3); tplot(i) = time; hplot(i) = h; xplot (i) = x; yplot (i) zplot (i) if (xem(i, 10) < 1) fprintf('Baru selesai %g persen \n', i/stepmax)i end end % grafik time series plot(tplot, xplot, '-',tplot, zplot, '--') xlabel(‘Time'); ylabel('x (solid) dan z (dashed) *) pause; $ sejenak berhenti, tekan ENTER utk lanjut x_8s(1)=0; yest z_ss(1) : x_ss(2)=sart (b*(r-1)); y_ss(2)= _ ss(2li z_ss(2)=r-1; x Ph x_ss (3) =-sart (b* (r-1)); =x_88 2.88 (3)=r-1; ' tae subplot (121) plot (xplot,zplot,'~',x_ss, 2 ss, ++); xlabel('x'); ylabel('z"); all @ Dipindai dengan CamScanner PERSAMAAN DIFERENSIAL Biasa 77 rte wi subplot (122) plot(xplot, yplot, '-', x g, tee xlabel('x'); ylabel(ty!) ~” Y-S5* ) subplot (111) Contoh hasilnya adalah sebagai berikut » Lorenz Lorenz - program komputasi persamaan Lorenz enggunakan metode runge-hutia adaptif Masukkan posisi awal [x y 2}- [1 1 20] Masukkan nilai parameter r — 28 x (solid) dan z (dashed) Gambar 2.9b - Grafik time series lorenz dgn [x y 2] = [1 1 20], 28 © Dipindai dengan CamScanner 7 PROBLEMA FISIKA DENGAN 1y, 8 Fisika KOMPUTAS! SOLUS! PR er Gambar 2.10 - Lorenz Attractor Untuk menunjukkan bahwa hasilnya sangat bergantung pada kondisi awal mala vektor awal diubah sedikit sekali dari (1 1 20] menjadi (1 1 20.01). Jad hanya variasi 0.01 pada nilai z, dan ternyata hasilnya sangat berbeda, walaupun pada awalnya kelihatannya sama (bandingkan Gambar 2.9 dan Gambar 2. 11). > (Gale) dan 2 (dashed) Thme Series Lorenz untuk fx y 2] = [1 1 20.011 1°28 @ Dipindai dengan CamScanner pokes es pyrereNsiAt 8 79 Gambar 2.12 - Grafik Lorenz Attractor (Butterfly Effect) Yond aval yang sedikit bervariasi saja dapat menyebabkan perubahan yang sangat berarti pada hasil time-series. Lorenz menyebutkan_ kondisi ini sebagai hot (chaos).Sebagai kesimpulan adalah sangat sulit memprediksi cuact untuk vaktu yang panjang, Karena sedikit perubahan kondisi saat ini akan menyebabkan stuasl yang sangat berbeda kelak. 26 fo MATLAB uNTUK PERSAMAAN DIFERENSIAL oe meryediakan beberapa fungsl yang dapat digunalian er ee persamaan diferensial biasa (ODE), namun umumnya adala peeslan sistem persamaan diferensial lasa jrde-1. Oleh sebab tu Fea Miferensial orde lebih dari satu harus ditransformasi_ ke oan singh” Aiferensial biasa orde-1. Beberapa fungsi yang tersedia antara 120 ‘Jenis PD yang sesual fea Runge-Kutta Runge-Kutta @ Dipindai dengan CamScanner OLUS! PROBLEMA FISIKA Deni 80 Fisika KOMPUTAS! S sia, ee eT PD stir ‘ODE23s Rosenbrock - PD al ODEZ3t Trapezoid D stl daa ‘ODE23tb Trapezoid + Back Difference Formula | PD stiff (BDF) Cara pemakaian fungsi-fungsi tersebut a eee dengan meminta informa dant MATLAB melalui perintah help, misalnya, £9: » help ODE23 ODE23 Solve non-stiff differential equations, Jow order method. [TY] ODE23(®,TSPAN,YO) with TSPAN = [TO TFINAL] integrates the system of differential equations y’= Flt) from time TO to TFINAL wih initial conditions YO. 'F' is a string containing the name of an ODE file. Function F(T,Y) must return a column vector. Each row in solution array Y corresponds to a time returned in column vector T. To obtain solutions at specific times TO, T1, ..., TFINAL (all increasing or all decreasing), use TSPAN = [TO TI ... TFINAL] Langkah dalam pemekaian fungsi MATLAB untuk penyelesaian ppersamezs diferensial biasa adalah sbb: 1. Transformasi PD ke dalam sistem PD orde-1. 2. Tulis sebuah fungsi yang memuat sistem PD orde-1 tersebut 3. Gunakan fungsi MATLAB untuk menyelesaikan sistem PD tersetvt 4, Gunakan fungsi plot untuk memvisualkan hasilnya. a i 7 " ba an ial diselesaikan persamaan diferensial van der a y -m(-y?)y' +y = 0; Misalnya, untuk m= 1, 0) = 2, dan yO) =o. 1. Transformasi ke sistem PD orde-1 Andaikan y= y(1), dan dy/dt = if : = agave diperoleh sistem PD. orde-1 sbb: = y(2), maka y” 4 @ Dipindai dengan CamScanner pers A RENSIAL BIAS: y DIFEI Maal Eee eel dy(2)/dt = m*(1 ~ y(1pr2y*y2y (1) dy(l)/at = y(2) 2, Fangsi yang memuat sistem PD orde-1 dibuat Sebagai berikut function dydt=vdp(t,y) @ PD vander poll mel; dydt=[y (2); m* (1-y(1)*2) *y(2) - y(1)] return 3. Ketik instruksi berikut ini untuk me emilih ODE4S sebagai fungsi untuk menyelesaikan sistem PD orde-1 tersebut: >>[t yl] = ODE45('vap', [0 301, 2; 01); 4, Gunakan instruksi plot untuk menvisualkan hastinya: poplot(t,y(:,1),'-* etey(s,2), 437); petitle(*PD van der Pol’) >exlabel (*t') >>ylabel (+y’) PD van der Pot 3 x Pol Sambar 2.13 - solusi PD van 4e @ Dipindai dengan CamScanner ON 82 FisikA KOMPUTAS! SOLUS! PROBLEMA FISIKA DeNGay Manag Perhatikan cara menggunakan {ungsi ODE di atas: >> [t yl] = ODE4S(*fungsi PD’, [rentang wakty (nilai awal}) Pada contoh datas, fungst PD adalah vdp, rentang waktu adalah dari 0 hingga %, ditulis sebagai [0 30}, dan nilai awal adalah vektor (2; 0]. Contch lain adalah menyelesikan persamaan bandul matematis dengan salah ay fungsi di atas: 2 Persamaan diferensial bandul matematis adalah: do Bos ——sin(@), rr S109), aap diselesaikan dengan transformasi sebagai berikut: 1. Transformasi PD ke sistem PD orde-1 Andaikan y(1) = 8, dan y(2) = d0/dt = dy(1)/dt, sehingga sistem PD ore 1 adalah: dy(1)/dt = y(2) dy(2)/dt = -g * sin(y(1)) /L Bentuk fungsi sistem PD orde-1 adalah: function dydt=ayunan(t,y) % ayunan matematis y" = g=9.80; L=2.0 dydt = return -g/L sin(y) % percepatan gravitasi % panjang tali bandul (y(2); -g*sin(y(1)) 1) 3. Solusi: >> [ty] = ODE45 (‘ayunan’, [0 30), [10*pisigo; 01) 4. Visualisasi: >> plot(t, y(:,1),'-5); >> title(‘Bandul Matematis’) @ Dipindai dengan CamScanner J iFeRENSIAL BIASA a a 8S gaabel ( swaktu-t’) a yrabel ("Sudut radian’) > Bandul Matematis ° 5 10 18 20 2 3 waktust Gambar 2.14 - Lintasan sudut bandul matematis Som LaTiHAN 1 Lakukan modifikasi pada Program “Bandul" sehingga penyelesaian dilakukan an metode euler-cromer. Bagai mana hasiinya dibanding metode verlet? 2% Bax program eerie deans Metelesaikan persamean bola jatuh bebas. Lakukan tingga | pre berbagai nilai koefisien hambatan udara Cd, mulai dari 0.0 4 lengan kenaikan 0.2 Galileo p, eraan met Menatakan bahwa apabila ada dua bola best masing-masing Taka, da be 100 Ib, dan 1 Ib dijatuhkan dari ketinggian sekitar 50 meter Bakitan de at akan jatuh lebih dulu, bola ringan 2 inchi di belakangnya. alah ig On 20M pada no. 2 bahwa pemyataan ity sah. Alay tertentu yang bisa membuktikan bahwa pernyataan itu benar’ , Dipindai dengan CamScanner 84 FisikA KOMPUTAS! SOLUS! PROBLEMA Fisik, De ‘GAN 4. Gunakan ODE45 untuk menyelesaikan sistem pe berikut ini: fin dota dx/dt=(a-bx-cy)x; — dy/dt=(d+ex)y di mana a=10, b=10-5, c=0.1, d=10, dan e= 0.1. x(0) = 19, Ors % @ Dipindai dengan CamScanner

You might also like