Download - 2 Modul Komputasi
PROGRAM STUDI PENDIDIKAN FISIKA FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN
UNIVERSITAS JEMBER
2014
Oleh
TIM KOMPUTASI
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 1
PRAKATA
Puji syukur ke hadirat Tuhan Yang Mahas Esa sehingga Modul fisika komputasi
dapat disusun dan diselesaikan dengan baik. Tujuan penyusunan modul
praktikum ini untuk membantu mahasiswa memahami fisika komputasi secara
lebih terperinci dengan praktek secara langsung menyelesaikan permasalahan
yang berhubungan dengan fisika.
Komputasi fisika merupakan ilmu numerik dengan sejumlah metode yang berisii
pendekatan untuk menyelesaikan permasalahan-permasalahan dalam
perhitungan seperti integral, differensial maupun persamaan linier dan non
linier.
Modul fisika komputasi ini diperuntukan untuk menunjang kelancaran proses
pembelajaran matakuliah fisika komputasi pada program pendidikan Fisika
FKIP Universitas Jember
Pada kesempatan kali ini penulis mengucapkan terima kasih kepada semua
pihak yang turut serta mendukung terselesainya modul praktikum fisika
komputasi ini, penulis menyadari masih banyak kekurangan dalam buku ini
sehingga kritik dan saran yang membangun selalu penulis harapkan demi
kesempurnaan isi modul ini.
Jember. Juli 2014
Penulis
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 2
DAFTAR ISI
PRAKATA 1
DAFTAR ISI 2
MODUL 1. PENGENALAN PEMROGRAMAN KOMPUTER 3
MODUL 2. GALAT DALAM METODE NUMERIK 14
MODUL 3. PENDAHULUAN MATLAB 1 18
MODUL 4. PENDAHULUAN MATLAB 2 26
MODUL 5. SOLUSI PERSAMAAN LINIER 32
MODUL 6. SOLUSI PERSAMAAN NON LINIER 39
MODUL 7. INTERPOLASI 46
MODUL 8. PENDEKATAN INTEGRAL 51
MODUL 9. PENGHAMPIRAN TURUNAN 57
MODUL 10. PERSAMAAN DEFERENSIAL BIASA 60
DAFTAR PUSTAKA 66
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 3
MODUL 1. PENGENALAN PEMROGRAMAN KOMPUTER
Tujuan
1. Mengetahui tentang computer, bahasa pemrograman dan kategorinya
2. Menjelaskan jenis-jenis data dalam pemrograman komputer
3. Mengetahui tentang sistem numerik dan metode konversinya.
4. Mengetahui alur kerja pembuatan program dan mengaplikasikannya pada
pemecahan masalah
A. Komputer
Computer adalah mesin khusus yang menyajikan informasi dan bisa melakukan
perhitungan matematis ataupun informasi dengan sangat cepat. Sedangkan
program adalah sesuatu yang terdapat di dalam komputer yang menjalankan
perhitungan atau informasi yang dibutuhkan. Bahasa pemrograman adalah
teknik komunikasi standar untuk mengekspresikan instruksi kepada komputer.
Layaknya bahasa manusia. Bahasa pemrograman memfasilitasi seorang
programmer untuk secara spesifik apa yang akan dilakukan oleh komputer.
Selanjutnya, bagaimana data tersebut disimpan dan dikirim, dan apa yang akan
dilakukan apabila terjadi kondisi yang variatif. Bahasa pemrograman dapat
diklasifikasikan menjadi tingkat rendah, menengah, dan tingkat tinggi.
Pergeseran tingkat dari rendah menuju tinggi menunjukkan kedekatan terhadap
”bahasa manusia
1. Bagian-bagian computer
a. CPU (Central Processing Unit)
CPU adalah jantung dari setiap computer, yang dibagi kedalam control
unit, Arithmetic Logic Unit (ALU) dan Internal Memory. Control unit dalam
computer merupakan keseluruhan bagian dari computer yang
memberikan perintah untuk menjalankan program komputer, ALU
menyatakan perhitungan matematika dan logika, sedangkan internal
memory memurapak type dari memory CPU yang dipergunakan oleh
computer dan menyimpan sementara dari hasil perhitungan. Adapun
diagram blok dari computer adalah sebagai berikut:
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 4
CPU
Gambar 1. Diagram Blok dari computer (chapman:2)
b. Main dan Secondary Memory
Memory dalam komputer dibagi menjadi 2 yaitu main memory dan
secondary memory. Main memory merupakan perangkat dalam
komputer yang tersusun atas chip semi konduktor dan bekerja dengan
sangat cepat. Memory ini mampu bekerja lebih dari 60 nano second.
Karena bekerja dengan sangat cepat, maka main memory hanya mampu
menyimpan data sementara atau Volatile, yaitu data akan terhapus pada
saat computer dimatikan atau turn off. Secondary memory berisi
perangkat yang bekera lebih lambat dari main memory dengan harga
yang lebih murah apabila dibandingkan dengan main memory. Karena
bekerja lebih lambat dari main memory, secondary memory bisa
menyimpan data lebih lama atau sering disebut non Volatile,karena data
tidak akan hilang walaupun computer dimatikan. Secondary memory
dapat berupa Flash Drive, CD, HD ext, dsb.
Input
Devices
Main
Memory
Secondary
Memory
Internal
Memory
Control Unit
Arithmetic
Logic Unit
Output
Devices
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 5
c. Input dan Output Devices
Input devices merupakan perangkat yang memberi masukan pada
komputer agar menjalankan program. Input devices dapat berupa
Keyboard, Mouse, Microphone, Scanner. Sedangkan output devices
merupakan perangkat yang menyajikan hasil dari perhitungan atau hasil
pemrograman dari komputer. Output devices dapat berupa monitor,
printer, speaker, plotter.
2. Data dalam komputer
Memory dalam computer tersusun atas jutaan individual switch yang bisa
ON dan OFF, tetapi tidak bisa diantaranya. Masing- masing switch
menyatakan Binary Digit (bit). Keadaan ON dalam biner dinyatakan dengan
1 sedangkan OFF dinyatakan dengan 0, Bilangan dalam Bit bersama-sama
membentuk grup yang menyatakan masing-masing bilangan tertentu yang
dipergunakan dalam computer. Grup terkecil dari bit disebut dengan Byte.
Byte biasanya merupakan kumpulan dari 8 bit yang terletak pada satu grup
dan dipergunakan secara bersama-sama dalam bentuk bilangan biner.
Contoh
main memory: 256 Mega bytes = 256 juta Bytes = 256 juta x 8 bit
Secondary Memory: 40 Gbytes = 40 millar bytes = 40 milliar x 8 bit
Selanjutnya grup terbesar dari bit disebut dengan “word”. Word tersusun
atas 2.4 bytes yang dipergunakan untuk menyatakan bilangan tunggal
dalam memory. Word dalam setiap computer adalah berbeda-beda,
biasanya word yang dipergunakan dalam computer adalah 32 atau 64 bits.
B. Sistem Numerik dan Konversi
Terdapat 4 cara utama dalam penyajian bilangan, antara lain:
1. Sistem Bilangan Desimal
Sistem bilangan ii sudah terbiasa dipergunakan dalm bentuk desimal.
Bilangan desimal adalah sistem bilangan yang berbasis 10. Hal ini berarti
bilangan – bilangan pada sistem ini terdiri dari 0 sampai dengan 9.
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 6
Contoh bilangan dalam bentuk desimal :
12610 (umumnya hanya ditulis 126)
12610 = 1 x 102 + 2 x 101 + 6 x 100 = 100+20+6 =126
1110 (umumnya hanya ditulis 11)
1110 =1 x 101 + 1 x 100 = 10+1 = 11
2. Sistem Bilangan Biner
Bilangan dalam bentuk biner adalah bilangan berbasis 2. Ini menyatakan
bahwa bilangan yang terdapat dalam sistem ini hanya 0 dan 1.
Contoh penulisan dari bilangan biner :
000011002 (8 bit) atau 11002 (4 bit)
= 0x27+0x26+0x25+0x24+1x23+1x22+0x21+0x20=0+0+0+0+8+4+0+0=12
000010112 (8 bit) atau 10112 (4 bit)
= 0x27+0x26+0x25+0x24+1x23+0x22+1x21+1x20=0+0+0+0+8+0+2+1=11
25 dalam bilangan biner dinyatakan dengan
Komplementer pada aritmatika biner
Dua bilangan dinyatakan komplemen adalah bilangan negative dan positif
(negative komplemennya adalam posistif). Apabila 0 menyatakan negative
maka 1 menyatakan positif. adapun langkah-langkah untuk menyatakan
komplemen dari bilangan biner adalah sebagai berikut:
Ganti semua bilangan 0 dengan bilangan 1 atau sebaliknya
Tambahkan dengan angka 1 untuk bilangan degatif
25 sisa 1
12 sisa 0
6 sisa 0
3 sisa 1
1
Hasil ditulis dari bawah ke atas 110012
atau dalam 8 bit dinyatakan 000110012
: 2
: 2
: 2
: 2
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 7
Contoh
3 = 000000112 ; 4 = 000001002. ; 7 = 00000111
Maka (-3) = 11111100 + 1= 11111012
(-4) = 11111011 + 1 = 111111002
3 + 4
3 00000011
4 00000100
7 00000111
3 + (-4)
3 00000011
-4 11111100
-1 11111111
3. Sistem Bilangan Oktal
Bilangan dalam bentuk oktal adalah sistem bilangan yang berbasis 8. Hal
ini berarti bilangan yang diperbolehkan hanya berkisar antara 0–7.
Contoh penulisan dari bilangan oktal : 1768 , 138
4. Sistem Bilangan Heksadesimal
Bilangan dalam sistem heksadesimal adalah sistem bilangan berbasis 16.
Sistem ini hanya memperbolehkan penggunaan bilangan dalam skala 0 – 9,
dan menggunaan huruf A – F atau a – f karena perbedaan kapital huruf
tidak memiliki efek apapun.
Contoh penulisan bilangan pada sistem heksadesimal : 7E16, B16
Berikut tabel perbandingan bilangan Desimal, Biner, Oktal dan heska desimal
Desimal Biner Oktal Heksa Desimal
0 00000000 0 0
1 00000001 1 1
2 00000010 2 2
3 00000011 3 3
4 00000100 4 4
5 00000101 5 5
6 00000110 6 6
7 00000111 7 7
8 00001000 10 8
9 00001001 11 9
10 00001010 12 A
+
+
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 8
11 00001011 13 B
12 00001100 14 C
13 00001101 15 D
14 00001110 16 E
15 00001111 17 F
C. Karakter Data
Jenis dari karakter data ada 2 yaitu karakter dan symbol. Untuk karakter data
pembagiannya adalah sebagai berikut:
26 Upper (diatas 26) karakter A – Z (capital)
26 lower (dibawah 26) karakter a – z
10 digit (0 - 9)
Miscelloneous Common Symbols (. , [] {} ~ ! @ # % % ^ & * ().
Symbol dan karakter ditulis dalam non-oriental Languages kurang dari 256,
dibutuhkan 1 bytes untuk masing-masing karakter, sehingga apabila terdapat
256000 karakter berarti 1000 bytes memory computer. ASCII (American
Standars Code for Information Interchange) merupakan standar code
international. Standar lain yang dikenal adalah ISO 646 Standard yang hampir
sama dengan ASCII kecuali terdapat 10 karakter khusus yang dibutuhkan
seperti £ ǹ ã ø. Beberapa symbol dapat berubah dari 1 komputer kekomputer
yang lain pada saat di cetak ataupun tampilan pada layar dan beberapa
informasi akan rusak atau corrupted . Beberapa karakter dalam bahasa china
dan jepang lebih dari 256 karakter, sekitar 4000 karakter lebih untuk masing-
masing bahasa.
D. Data Integer dan Data Real
1. Data Integer
Data integer terdiri atas integer posistif, integer negative dan nol. Memory data
yang diperlukan untuk data integer berbeda-beda 1, 2, 4, atau 8 bytes, akan
tetapi biasanya 4 bytes merupakan data integer yang dipergunakan dalam
computer modern. Biasanya nilai terbesar dan terkecil untuk n bit integer adalah
Nilai integer terkecil = - 2n-1
Nilai integer terbesar = 2n-1+-1
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 9
untuk 4 bytes nilai integer terkecil dan terbesar adalah -2.147.483.648 dan
2.147.483.647. Apabila dihasilkan integer yang lebih besar atau lebih kecil dari
nilai tersebut, maka akan terjadi error yang disebut Over Flow Condition.
Adapun kelemahan dari data integer adalah
Tidak dapat menyatakan bilangan pecahan seperti 0,25 ; 1,5 ; 3,14159;
dsb
Tidak bisa menyajikan data yang lebih besar dari Nilai integer terbesar
atau lebih kecil dari Nilai integer terkecil
2. Data Real
Data real dipergunakan untuk mengatasi kelemahan yang dimiliki oleh data
integer, oleh karena itu diperlukan floating point type data. Floating point terdiri
atas 24 bit mantissa dan 8 bit exponent, dimana
Value = mantisa x 2exponent
10 20 30
mmmmmmmmmmmmmmeeeeeeeeee
mantissa exponent
jenis dari real data sepert menyatakan suatu bilangan dalam notasi ilmiah.
Contoh
299.800.000 m/s dalam notasi ilmiah ditulis dalam 2,998 x 108 m/s, dimana
2,998 merupakan mantissa (preceding number) dan 108 menyatakan eksponen
(basis 10).
Pada computer real data bekerja seperti pada notasi ilmiah, hanya saja basis
10 dari eksponensial diganti dengan basis 2. Data real biasanya memerlukan
32 bit atau 4 bytes yang dibagi menjadi 3 24 bit untuk mantissa dan 8 bit untuk
eksponen. Real data juga dibagi menjadi 2 besaran, yaitu Precision dan Range.
Precision merupakan angka penting dan range menyatakan perbedaan antara
nilai terbesar dan terkecil. 24 bits mantissa dapat menyatakan sekitar 223
bilangan atau sekitar 7 digit angka penting, sedangkan 8 bit eksponen
menyatakan perkalian antara 2-128 dan 2127sehingga rangenya berkisar antara
10-38 dan 1038.
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 10
E. Alur Pembuatan Program
Pembuatan bahasa pemrograman diperlukan sebuah perencanaan yang baik
dengan mengikuti perencanaan dan metodologi yang terstruktur.
Berikut ini langkah – langkah sistematis dasar dalam menyelesaikan
permasalahan pemrograman :
a. Mendefiniskan masalah
b. Menganalisa dan membuat rumusan pemecahan masalah
c. Desain Algoritma dan Representasi
d. Pengkodean, Uji Coba dan pembuatan dokumentasi
Untuk memahami langkah dasar dalam pemecahan masalah dalam sebuah
komputer, didefinisikan terlebih dahulu sebuah permasalahan yang akan
diselesaikan langkah demi langkah sebagaimana metodologi pemecahan
masalah yang akan dibahas selanjutnya.
F. Simbol Flowchart
Flowchart adalah representasi grafis dari langkah – langkah yang harus diikuti
dalam menyelesaikan suatu permasalahan yang terdiri atas sekumpulan
simbol, dimana masing – masing simbol merepresentasikan kegiatan tertentu.
Flowchart diawali dengan penerimaan input dan diakhiri dengan penampilan
output. Sebuah flowchart pada umumnya tidak menampilkan instruksi bahasa
pemrograman, namun menetapkan konsep solusi dalam bahasa manusia
ataupun notasi matematis. Berikut ini akan dibahas tentang simbol – simbol
yang digunakan dalam menyusun flowchart.
Gambar Nama simbol Keterangan
Simbol
proses
Simbol ini digunakan untuk melambangkan kegiatan pemrosesan input. Dalam simbol ini, dapat dituliskan operasi-operasi yang dikenakan pada input, maupun operasi lainnya.
Simbol Input/
Output (I/O)
Merepresentasikan fungsi I/O yang membuat sebuah data dapat diproses (Input) atau ditampilkan (Output) setelah mengalami eksekusi informasi
Simbol arah
alir
Simbol ini digunakan untuk menghubungkan setiap langkah dalam flowchart dan menunjukkan kemana arah
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 11
aliran diagram. Anak panah ini harus mempunyai arah dari kiri ke kanan atau dari atas ke bawah. Anak panah ini juga dapat diberi label, khususnya jika keluar dari simbol percabangan.
Simbol
anotasi
Merepresentasikan informasi deskriptif tambahan, komentar atau catatan penjelasan. Dalam simbol ini, kita dapat menuliskan komentar apapun dan sebanyak apapun, hal ini berguna untuk memperjelas langkah-langkah dalam flowchart. Garis vertical dan garis terputus – putus dapat ditempatkan pada sisi kanan maupun kir
Simbol
percabangan
Simbol ini digunakan untuk melambangkan percabangan, yaitu pemeriksaan terhadap suatu kondisi. Hasil dari pemeriksaan dalam simbol ini adalah YES atau NO. Jika pemeriksaan menghasilkan keadaan benar, maka jalur yang harus dipilih adalah jalur yang berlabel Yes, sedangkan jika pemeriksaan menghasilkan keadaan salah, maka jalur yang harus dipilih adalah jalur yang berlabel No
Simbol
terminal/
terminator
Terminator berfungsi untuk menandai awal dan akhir dari suatu flowchart. Simbol ini biasanya diberi label START untuk menandai awal dari flowchart, dan label STOP untuk menandai akhir dari flowchart. Jadi dalam sebuah flowchart pasti terdapat sepasang terminator yaitu terminator start dan stop.
Simbol
konektor
Simbol konektor digunakan pada waktu menghubungkan suatu langkah dengan langkah lain dalam sebuah flowchart dengan keadaan on page atau off page. On page connector digunakan untuk menghubungkan suatu langkah dengan langkah lain dari flowchart dalam satu halaman, sedangkan off page connector digunakan untuk menghubungkan suatu langkah dengan langkah lain dari flowchart dalam halaman yang berbeda. Connector ini biasanya dipakai saat media yangkita gunakan untuk menggambar flowchart tidak cukup luas untuk memuat gambar secara utuh, jadi perlu dipisahpisahkan. Dalam sepasang connector biasanya diberi label tertentu yang sama agar lebih mudah
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 12
diketahui pasangannya
Simbol
Prosedur
Simbol ini berperan sebagai blok pembangun dari suatu program. Prosedur memiliki suatu flowchart yang berdiri sendiri diluar flowchart utama. Jadi dalam simbol ini, cukup dituliskan nama prosedurnya saja, jadi sama seperti jika melakukan pemanggilan suatu prosedur pada program utama (main program), aturan pada simbol percabangan, penulisan nama prosedur dilakukan secara satu per satu
Contoh flowchart konversi suhu Fahrenheit menjadi kelvin
Latihan
1. Konversikan bilangan – bilangan berikut ini :
a. 12710 ke sistem bilangan Biner, Heksadesimal dan Oktal
b. 010101012 ke sistem bilangan Desimal, Heksadesimal dan Oktal
c. 548 ke sistem bilangan Biner, Heksadesimal dan Desimal
d. 12F16 ke sistem bilangan Biner, Desimal dan Oktal
2. Tentukan nilai maksimum dan minimum yang bisa diberikan oleh 2 byte
variable integer.
Start
Input: suhu dalam temp_F
Hitung temp K Temp_K=5/9(temp_F-32)+273
output: suhu dalam K
Stop
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 13
3. Dari permasalahan – permasalahan di bawah ini, susunlah sebuah
algoritma untuk menyelesaikannya. Anda dapat menyusunnya dengan
menggunakan pseudocode ataupun flowchart.
a. Mengitung kalor
b. Menggunakan Komputer di Laboratorium
c. Menghitung rata – rata dari 3 buah bilangan
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 14
MODUL 2. GALAT DALAM METODE NUMERIK
Tujuan
1. Mengetahui tentang sumber-sumber galat dalam metode numerik
2. Mengetahui jenis-jenis galat dalam metode numerik
Galat atau biasa disebut error dalam metode numerik adalah selisih yang
ditimbulkan antara nilai sebenarnya dengan nilai yang dihasilkan dengan
metode numerik. Dalam metode numerik, hasil yang diperoleh bukanlah hasil
yang sama persis dengan nilai sejatinya. Akan selalu ada selisih, karena hasil
yang didapat dengan metode numerik merupakan hasil yang diperoleh dengan
proses iterasi (looping) untuk menghampiri nilai sebenarnya. Walaupun
demikian bukan berarti hasil yang didapat dengan metode numerik salah,
karena galat tersebut dapat di tekan sekecil mungkin sehingga hasil yang
didapat sangat mendekati nilai sebenarnya atau bisa dikatakan galatnya
mendekati nol.
A. Sumber-Sumber Galat
Kesalahan numerik dapat disebabkan oleh kekurang cermatan manusia
(human error), penggunaan alat ukur dan penggunaan mesin
hitung/kalkulator/komputer. Kekurang cermatan manusia dapat menyebabkan
kesalahan didalam merumuskan model matematika suatu fenomena alam dan
hasil pengukuran (kesalahan membaca alat ukur). Pemakaian alat ukur yang
tidak akurat juga akan menghasilkan pengukuran (data) yang mengandung
galat. Keterbatasan mesin hitung/kalkulator/komputer dalam menyajikan suatu
bilangan akan menghasilkan kesalahan-kesalahan pembulatan/pemotongan.
Dari penjelasan diatas galat dalam komputasi numerik dapat dikelompokkan
menjadi tiga macam, yaitu sbb:
1. Galat bawaan (inherent error),
Galat bawaan adalah galat yang dapat disebabkan oleh kesalahan hasil
pengukuran, kesalahan data awal, dan sejenisnya.
2. Galat pemotongan (Truncation error),
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 15
Galat pemotongan adalah galat yang ditimbulkan oleh pembatasan jumlah
komputasi yang digunakan pada proses metode numerik. Banyak metode
dalam metode numerik yang penurunan rumusnya menggunakan proses
iterasi yang jumlahnya tak terhingga, sehingga untuk membatasi proses
penghitungan, jumlah iterasi dibatasi sampai langkah ke n. Hasil
penghitungan sampai langkah ke n akan menjadi hasil hampiran dan nilai
penghitungan langkah n keatas akan menjadi galat pemotongan. dalam hal
ini galat pemotongan kan menjadi sangat kecil sekali jika nilai n di perbesar.
Konsekuensinya tentu saja jumlah proses penghitungannya akan semakin
banyak.
Dengan kata lain galat ini berkaitan dengan metode numerik yang dipakai
karena adanya pemotongan deret tak berhingga yang menyangkut
perhitungan nilai suatu fungsi atau nilai desimal, dan karena penghentian
proses perhitungn.
3. Galat pembulatan (Rounding off error),
Galat pembulatan adalah galat yang ditimbulkan oleh keterbatasan
komputer dalam menyajikan bilangan real atau angka signifikan
B. Galat Hampiran
Pemahaman tentang galat didalam komputasi numerik merupakan sesuatu
yang tidak dapat diabaikan, mengingat hakekat komputasi numerik
menggunakan metode – metode hampiran nilai.
Misalkan adalah adalah suatu nilai hampiran numerik untuk nilai numerik
eksak x yang tidak diketahui. Nilai
disebut galat. Sedangkan disebut galat mutlak. Galat relatif dinyatakan
Dimana nila x ≠ 0. Oleh karena nilai x biasanya tidak diketahui, dalam
perhitungan penyebut dalam galat relatif sering digunakan nilai hampiran,
sehingga persamaan galat relatif seringb dituliskan
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 16
Dengan kata lain
Dan
Contoh
Nilai hampiran yang sering dipakai adalah hampiran terhadap nilai-nilai dan
, yaitu
dan
Galat relatif hampiran 1,414 untuk nilai sekitar
Hampiran lain untuk yang cukup terkenal adalah 3,14, sehingga galat
relatifnya
C. Galat Pembulatan ( Rounding Off Error )
Pembulatan bilangan sering dilakukan didalam proses komputasi. Pembulatan
artinya mengurangi cacah digit pada suatu nilai hampiran dengan cara
membuang beberapa digit terakhir. Cara melakukan pembulatan suatu nilai
hampiran menggunakan aturan sebagai berikut:
a. Jika digit pertama yang dibuang kurang dari 5, digit didepannya tidak
berubah.
b. Jika digit pertama yang dibuang lebih atau sama dengan 5, digit
didepannya ditambah 1 nilainya.
Contoh
Nilai-nilai 2, 324 ; 2,316 dan 3,315 jika dibuang sampai dua angka
desimal (di belakan “koma” ), hasilnya adalah 2,32.
Pengulangan pembulatan tidak disarankan dalam komputasi numerik, karena
akan memperbesar galat. Sebagai contoh, jika nilai 18,34461 dibulatkan
sampai tiga angka desimal hasilnya 18,345 dan jika dibulatkan lagi sampai dua
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 17
angka decimal menjadi 18,35. Akan tetapi, jika langsung dibulatkan sampai
dua angka decimal hasilnya adalah 18,34.
D. Galat Pemotongan (Truncation Error)
Pengertian galat pemotongan biasanya merujuk pada galat yang disebabkan
oleh penggantian ekspresi matematika yang rumit dengan rumus yang lebih
sederhana. Istilah ini berawal dari kebiasaan mengganti suatu fungsi rumit
dengan deret Taylor terpotong ( hanya diambil berhingga suku ).
Contoh
Diketahui bahwa deret
konvergen ke satu . jika hanya diambil 10
suku maka diperoleh hampiran
Sehingga terdapat galat
Latihan
1. Hitunglah galat dan galat relatif dan banyaknya anka signifikan pada
masing-masing nilai hampiran berikut
a. Nilai x= 2,71828182 , dihampiri dengan =2,7182
b. Nilai y=98750 dihampiri dengan
c. Nilai z=0,0000059 dihampiri dengan 0,000006
2. Diberikan data dan . Hitunglah x+y dan x.y
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 18
MODUL 3. PENDAHULUAN MATLAB 1
Tujuan
1. Memperkenalkan dan mempelajari program Matlab
A. Dasar Matlab
Matlab merupakan software yang dipergunakan untuk menyelesaikan
perhitungan dalam sains maupun masalah-masalah dalam hal permesinan.
Nama MATLAB berasal dari kata Matrix LABoratory, yang artinya software ini di
desain untuk mempermudah perhitungan dalam bentuk matriks secara mudah.
MATLAB Dekstop
Gunakan tab untuk menuju
current directory browser help
Layaruntuk membuat
fungsi Matlab Mengganti
direktori Ruang
kerja
Melihat perintah yang
sudah dipergunakan/
current history
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 19
B. Dekstop Tools
Untuk menggunakan Matlab perlu diketahui beberapa tools pada dekstop
matlab, meliputi
1. Command Window
2. Command History
3. Current directory browser
4. Workspace browser
5. Help Browser
6. Editor/debugger
1. Command Window
Command window digunakan untuk memasukkan variabel atau menjalankan
suatu fungsi dalam M-Files dengan kata lain command indow merupakan
tempat untuk memasukkan perintah yang akan dieksekusi.
2. Command History
Command history digunakan untuk melihat perintah program yang pernah
digunakan. Perintah-perintah yang ditulis dalam command window akan di
tampilkan di command History. Pada command history dapat dilihat perintah
yang sudah pernah dijalankan , dapat meng-copy dan menjalankan kembali
perintah yang sudah terpilih.
Ketik fungsi atau
varibel dalam Matlab
Propmt
Matlab
menampilkan
hasil
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 20
3. Current Directory Browser
Current directory merupakan tempat menyimpan file digunakan untuk melihat
direktori file tempat bekerja. Untuk menjalankan file terlebih dahulu pastikan
bahwa direktory yang dipilih sudah benar.
4. Workspace Browser
Matlab workspace terdiri dari beberapa kumpulan variabel (nama arrays, nilai,
nilai maksimum, nilai minimum). Workspace matlab ini muncul dari proses
running M-files atau proses pada command window
Waktu
penggunaan
Pilih perintah yang
akan dijalankan
kembali kemudian
klik kanan dan pilih
perintah
Klik bagian ini
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 21
workspace tidak akan tersimpan setelah program Matlab diakhiri. Untuk
menyimpan file workspace pilih perintah “save workspace As” dari menu “File”
atau gunakan perintah “save function. Simpanan workspace disebut MAT-file
dengan extension “ .mat”. Untuk membaca MAT-file pilih “import data” dari
menu “file”.
5. Help Browser
Help browser digunakan untuk membantu apabila terdapat perintah atau
pernyataan yang tidak dimengerti. Adapun langkah penggunaan help browser
adalah sebagai berikut:
Double klik
untuk melihat
Tampilan yang
dihasilkan
Simpan file work
space
Kilk star
Pilih help
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 22
Untuk mempermudah dan lebih cepat dalam memecahkan masalah, dapat di
ketik help “perintah” di command window maka akan muncul penjelasan
mengenai tersebut.
6. Editor/ Debugger
Editor atau debugger digunakan untuk M-files, dimana program yang dibuat
akan di jalankan.
7. Variable data dan String
Variabel
Variabel data yang harus digunakan dalam menuliskan perintah dalam Matlab
harus diawali dengan huruf (letter). Matlab terdiri dari beberapa variabel
konstan seperti yang tercantum dalam tabel berkut
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 23
String
String adalah perintah yang digunakan untuk mengisi atau memasukkan
karakter. Karakter dalam Matlab merupakan karakter arrays
>> s1 = ’Press return to exit’; % Create a string
>>s2=’theprogram’; %Createanotherstring
>> s3 = strcat(s1,s2) % Concatenate s1 and s2
8. Operator Aritmatika
Operator aritmatika dalam Matlab meliputi beberapa operator yang terdapat
dalam tabel berikut:
C. Comparison and logical Operator
Bebarapa oprerator pembanding yang dipergunakan dalam Matlab adalah
sebagai berikut:
Fungsi adalah kata kunci yang digunakan untuk mendefinisikan prosedur pada
matlab. Fungsi dapat menerima input berbagai parameter dan mengeluarkan
output berupa matriks, grafik atau figure serta string.
Praktikum yang dilaksanakan
Untuk memahami Matlab lakukan beberapa perintah di command window
1. Ketik perintah berikut di comman window
>> sin(pi/3)
>> 2^(7/2)
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 24
>> sqrt(3)
>> log(10)
2. Ketik perintsh berikut di common window
>>A=[2 1 0;-1 2 2;0 1 4]; %Input 3x3 matrix
>>b=[1;2;3]; %Input column vector
>>soln=A\b
>> soln1=A.\b
>> B=[2 3 -2;0 1 6 ;2 3 4];
>>A/B
>>A./B
>>A.*B
>>A*B
>>A>B
>>B>A
>>(A>B) | (B>5)
3. Buat matriks berikut pada command window A =
>> A(2,3)
>> A([1 3 6])
>> A(1,:)
>> A(:,2)
>> inv(A)
>> A’
>> I=ones(3,3)
>> I./A
4. Lakukan perintah berikut untuk membuat plot grafik
>> x=[0:0.1:2*pi]
>> plot(x,sin(x))
>> plot(x,sin(x),’.’,x,cos(x),’o’)
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 25
5. Ketik perintah berikut:
>> help meshgrid
>> help subplot
>>help slice
Jelaskan hasil dari masing-masing perintah di atas
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 26
MODUL 4. PENDAHULUAN MATLAB 2
Tujuan
1. Memperkenalkan dan mempelajari program Matlab
A. Flow Control
Beberapa perintah dalam Matlab yang berhubungan dengan kondisi
(conditional) meliputi: else, if, elseif
Cara menggunakan if dalam Matlab
Untuk mengeksekusi block, pernyataan dalam kondisi benar atau dalam kondisi
salah. Pada kondisi if dapat diikuti oleh elseif yang dapat ditulis dalam Matlab
sebagai berikut:
Perintah else dalam Matlab dapat dituliskan
B. Loops
Beberapa perintah Matlab yang dipergunakan dalam proses looping meliputi
while, for, break, continue, return,
1. While
Penulisan while dalam Matlab
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 27
Pernyataan block yang ditulis dalam Matlab adalah pernyataan benar, setelah
dieksekusi kondisi block dieksekusi kembali dan jika masih benar lagi maka
kondisi block akan dieksekusi lagi sampai kondisi menjadi salah.
2. for
Untuk perintah for diikuti oleh target dan sequence yang disusun sebagai
berikut:
3. break
Proses looping dapat dihentikan dengan menggunakan perintah break. Perintah
break ini digunakan untuk mengontrol pernyataan atau kondisi yang berada
diluar proses looping atau kondisi looping yang tidak terhitungatau berhingga
(encountered).
4. continue
Perintah continue dipergunakan untuk melanjutkan proses looping yang tidak
berhingga (encountered). Perintah ini diberikan untuk mengontrol iterasi tanpa
mengeksekusi pernyataan dalam proses iterasi.
5. return
Perintah ini dipergunakan untuk mengembalikan atau menormalkan kembali
perintah yang keluar dari pernyataan sehingga proses ini memaksa program
untuk keluar atau selesai.
C. Functions
Penulisan function dalam Matlab mengikuti aturan berikut
Perintah inputatau output harus dipisahkan dengan tanda koma, jumlah
argumen atau perintah boleh sama dengan nol apabila hanya terdapat satu
satu argumen yang berada di dalam kurung tertutup. Untuk membuat fungsi
yang benar dan dapat diakses maka program harus disimpan dalam file nama
yang tertulis dalam fungsi seperti contoh berikut function_name.m.
D. Inline functions
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 28
Apabila fungsi tidak terlalu kompleks dan panjang maka fungsi dapat dituliskan
dalam bentuk inline sebagai berikut
Dimana fungsi variabel dalam fungsi, var1, var2 .... adalah nama-nama variabel
independent
Contoh
E. Input/Output
Fungsi Matlab yang dituliskan dalam Matlab
Tampilan prompt akan muncul, yang berartitampilan tersebut menunggu
inputan. Apabila inputan sudah dimasukan maka tampilan akan melanjutkan
proses kerja.
contoh
F. Printing output
Hasil perintah yang akan dicetak atau tampil dalam command window dapat
ditampilkan dalam digit yang panjang dengan menggunakan perintah
G. Array Manipulating
Membuat array
Ketik perintah berikut
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 29
Colon space
Ketik perintah berikut
Linspace
Ketik perintah berikut
Logspace
Zeros
Ones
Rand
Eye
Praktikum yang dilaksanakan
1. Ketik perintah berikut dalam m file kemudian panggil dalam command
windows
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 30
Tulis apa yang dapat disimpulkan
2. Ketik perintah berikut dalam command windows
Tulis apa yang dapat disimpulkan
3. Ketik perintah berikut dalam command windows
4. Ketik perintah berikut dalam m file kemudian panggil dalam command
windows
5. Ketik perintah berikut dalam m file kemudian panggil dalam command
windows
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 31
6. Ketik perintah berikut dalam m file kemudian panggil dalam command
windows
7. Buatlah perintah dalam Matlab untuk menyatakan deret:
a. 1, 1, 2, 3, 5,...
b. 1, 4, 9, 16,...
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 32
MODUL 5. SOLUSI PERSAMAAN LINIER
Tujuan
1. Mempelajari dan mencari solusi persamaan linier dengan metode
aljabar/analitik.
2. Mempelajari dan mencari solusi persamaan linier dengan metode iteratif
Banyak metode yang bisa digunakan, bisa secara aljabar atau secara iterative
namun hanya memberikan solusi berupa pendekatan (hasil aproksimasi). Mana
yang terbaik, tergantung dari struktur matriks A, konteksnya pada sistem yang
ingin dipecahkan dan ukurannya dibandingkan dengan kemampuan komputer
yang digunakan. Ada beberapa metode analitik yang dipergunakan untuk
mencari solusi persamaan linier, yaitu. Eliminasi gauss, LU decomposition .
Sedangkan dalam metode iteratif dengan menggunakan iterasi dikenal
beberapa metode juga, antaralain. Metode Jacobi, metode Gauss-seidel,
metode SOR.
A. Eiminasi gauss
Pendekatan analitik dengan menggunakan eliminasi gauss dapat dinyatakan
dalam bentuk matriks AX = b
A =
; X =
; b =
Pada eliminasi gauss matriks A di atas akan diubah menjadi natriks U atau
matriks L. Untuk matriks U, yaitu matriks dengan komponen di bawah diagonal
utama bernilai 0
A =
Sehingga persamaan AX= b dapat diselesaikan menjadi
X =bn/Ann
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 33
Secara umum solusi persamaan linier dengan metode eliminasi gauss
dinyatakan dalam bentuk
, k = n-1, n-2,…,1
MATLAB fungsi untuk metode eliminasi Gauss
function x=gauss(A,b) [n,n]=size(A); k=1; [n1,k]=size(b); x=zeros(n,k); for i=1:n-1; m=-A(i+1:n,i)/A(i,i); A(i+1:n,:)=A(i+1:n,:)+m*A(i,:); b(i+1:n,:)=b(i+1:n,:)+m*b(i,:); end x(n,:)=b(n,:)./A(n,n); for i=n-1:-1:1; x(i,:)=(b(i,:)-A(i,i+1:n)*x(i+1:n,:))./A(i,i); end
B. LU decomposition
LU dekomposisi merupakan metode yang tidak jauh berbeda dengan eliminasi
gauss. Pada LU dekomposisi persamaan linier AX = b, mengubah matriks A
menjadi matriks atas (Upper) dan matriks bawah (Lower), A = LU
sehingga
Solusi persamaan linier AX=b berubah menjadi
L U X = b, dengan memisalkan UX = C maka
L C= b
MATLAB fungsi untuk metode LU Dekomposisi
function x=ludec(A,b) n=size(A,1); for k=1:n-1;
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 34
for i=k+1:n if A(i,k)~=0.0 lambda=A(i,k)/A(k,k); A(i,k+1:n)=A(i,k+1:n)-lambda*A(k,k+1:n); A(i,k)=lambda; end end end if size(b,2)>1;b=b';end for k=2:n b(k)=b(k)-A(k,1:k-1)*b(1:k-1); end for k=n:-1:1 b(k)=(b(k)-A(k,k+1:n)*b(k+1:n))/A(k,k); end x=b; Metode lain yang dapat digunakan untuk menyelesaikan suatu sistem
persamaan linier adalah dengan melakukan iterasi (penghitungan tidak
langsung) didasarkan pada konversi sistem Ax = b ke dalam sistem yang
ekuivalen yaitu x = Cx + d dan pembentukan barisan hampiran x(1), x(2),
x(3),..., x(k), dimana x(k) = C x(k - 1)+ d
Ide dasarnya adalah menyelesaikan persamaan ke-i ke dalam variabel ke-i.
diubah ke dalam sistem:
x1 = 11
14
11
143
11
13
2
11
12
a
bx
a
ax
a
ax
a
a
x2 = 1
22
11 xa
a
22
24
22
243
22
23
a
bx
a
ax
a
a
x3 = 2
33
32
1
33
31 xa
ax
a
a
33
3
4
33
34
a
bx
a
a
x4 = 3
44
43
2
44
421
44
41 xa
ax
a
ax
a
a
44
4
a
b
Pada penyelesaian persamaan linier secara iteratif, dikenal ada beberapa
metode yakni: Metode Jacobian, Metode Gauss-Seidel dan SOR.
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 35
C. Metode Jacobi
Metode Jacobi merupakan metode iteratif yang menggunakan suatu hampiran
awal atau tebakan awal x0 untuk mendapatkan x1, x2, x3,….sampai diperoleh
kekonvergenan pada nilai x
Adapun bentuk persamaan iterasi dari metode Jacobi
Dengan k = 1,2,3,… i = 1,2,3,…
MATLAB fungsi metode Jacobi
function x=jacobian(A,b,x0,maks) tol=10e-6;h=x0'; n=length(b);x=x0; for i=1:maks for j=1:n S=b(j)-A(j,[1:j-1,j+1:n])*x0([1:j-1,j+1:n]); x(j)=S/A(j,j); end g=abs(x-x0); err=norm(g); relerr=err/(norm(x)+eps); x0=x;h=[h;x0']; if (err<tol)||(relerr<tol); break end end
D. Metode Gauss-Seidel
Merode gauss-seidel mirip dengan metode jacobi, perbedaannya hanya
terdapat pada cara pengupdetan nilai-nilainya.
Adapun persamaan iterative dari metode gauss-seidel
Dengan sedikit perhitungan matematis dapat diubah menjadi
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 36
MATLAB fungsi metode Gauss-Seidel
function x=gauss_seidel(A,b,x0,tol,maks) [n,m]=size(A); x=x0; C=-A; for i=1:n C(i,i)=0; end for i=1:n C(i,1:n)=C(i,1:n)/A(i,i); end for i=1:n r(i,1)=b(i)/A(i,i); end i=1; disp('f x1 x2 x3 ...') while (i<=maks) xlama=x; for j=1:n x(j)=C(j,:)*x+r(j); end if norm(xlama-x)<=tol disp('metode iterasi gauss seidel telah konvergen') return end i=i+1; end
E. Metode SOR
Metode SOR (successive Over Relaxation) adalah metode yang memodifikasi
metode Gauss-Seidel melalui parameter relaksasi ω. Parameter relaksasi
ω.mengendalikan proporsi nilai update yang berasal dari solusi sebelumnya
dan proporsi yang berasal dari kalkulasi yang sedang berlangsung. Nilai ω.
Berkisar antara 1< ω < 2. Persamaan iterative SOR dinyatakan dalam bentuk
pada fungsi tersebut digunakan fungsi kekonvergenan
Dengan tol adalah batas toleransi yang diperbolehkan
MATLAB fungsi metode SOR
function x=SOR(A,b,x0,w,tol,maks) [n,m]=size(A);x=x0;C=-A; w=1.5; for i=1:n
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 37
C(i,i)=0; end for i=1:n C(i,1:n)=C(i,1:n)/A(i,i); r(i,1)=b(i)/A(i,i); end i=1; while(i<=maks) xlama=x; for j=1:n x(j)=(1-w)*xlama(j)+w*(C(j,:)*x+r(j)); end if norm(xlama-x)<=tol disp('metode SOR telah konvergen'); return; end i=i+1; end
Tugas Pendahuluan
Ketiklah terlebih dahulu function di atas untuk menyelesaikan sistem
persamaan linier
Praktikum yang dilaksanakan
1. Selesaikan dengan menggunakan metode eliminasi gauss, dan LU
Decomposition persamaan linier berikut ini:
a. -0.005x1+x2+x3 = 2 ; x1+2x2+x3= 4 ; -3x1-x2+6x3= 2
b. x1-x2+2x3=5 , 2x1-2x2+x3 =1 , 3x1-2x2+7x3 =20
c. 1.34x1+7.2x2+1.04x3=9.60, 3.18x1+4.01x2+0.980x3=8.17,
2.84x1-24.0x2-2.24x3 =-23.4
2. Gunakan metode Jacobi dan Gauss-seidel untuk mencari solusi sistem Ax
= b, secara iteratif dengan mengambil
x(0)=
,untuk: A =
b =
; tol =10e-6, maks= 50
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 38
3. Gunakan metode SOR untuk mencari solusi sistem Ax = b, secara iteratif
dengan mengambil x(0) =
, untuk ω = 1,75: A =
,
b =
Catat hasinya dengan nilai maks 50
Ulangilah langkah di atas dengan mengambil nilai ω = 1,9387 dan maks
dicoba dari 75 dan 150. Catat hasilnya kemudian bandingkan
4. Tentukan besarnya arus yang mengalir
pada rangkaian loop berikut:
Gunakan metode jacobi, gauss-seidel,
SOR dalam penyelesaiannya untuk R=5, 10 ohm
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 39
MODUL 6. SOLUSI PERSAMAAN NON LINIER
Tujuan :
1. Mempelajari metode pendekatan mencari akar persamaan dengan metode
bagi dua dan posisi palsu.
2. Mengaplikasikan metode pendekatan untuk menyelesaikan permasalahan
sederhana.
Telah dikenal beberapa metode nonkomputer di dalam menyelesaikan akar-
akar secara linier dan non-linier. Untuk kasus non-linier ada persamaan
transendental yang didalamnya mengandung bentuk-bentuk trigonometri,
eksponensial, logaritma, dan persamaan campuran yang mengandung polinom
dan transendental. Dalam beberapa kasus, akar-akar bisa ditentukan dengan
metode langsung. Persamaan kuadrat ax2+ bx + c=0 dalam keadaan tertentu
bisa diselesaikan dengan persamaan kuadratik:
Secara matematis, mencari akar persamaan berarti menyelesaikan persamaan
dengan bentuk f(x) = 0 dengan x merupakan variabel tunggal. Nilai x dicari
secara iteratif. Mula-mula nilai x ditebak dengan nilai x0, dan selanjutnya
dihitung x1, x2 …xn, secara iteratif sampai nilai f(xn) – 0 < ε (tol) atau konvergen,
dimana ε adalah toleransi ketepatan penghitungan.
Ada beberapa metode untuk menyelesaikan persamaan non linier, antara lain:
A. Metode Bagi Dua (Bisection)
Metode ini memerlukan dua buah titik tebakan, a dan b, dengan syarat f(a) *
f(b) < 0. Nilai c (akar persamaan yang dicari) ditentukan secara iteratif dengan
persamaan
2
11 nn
n
bax
Nilai nx merupakan nilai yang dicari apabila |f( nx )| < T (toleransi, misal 10-6 dan
Jika |f( nx )| > T maka akan dilakukan evaluasi dengan persyaratan sebagai
berikut:
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 40
Apabila f(a) . f( nx ) < 0 , maka nilai Cn menggantikan nilai 1nb
Apabila f(a) . f( nx ) > 0 , maka nilai Cn menggantikan nilai 1na
Perhitungan akan berhenti apabila toleransi sudah tercapai, yakni memenuhi
persamaan
MATLAB Program untuk metode bisection (bagi dua)
function X= bagidua(f,a,b,tol) A=[a];B=[b];X=[];FX=[];iterasi=[]; fa=feval(f,a); fb=feval(f,b); if fa*fb>0, return end N=1+round((log(b-a)-log(tol))/log(2)); %maksimum iterasi for k=1:N iterasi=[iterasi;k]; x=(a+b)/2; fx=feval(f,x); X=[X;x];FX=[FX;fx]; if (fx==0)|((b-a)<tol),break,end if fa*fx<0; b=x; else a=x; end A=[A;a];B=[B;b];format long; end
B. Metode Posisi Palsu (Regular Falsi)
Metode ini juga memerlukan dua buah nilai tebakan a dan b. Nilai c (akar
persamaan) ditentukan dengan persamaan :
)()(
)(11
11
11
nn
nn
nnnafbf
abafax
Perhitungan akan berhenti apabila toleransi sudah tercapai, yakni memenuhi
persamaan
MATLAB Program untuk metode bisection (bagi dua)
function X=tpalsu(f,a,b,tol) A=[a];B=[b];X=[];FX=[];iterasi=[];
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 41
fa=feval(f,a) fb=feval(f,b) if fa*fb>0, return end N=1+round((log(b-a)-log(tol))/log(2)); %maksimum iterasi for k=1:N iterasi=[iterasi;k]; x=a-(((b-a)/(fb-fa))*fa); fx=feval(f,x); X=[X;x];FX=[FX;fx]; if (fx==0)|((x-a)<tol),break,end if fb*fx<0; a=x; else b=b; end if fa*fx<0; b=x; else a=a; end A=[A;a];B=[B;b];format long; end
C. Metode Titik tetap
Metode ini merubah bentuk persamaan yang akan diselesaikan menjadi bentuk
dalam penyelesaiannya diperlukan nilaitebakan awal x0 yang kemudian
digunakan untuk menentukan x1,x2,..., xn. Dengan melakukan iterasi tersebut
dapat diperoleh nila x yang konvergen dan merupakan solusi yang diharapkan
Adapun Matlab fungsi untuk metode titik tetap Function x=ttetap(g,x0,tol,N) iterasi=[0]; x=[x0]; err=x0; galat=err; tolerr=1; r=x0; for k=1:N, iterasi=[iterasi;k]; r=feval(g,x0); err=abs(r-x0);
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 42
x=[x;r]; galat=[galat;err]; relerr=err/(abs(r)+eps); if (err<tol)|(relerr<tol),break;end x0; end D. 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. Gagasan dasarnya adalah grafik f dihampiri dengan garis-garis
singgung yang sesuai. Dengan menggunakan suatu nilai x0 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
skema Newton Raphson
Akar persamaan dalam metode ini
didekati dengan persamaan berikut :
)('
)(
1
1
1
n
n
nnxf
xfxx
Adapun Matlab fungsi untuk Metode Newton Raphson
function [x,y]=newt(f,df,x0,tol,maks) x(1)=x0; y(1)=feval(f,x(1)); dy(1)=feval(df,x(1)); iter=0; for i=2:maks x(i)=x(i-1)-y(i-1)/dy(i-1); y(i)=feval(f,x(i)); if abs(x(i)-x(i-1))<tol disp('metode newton telah konvergen'); break
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 43
end dy(i)=feval(df,x(i)); iter=iter+1; end if(iter>=maks) disp('akar tak sesuai dengan toleransi'); end x=transpose(x); y=transpose(y); hasil=[x;y]; E. Metode Secant
Metode secant merupakan modifikasi dari metode Newton Raphson. Pada
metode ini digunakan tali busur (x0,f(x0)) dan (x1,f(x1)) sebagai hampiran f(x) dan
mencari titik potongnya dengan sumbu-x sebagai hampiran akar.
Secara umum bentuk iterasi metode secant adalah:
Secara geometri, dalam metode
Newton xi+1 merupakan perpotongan
sumbu x dengan garis singgung di xi ,
sedangkan dalam metode Secant xi+1
adalah perpotongan sumbu x dengan
talibusur kurva f(x) yang berpadanan
terhadap xn+1 dan xn. Metode Secant
memerlukan dua tebakan awal, xi–1
dan xi , tetapi tanpa perhitungan
turunan.
Gambar skema metode secant
Matlab fungsi untuk Metode Secant
function [x,y]=secant(f,x0,x1,tol,maks) x(1)=x0;x(2)=x1; y(1)=feval(f,x(1)); y(2)=feval(f,x(2)); iter=0; for i=2:maks x(i+1)=x(i)-(x(i)-x(i-1))*y(i)/y(i)-y(i-1); y(i+1)=feval(f,x(i+1)); b=y(i)-y(i-1);
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 44
if abs(x(i+1)-x(i))<tol disp('metode newton telah konvergen'); break end if y(i)==0.0; disp('akar ditemukan') end if b==0; break, end iter=iter+1; end if(iter>=maks) disp('akar tak sesuai dengan toleransi'); end x=transpose(x);y=transpose(y); hasil=[x;y]; Tugas Pendahuluan
Ketiklah terlebih dahulu function di atas untuk menyelesaikan sistem
persamaan non linier.
Praktikum yang dilaksanakan
1. Selesaikan persamaan berikut dengan menggunakan metode bagi dua dan
posisi palsu pada interval [0.5,1]
a). F(x) = x3 – sin(x)
b). F(x) = x - cos(x)
c). F(x) = x2 - 2cos(x)
Bandingkan hasil dari ke dua metode di atas
2. Selesaikan persamaan di atas dengan menggunakan metode titik tetap
dengan menggunakan tebakan awal x0=0; tol=10e-6 dan maksimum iterasi
15. Bandingkan hasil dengan metode bagi dua dan titik palsu di atas
3. Tentukan semua akar real dari
Gunakan metode newton raphson untuk menyelesaikan, gunakan tebakan
awal x0=0; toleransi=10e-6, maksimum iterasi=50.
4. Sebuah peluru bermassa 2 gram ditembakkan vertikal ke udara dan
bergerak turun setelah mencapai batas kecepatan. Batas kecepatan
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 45
ditentukan oleh mg = Ftarik dengan m adalah massa dan g adalah percepatan
gravitasi. Persamaan lengkapnya adalah sebagai berikut
Tentukan batas kecepatan dengan metode secant, nilai awal tebakan v ≈ 40
m/s
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 46
MODUL 7. INTERPOLASI
Tujuan
1. Mempelajari metode interpolasi dengan pendekatan polynomial dan spline.
2. Mengaplikasikan metode pendekatan untuk menyelesaikan permasalahan
sederhana.
Interpolasi merupakan proses pencarian dan perhitungan nilai suatu fungsi
yang grafiknya melewati sekumpulan titik yang dapat berupa hasil eksperimen
dalam sebuah percobaan atau dari suatu fungsi yang telah diketahui. Ada 2
jenis metode yang dipergunakan dalam interpolasi, yaitu polynomial dan spline
Terdapat 2 jenis polynomial yang biasa dipergunakan dalam interpolasi, yaitu
polynomial Lagrange dan polynomial Newton
A. Polynomial Lagrange
Seperti telah dijelaskan bahwa interpolasi merupakan proses menaksir suatu
nilai dari fungsi yang tidak diketahui. Interpolasi dalam polynomial Lagrange
dinyatakan dalam bentuk:
Matlab fungsi untuk Metode Polynomial Lagrange
function P=polag(x,y,z) n=length(x); for k=1:n L(k)=1; for j=1:n; if j~=k, L(k)=L(k)*(z-x(j))/(x(k)-x(j)); end
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 47
end end P=y*L';
B. Polynomial Newton
Metode newton dalam bentuk polynomial ditulis dalam bentuk:
Pn-1(x)=a1+a2(x-x1)+a3(x-x1)(x-x2)+…+an(x-x1)…(x-xn-1)
Dimana koefisien a dapat ditentukan dengan cara
y1 = a1
y2 = a1+(x2-x1)a2
. . yn= a1+a2(x2-x1)+…+(xn-x1)…(xnxn-1)an
Adapun matlab fungsi Polynomial Newton adalah
function N=newtpol(x,y,z); n=length(x); a=y; for k=2:n, a(k:n)=(a(k:n)-a(k-1))./(x(k:n)-x(k-1)); end N=a(n); for k=1:n-1, N=a(n-k)+(z-x(n-k))*N; end
Selain dengan metode polynomial, penyelesaian interpolasi juga menggunakan
metode spline. Metode spline merupakan metode yang terdiri atas beberapa
polynomial yang dirangkai bersama dengan menggunakan beberapa syarat.
Ada 3 jenis spline yang dipergunakan, yaitu spline linier, spline kuadratik, spline
kubik.
C. Spline Linier
Spline linear adalah interpolasi yang diperoleh dengan cara menghubungkan
dua titik yang mengapit daerah yang akan dicari interpolasinya. Spline linier
pada dasar memiliki prinsip dengan persamaan garis pada umumnya yang
memerlukan nilai gradien yang akan di gunakan untuk menentukan fungsi.
Spline linier S(x) pada [x1,xn] didefinisikan oleh
S(x) = S1(x) , untuk x1 ≤ x ≤ x2
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 48
S2 (x), untuk x2 ≤ x ≤ x3……
Sk(xk) = fk (x) = akxk+bk
;
Matlab fungsi Spline Linier
function s=spline(x,f,z) n=length(x); for j=1:length(z), for k=1:(n-1), if z(j)>=x(k)&& z(j)<=x(k+1), m=(f(k+1)-f(k))/(x(k+1)-x(k)) s=f(k)+m*(z(j)-x(k)); end end end D. Spline Kuadratik
Spline kuadratik S(x) yang menginterpolasikan titik (x1,f1),…,(xn,fn) dengan x1 <
x2 < … < xn dapat dinyatakan sebagai S(x) = Sk(x), untuk xk ≤ x ≤ xk+1, k =1, 2,
3…
Maka bentuk interpolasi sline kuadratik dinyatakan dalam bentuk
Matlab fungsi untuk Spline Kuadratik
function S=spline2(x,y,z) n=length(x); m(1)=0; for k=2:n, m(k)=2*(y(k)-y(k-1))/(x(k)-x(k-1))-m(k-1); end for j=1:length(z) for k=1:n-1 if z(j)>=x(k)&&z(j)<=x(k+1), S(j)=(m(k+1)-m(k))/(2*(x(k+1)-x(k)))*(z(j)-x(k))^2+... m(k)*(z(j)-x(k))+y(k); end end end
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 49
E. Spline Kubik
Spline kubik merupakan menyempurnaan dari spline kuadratik. Bentuk
interpolasi spline kubik dinyatakan dalam bentuk:
Matlab Fungsi untuk Spline Kubik
function S=spline3b(x,y,z) n=length(x); m(1)=0; for k=2:n, m(k)=2*(y(k)-y(k-1))/(x(k)-x(k-1))-m(k-1); end for k=1:(n-1) C(k)=(y(k+1)/(x(k+1)-x(k)))-(x(k+1)-x(k))*m(k+1)/6; end for k=1:n-1; D(k)=(y(k)/(x(k+1)-x(k)))-(x(k+1)-x(k))*m(k)/6; end for j=1:length(z) for k=1:n-1 if z(j)>=x(k)&&z(j)<=x(k+1), S(j)=((m(k+1)*(z(j)-x(k)).^3)/(6*(x(k+1)-x(k))))+... ((m(k)*(x(k+1)-z(j)).^3)/(6*(x(k+1)-x(k))))+... C(k)*(z(j)-x(k))+D(k)*(x(k+1)-z(j)); end end end
Tugas Pendahuluan
Ketiklah terlebih dahulu function di atas untuk menyelesaikan soal-soal
interpolasi
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 50
Praktikum yang dilaksanakan
1. Konduksi termal relatif k dari sodium atau natrium dengan suhu T dengan
data sebagai berikut:
T(0C) 79 190 357 524 690
k 1 0.932 0.839 0.759 0.693
Tentukan k pada T= 1000C dan 5500C dengan menggunakan polynomial
Lagrange dan newton, bandingkan hasilnya
2. Diketahui variasi data masajenis (ρ) udara relatif terhadap ketinggian
h (km) 0 .000 1.525 3.050 4.575 6.100 7.625 9.150
Ρ (kg/m3) 1 0.8617 0.7385 0.6292 0.5328 0.4481 0.3741
Tentukan densitas relative udara pada ketinggian 1.50, 4.0, 8.5, 10.5 km.
gunakan metode spline linier, spline kubik dan kuadratik.
3. Diperoleh variasi data viskositas µk terhadap suhu T sebagai berikut:
T (0C) 0.0 21.10 37.80 54.40 71.10 87.80 100.0
µk (10-3 m2/s) 1.790 1.130 0.6960 0.5190 0.3380 0.3210 0.2960
Tentukan µk pada T=100C, 600C, 900C dengan menggunakan metode
polynomial Newton, Polynomial Lagrange, spline linier dan spline kubik,
bandingkan hasilnya (metode manakah yang terbaik?)
4. Diketahui variasi data kapasitas kalor Cp alumunium yang bergantung pada
suhu adalah sebagai berikut:
Tentukan Cp pada suhu T=2000C and 4000C
5.
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 51
MODUL 8. PENDEKATAN INTEGRAL
Tujuan :
1. Mempelajari beberapa metode pendekatan integral
2. Menggunakan metode pendekatan integral trapezium, simpson dan segi
empat untuk mengintegralkan beberapa persamaan sederhana.
3. Mempelajari beberapa metode pendekatan integral
4. Menggunakan metode kuadratur Gauss
Integral suatu fungsi pada integral [a,b], dapat didekati dengan menghitung luas
daerah di bawah fungsi f(x) pada interval [a,b]. Banyak metode yang dapat
digunakan untuk menghitung pendekatan luas daerah tersebut.
b
a
dxxfI )(
Klasifikasi metode integrasi numerik meliputi:
A. Metode pias
Daerah integrasi dibagi atas sejumlah pias (strip) yang berbentuk segiempat.
Luas daerah integrasi dihampiri dengan luas seluruh pias. Beberapa metode
yang termasuk dalam metode pias antara lain:
1. Metode Segiempat (rectangle rule)
Metode segiempat merupakan metode penyelesaian integral yang sangat
sederhana. Luas daerah dibawah permukaan kurva [a,b] dibagi menja di n buah
pias (strip) atau segmen. Lebar tiap pias adalah h=(b-a)/n, tinggi f(x). sehingga
S memiliki persamaan umum sebagai berikut:
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 52
Untuk hampiran kanan
Untuk hampiran kiri
Gambar. Metode segiempat dengan lebar
h
Untuk hampiran titik tengah
Gambar. Metode segi empat dengan
hampiran titik tengah
2. Metode Trapesium
Metode trapezoid atau trapezium merupakan metode integrasi yang sederhana.
Pada metode ini, luas daerah di bawah f(x) pada interval (a,b) didekati dengan
menjumlahkan luasan trapezium dengan lebar h =(b-a) /n, dan tinggi f(xi)
sehingga f(xI+1) atau T sebagai berikut :
Gambar. Metode trapesium pada
kurva dengan lebar h
h
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 53
MATLAB fungsi Metode Trapezium
function T=trapezoid(fungsi,a,b,n) fa=feval(fungsi,a); fb=feval(fungsi,b); h=(b-a)/n; T=0.0; for k=1:(n-1) x=a+h*k; fx=feval(fungsi,x); T=T+fx; end T=h*(fa+fb)/2+h*T;
B. Metode Newton Cotes
Fungsi integral f(x) dihampiri dengan polinom interpolasi Pn(x),selanjutnya
integrasi dilakukan terhadap Pn(x). Metode Newton cotes meliputi
Metode Simpson Rule
Pada metode ini, luas daerah dibawah f(x) pada interval (a,b) di dekati dengan
menjumlahkan luasan parabola yang di dekati dengan tiga buah titik yang
berdekatan. Persamaan metode ini sbb:
1
1
2
2
)()(2)(4)(3
1 n
i
n
i
kkkk bfxiafxiafafxS
MATLAB fungsi untuk Metode Simpson
function s=sinprl(f,a,b,n) h=(b-a)/(2*n); fa=feval(f,a); fb=feval(f,b); s1=0; s2=0; for k=1:n x=a+h*(2*k-1); s1=s1+feval(f,x); end for k=1:(n-1) x=a+h*2*k; s2=s2+feval(f,x); end s=h*(fa+fb+4*s1+2*s2)/3;
ganjil genap
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 54
C. Metode Kuadratur Gauss
Apabila jarak setiap dua nilai x berurutan sama, dapat digunakan merode
Newton Cotes untuk menghitung sampiran integral. Akan tetapi jika diketahui
suatu fungsi secara eksplisit maka perlu dipilih titik-titik dimana nilai dari
fungsiakan dihitung. Kuadratur Gauss berkenaan dengan pemilihan titik
tersebut sehingga keakuratan hampiran meningkat. Pada kuadratur Gauss nilai
integral diperoleh dengan mengevaluasi nilai fungsi pada sejumlah titik tertentu
di dalam selang [-1,1], mengalikannya dengan suatu konstanta, kemudian
menjumlahkannya keseluruhan perhitungan.
Nilai-nilai xi dikenal sebagai absis dan nilai ci dikenal sebagai bobot
Beberapa metode kuadratur gauss, yaitu
1. Aturan gauss legendre 2 titik
Apabila f(x) kontinu di titik [-1,1], maka
Dengan
Persamaan di atas memilik derazat keakuratan n = 3
2. Aturan gauss legendre 3 titik
Apabila f(x) kontinu di titik [-1,1], maka dengan aturan gauss Legendre 3 titik
berlaku persamaan
Persamaan di atas memiliki derazat keakuratan n = 5.
Beberapa nilai absis dan bobot kuadratur gauss Legendre
N Absis (xn) Bobot (cn) Galat (En(f))
2 ± 0.5773502692 1.0000000000
3 ± 0.7745966692
0.00000000000
0.5555555556
0.8888888889
4 ± 0.8611363116 0.3478548451
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 55
± 0.3399810436 0.6521451649
5 ± 0.9061798459
± 0.5384693101
0.00000000000
0.2369268851
0.4786286705
0.5688888889
D. Perhitungan Kuadraturdengan MATLAB
Matlab telah menyediakan perintah-perintah untuk menghitung kuadratur atau
nilai integral tentu dari suatu fungsi secaea numerik.Perintah MATLAB yang
dipergunakan untuk menyelesaiakan nilai integral tentu secara numerik adalag
“quad”,”quad8”, ”quad1”. Perbedaan perintah tersebut”quad” menggunakan
metode simpson, metode “quad8” menggunakan metode Newton Cotes dan
“quad1” merupakan metode terbaru, yaitu kuadratur Lobatto.
Sintaks pemakaian pemakaian perintah quad
q = quad(f,a,b)
q = quad(f,a,b,tol)
q = quad(f,a,b,tol,trace)
Sintaks pemakaian pemakaian perintah quad8
q = quad8(f,a,b)
q = quad8(f,a,b,tol)
q = quad8(f,a,b,tol,trace)
Sintaks pemakaian pemakaian perintah quad1
q = quad1(f,a,b)
q = quad1(f,a,b,tol)
q = quad1(f,a,b,tol,trace)
Tugas Pendahuluan
Ketiklah terlebih dahulu function di atas untuk menyelesaikan soal-soal
interpolasi
1. Buat matlab fungsi untuk metode segiempat hampiran kanan dan titik
tengah
2. Buat Matlab fungsi untuk metode Legendre 2 titik, 3 titikdan 5 titik
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 56
3. Buat Matlab fungsi untuk metode Legendre 2 titik, 3 titik dan 5 titik
Praktikum yang dilaksanakan
1. Tentukan hasil integral dari suatu fungsi berikut dengan menggunakan
metode segiempat hampiran titik tengah dan titik kanan
Bagi daerah dibawah kurva menjadi 15 (gunakan format long), bandingkan
hasilnya dari kedua hampiran tersebut
2. Tentukan hasil integral dari suatu fungsi berikut dengan menggunakan
metode trapesium
Bagi daerah di bawah kurva menjadi 10, 15, 20, (gunakan format long)
bandingkan hasilnya.
3. Gambar berikut menunjukkan sebuah ayunan matematis dengan panjang
tali L, sudut simpangan θ, periode T. Fungsi periode T memenuhi
persamaan
Ket: k=sin(
, g = 9,8 m/s2 , L = 1 m,
Gunakan aturan trapesium dan simpson rule untuk menyelesaikan
persamaan di atas dengan membagi daerah dibawah kurva menjadi 10,
20, 30
4. Tentukan hasil integrasi berikut dengan menggunakan gauss 2 titik, 3 titik
dan 5 titik kemudian bandingkan hasilnya.
5. Hitunglah integral
dengan menggunakan perintah quad,
quad 8 dan quad1 . bandingkan hasilnya
θ
L
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 57
MODUL 9. PENGHAMPIRAN TURUNAN
Tujuan
1. Mempelajari penghampiran turunan dengan metoda beda pusat.
2. Menggunakan metoda beda pusat untuk mencari turunan pertama, kedua
dan ketiga dari sebuah fungsi.
Turunan pertama dari fungsi variabel f(x) di titik x ditentukan dari definisi limit
Dalam kenyataannya tidak mudah membuat ∆x yang sangat kecil, sehingga
mendekati 0. Oleh sebab itu dalam perhitungan ∆x dapat diganti dengan h = xk-1
- xk yaitu jarak antara dua buah data yang berdekatan.
Ada beberapa metode yang dipergunakan untuk menyelesaikan suatu
hampiran turunan, antara lain:
Pendekatan Dengan Metoda Beda Pusat
Fungsi tunggal f(x) dapat di tentukan dari titik data yang terletak simetris di
kedua sisi x, yaitu:
Metode ini dengan mudah dapat dijabarkan dengan cara memanipulasi deret
Taylor dari fungsi f di titik (x), (x+h) dan (x-h) (Coba anda buktikan sendiri).
Berikut ini tabel rumus akhir pendekatan differensial dengan metode beda pusat
dengan error berorde O(h2) dan O(h4).
1. Pendekatan turunan dengan error berorde O(h2)
Turunan pertama dari f(x)
h
ffxf
2)(' 11
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 58
Adapun fungsi matlab untuk turunan pertama di atas:
function df1 = trn1(f,x,h) if length(h)==1 h=h*ones(length(x),1); end x = x(:); h=h(:); xs=x+h; xm=x-h; Xs = feval(f,xs); Xm=feval(f,xm); dx=Xs-Xm; df1=dx./(2*h);
Turunan kedua dari f(x)
2
101 2)("
h
fffxf
Adapun fungsi matlab untuk turunan ke dua di atas:
function df2 = trn2(f,x,h) if length(h)==1 h=h*ones(length(x),1); end x = x(:); h=h(:); xs=x+h; xm=x-h; Xs=feval(f,xs); Xm=feval(f,xm); Xo=feval(f,x); dx=Xs+Xm-(2*Xo); df2=dx./(h^2);
Turunan ketiga dari f(x)
3
2112
2
22)('''
h
ffffxf
Adapun fungsi matlab untuk turunan ke dua di atas:
function df3=trn3(f,x,h) if length(h)==1 h=h*ones(length(x),1); end x = x(:); h=h(:); xs=x+h; xm=x-h; xs2=x+2*h; xm2=x-2*h; Xs=feval(f,xs); Xm=feval(f,xm); Xs2=feval(f,xs2); Xm2=feval(f,xm2); dx=(Xs2)-(2*Xs)+(2*Xm)-(Xm2); df3=dx./(2*h^3);
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 59
2. Pendekatan Turunan dengan error berorde O(h4)
Turunan pertama dari f(x)
h
ffffxf
12
88)(' 2112
Turunan kedua dari f(x)
2
21012
12
163016)(''
h
fffffxf
Turunan ketiga dari f(x)
3321123
8
813138)('''
h
ffffffxf
Tugas pendahuluan :
Buat matlab fungsi untuk turunan pertama, kedua dan ketiga dari Pendekatan
Turunan dengan error berorde O(h4)
Praktikum yang dilaksanakan :
1. Tentukan turunan pertama, kedua dan ketiga dari fungsi y = 3x3+2x2+4
dengan pendekatan error berorde O (h2) untuk x=1.5 dan h=10e-2.
Bandingkan hasilnya dengan hasil hitungan langsung. Jika masih salah
perbaiki function anda, jika benar lanjutkan ke no. 2
2. Ulangi soal di atas dengan merubah-rubah h, yaitu 10e-3, 10e-5, 10e-6.
Bandingkan hasilnya dari 3 jenis h tersebut.
3. Buatlah function yang bisa mengeksekusi input scalar maupun vector dari
fungsi y = 4e-2x *sin(5x). Ujilah function anda dengan memaksukkan nilai x =
0 dan x = 1, dengan menggunakan pendekatan error berorde O (h4).
4. Kerjakan soal no 3 dengan menggunakan pendekatan error berorde O (h2).
Bandingkan hasil dari kedua pendekatan tersebut.
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 60
MODUL 10. PERSAMAAN DEFERENSIAL BIASA
(Problem Nilai Awal)
Tujuan :
Mempelajari solusi numerik persamaan deferensial biasa
Problem nilai awal sebuah PDB orde ke satu bisa ditulis dalam bentuk
dimana ) adalah sebuah fungsi dari y dan t, persamaan kedua adalah
kondisi awal, tanpa kondisi awal penyelesaian tidak bisa dievaluasi. Pada
persamaan di atas, turunan pertama dari y diberikan sebagai fungsi dari y dan t,
dan kita berharap untuk menghitung fungsi yang diketahui y melalui integrasi
secara numerik
Problem nilai awal sebuah PDB orde ke-dua bisa dinyatakan sebagai:
Dengan adalah konstanta atau fungsi-fungsi dari t, sedangkan u dan
u’ serta persamaan kedua dan persamaan ketiga adalah kondisi-kondisi awal
yang diberikan sebagai u(0) dan u’(0). Jika tidak bergantung pada u,
persamaan yang berlaku adalah PDB linier. Akan tetapi jika sebuah
fungsi dari u dan/atau u’, maka persamaan tersebut adalah persamaan non
linier.
Beberapa metode untuk menyelesaikan persoalan nilai awal sebuah
Persamaan Differensial Biasa (PDB) antara lain:
A. Metode Forward Euler/ Beda Maju
Metode iini digunakan untuk menyelesaikan diturunkan dengan
pendekatan beda maju :
atau
'1
n
nn yh
yy
Menjadi dimana
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 61
Gambar. Metode beda maju
Fungsi MATLAB untuk metode forward Euler :
function E=feuler(f, a, b, ya, maks) h = (b-a)/maks ; % lebar jangkah t = a : h : b ; n = length (t); y = zeros (1,n); y(1) = ya ; for i = 1:maks y(i+1) = y(i) + h*feval (f, t(i), y(i)); end E = [ t' y'];
B. Metode Selisih Tengah
Metode selisih tengahan merupakan metode pengambilan perubahan dari dua
titik sekitar dari titik yang di ukur. Adapun persamaan untuk selisih tengahan
adalah sebagai berikut:
'11
2n
nn yh
yy
Gambar. Metode selisih tengah
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 62
C. Metode Heun
Metode ini merupakan modifikasi dari metode Euler, dengan cara menerapkan
aturan trapesium untuk mencari solusi dengan cara mencari nilai
bantuan terlebih dahulu yaitu : kemudian dimanfaatkan
untuk mendapatkan nilai baru
)(),(2
111
nnnnnn tyftyfh
yy
Fungsi MATLAB untuk Metode Heun :
function H=fHeun(f,a,b,ya,maks) h = (b-a)/maks ; % lebar jangkah t = a : h : b ; n = length (t); y = zeros (1,n); y(1) = ya ; for i = 1:maks k1 = feval(f,t(i),y(i)); k2 = feval(f,t(i+1),y(i)+h*k1); y(i+1) = y(i) + (h/2)*(k1+k2); end H = [ t' y'];
D. Metode Runge-Kutta orde 2
Dalam metode Runge-Kutta, untuk mencari solusi ;
secara numerik, kita menghitung yn+1 dengan nilai yang diketahui yn melalui
integrasi persamaan di atas dalam interval tn ≤ t ≤ tn+1 sebagai berikut:
1
),(1
n
n
t
t
nn dttyfyy
Melalui aturan trapesium untuk suku ke-dua ruas kanan :
1
),(),(2
),( 11
n
n
t
t
nnnn tyftyfh
tyf
Dimana h = tn+1 – tn . Pada persamaan ini yn+1 tidak diketahui, maka suku ke-
dua didekati sebagai ),( 11 nn tyf , dengan 1ny sebagai nilai yang diperoleh dari
metode Forward Euler. Selanjutnya Runge-Kutta orde kedua diturunkan
sebagai berikut :
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 63
yn+1 = yn + ),(),(2
11 nnnn tyftyfh
dalam bentuk baku :
k1 = h f( yn , tn )
k2 = h f( yn , tn+1 + k1 )
yn+1 = yn + ½ ( k1 + k2)
Fungsi MATLAB untuk metode Runge-Kutta orde 2:
function RK=rk2(f,a,b,ya,maks) h = (b-a)/maks ; t = a : h : b ; n = length (t); y = zeros (1,n); y(1) = ya ; for i = 1:maks k1 = h*feval(f,t(i),y(i)); k2 = h*feval(f,t(i+1),y(i)+k1); y(i+1) = y(i) + (k1+k2)/2; end t=t(:) ; y = y(:); RK = [ t y]; E. Metode Runge-Kutta Orde 3
Metode ini diturunkan dengan menerapkan aturan Simpson dan dapat
dituliskan sebagai :
),(),(4).(6
112/12/11 nnnnnnnn tyftyftyfh
yy
Melalui beberapapenurunan dan nilai-nilai estimasi 2/1ny dan 1ny diperoleh
metode Runge-Ketta orde ke 3, yang dalam bentuk baku dituliskan sebagai :
k1 = h f( yn , tn )
k2 = h f( yn , tn+1/2 + k1/2 )
k3 = h f( yn , tn+1 – k1 +2 k2 )
yn+1 = yn + 1/6 ( k1 +4 k2+ k3 )
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 64
Fungsi MATLAB untuk metode Runge-Kutta orde 3:
function RK=rk3(f,a,b,ya,maks) h = (b-a)/maks ; % lebar jangkah t = a : h : b ; n = length (t); y = zeros (1,n); y(1) = ya ; for i = 1:maks k1 = h*feval(f,t(i),y(i)); k2 = h*feval(f,t(i+1)+1/2,y(i)+k1/2); k3 = h*feval(f,t(i+1),y(i)-k1+2*k2); y(i+1) = y(i) + (k1+4*k2+k3)/6; end t = t(:) ; y = y(:); RK = [ t y]; F. Metode Runge-Kutta Orde 4
Penurunan metode Runge-Kutta orde ke 4 sama dengan penurunan orde ke 3,
akan tetapi dalam mengevaluasi turunan yang digunakan lebih satu langkah.
k1 = h f( yn , tn )
k2 = h f( yn , tn+1/2 + k1/2 )
k3 = h f( yn , tn+1/2 + k2/2 )
k4 = h f( yn , tn+1 + k3 )
yn+1 = yn + 1/6 ( k1 + 2 k2+ 2 k3 + k4 )
Fungsi MATLAB untuk metode Runge-Kutta orde 4:
function RK=rk4(f,a,b,ya,maks) h = (b-a)/maks ; % lebar jangkah t = a : h : b ; n = length (t); y = zeros (1,n); y(1) = ya ; for i = 1:maks k1 = h*feval(f,t(i),y(i)); k2 = h*feval(f,t(i)+h/2,y(i)+k1/2); k3 = h*feval(f,t(i)+h/2,y(i)+k2/2); k4 = h*feval(f,t(i)+h,y(i)+k3); y(i+1) = y(i) + (k1+2*k2+2*k3+k4)/6; end t=t(:) ; y = y(:); RK = [ t y];
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 65
Tugas Pendahuluan
1. Tuliskan / ketikkan function-function untuk menyelesaikan PDB yang ada
2. Buat fungsi M-file untuk pendekatan titik tengah
Praktikum yang dilaksanakan
1. Kerjakan komputasi tentang sirkuit di bawah ini menggunakan semua
fungsi yang telah anda siapkan.
Persamaan dari sirkuit di atas adalah
Tentukan arus i1 dan i2 untuk t(0,0.05), E(t)= 240 sin (120πt) volt. R=1
ohm, L= 0,2 x 10-3 H, C = 3,5 x 10-3 F, dengan maks 10, 25, 50
dengan menggunakan pendekatan Euler Forward, titik tengah dan heun.
Bandingkan hasilnya.
2. Selesaikan soal di atas dengan pendekatan Ode2, Ode3, Ode4
3. Carilah error / kesalahan dengan cara membandingkan solusi numerik
dengan solusi analitik yang dinyatakan dengan: I(t) = (E/R) – exp(-R t / L).
Dalam hal ini perlu dibuat sebuah tabel berisi solusi numerik, solusi analitik
dan errornya.
4. Sebuah rangkaian seri memiliki induktansi diri L = 100 mH, resistansi R =
20 kOhm dan sumber arus 10 Volt DC . Carilah nilai arus pada t = 1, 2, 3, 4
dan 5 dt , gunakan metode Euler dengan h = 0,01 dan tentukan errornya.
i2
E(t)
i2
i1
2R
i1
R R
C L
Fisika Komputasi 13/14
Fisika komputasi FKIP Universitas Jember 66
DAFTAR PUSTAKA
Chapman, SJ. 2004. Fortran 90/95 For Scientist and Engineers 2nd. New York.
Mc Graw Hill
Dwi Hartono,T.W., Agung Prasetyo, Y.W., 2003, Analisis dan Desain Sistem
Kontrol dengan MATLAB, Yogyakarta: Andi
Hanselman,D., Littlefield,B., 1997, MATLAB Bahasa Komputasi Teknis,
Yogyakarta: Andi
Hanselman,D., Littlefield,B., 1997, The Student Edition of MATLAB, NewYork:
PrenticeHall
Sahid, 2005, Pengantar Komputasi Numerik dengan MATLAB, Yogyakarta :
Andi