2 modul komputasi

67
PROGRAM STUDI PENDIDIKAN FISIKA FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN UNIVERSITAS JEMBER 2014 Oleh TIM KOMPUTASI

Upload: ratna-hapsari-eka-putri

Post on 26-Dec-2015

230 views

Category:

Documents


14 download

DESCRIPTION

Komputasi Untuk Universitas

TRANSCRIPT

Page 1: 2 Modul Komputasi

PROGRAM STUDI PENDIDIKAN FISIKA FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN

UNIVERSITAS JEMBER

2014

Oleh

TIM KOMPUTASI

Page 2: 2 Modul 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

Page 3: 2 Modul Komputasi

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

Page 4: 2 Modul Komputasi

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:

Page 5: 2 Modul Komputasi

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

Page 6: 2 Modul Komputasi

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.

Page 7: 2 Modul Komputasi

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

Page 8: 2 Modul Komputasi

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

+

+

Page 9: 2 Modul Komputasi

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

Page 10: 2 Modul Komputasi

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.

Page 11: 2 Modul Komputasi

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

Page 12: 2 Modul Komputasi

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

Page 13: 2 Modul Komputasi

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

Page 14: 2 Modul Komputasi

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

Page 15: 2 Modul Komputasi

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

Page 16: 2 Modul Komputasi

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

Page 17: 2 Modul Komputasi

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

Page 18: 2 Modul Komputasi

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

Page 19: 2 Modul Komputasi

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

Page 20: 2 Modul Komputasi

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

Page 21: 2 Modul Komputasi

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

Page 22: 2 Modul Komputasi

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

Page 23: 2 Modul Komputasi

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

Page 24: 2 Modul Komputasi

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)

Page 25: 2 Modul Komputasi

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

Page 26: 2 Modul Komputasi

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

Page 27: 2 Modul Komputasi

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

Page 28: 2 Modul Komputasi

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

Page 29: 2 Modul Komputasi

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

Page 30: 2 Modul Komputasi

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

Page 31: 2 Modul Komputasi

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

Page 32: 2 Modul Komputasi

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,...

Page 33: 2 Modul Komputasi

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

Page 34: 2 Modul Komputasi

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;

Page 35: 2 Modul Komputasi

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.

Page 36: 2 Modul Komputasi

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

Page 37: 2 Modul Komputasi

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

Page 38: 2 Modul Komputasi

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

Page 39: 2 Modul Komputasi

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

Page 40: 2 Modul Komputasi

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:

Page 41: 2 Modul Komputasi

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=[];

Page 42: 2 Modul Komputasi

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

Page 43: 2 Modul Komputasi

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

Page 44: 2 Modul Komputasi

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

Page 45: 2 Modul Komputasi

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

Page 46: 2 Modul Komputasi

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

Page 47: 2 Modul Komputasi

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

Page 48: 2 Modul Komputasi

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

Page 49: 2 Modul Komputasi

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

Page 50: 2 Modul Komputasi

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

Page 51: 2 Modul Komputasi

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.

Page 52: 2 Modul Komputasi

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:

Page 53: 2 Modul Komputasi

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

Page 54: 2 Modul Komputasi

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

Page 55: 2 Modul Komputasi

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

Page 56: 2 Modul Komputasi

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

Page 57: 2 Modul Komputasi

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

Page 58: 2 Modul Komputasi

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

Page 59: 2 Modul Komputasi

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

Page 60: 2 Modul Komputasi

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.

Page 61: 2 Modul Komputasi

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

Page 62: 2 Modul Komputasi

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

Page 63: 2 Modul Komputasi

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 :

Page 64: 2 Modul Komputasi

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 )

Page 65: 2 Modul Komputasi

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

Page 66: 2 Modul Komputasi

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

Page 67: 2 Modul Komputasi

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