Anda di halaman 1dari 10

LAPORAN PRAKTIKUM

FISIKA KOMPUTASI
PRAKTIKUM 2 – ERROR PENDEKATAN DAN AKAR
AKAR POLINOMIAL
KELAS A

Disusun Oleh:
Nama : Anisah Tiara Pratiwi
NIM : 175090800111013
Hari/Tanggal Praktikum : Jumat, 16 Oktober 2020

LABORATORIUM KOMPUTASI
JURUSAN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS BRAWIJAYA
2020
A. Soal 1
Dengan menggunakan program menghitung nilai cos yang digunakan pada
praktikum, hitunglah nilai cos(x), dengan x adalah sudut yang Anda pilih.
Gunakan iterasi n = 5, n = 10 dan n =20 kemudian tentukan error dan
bandingkan hasilnya dengan hasil analitik! Jelaskan pengaruh nilai n
terhadap error yang dihasilkan!

Jawaban:
Pada bagian awal program cos(x), dideklarasikan beberapa variabel.
Variabel-variabel tersebut yaitu ‘theta’, ‘n’, ‘x’, ‘c’, dan ‘sign’. Nilai dari
variabel ‘theta’ dan ‘n’ bergantung dari input diluar program, yaitu input dari
ketikan keyboard komputer. Nilai dari variabel ‘theta’ menyatakan sudut untuk
fungsi cosinus pada program tersebut yang mana satuan nilai sudutnya masih
dalam satuan derajat. Agar dapat diproses lebih lanjut oleh program, maka nilai
dari sudut tersebut harus diubah dalam satuan radian. Nilai sudut tersebut dalam
skala radian dinyatakan sebagai nilai dari variabel ‘x’. Nilai dari variabel ‘x’
yaitu nilai dari variabel ‘theta’ dikali konstanta ‘pi’ yang mana nilai konstanta
pi sudah diset oleh matlab, kemudian nilai perkalian tersebut dibagi oleh 180.
Kemudian, nilai awal dari variabel ‘c’ diset sebesar 1 dan nilai awal dari
variabel ‘sign’ diset sebesar -1.
Selanjutnya, terdapat fungsi pengulangan / looping. Fungsi pengulangan
yang digunakan yaitu fungsi for dengan nilai awal pengulangan yaitu saat
indeks pengulangan ‘i’ bernilai 2, pengulangan tersebut dilakukan hingga
indeks pengulangan ‘i’ bernilai ‘n’. Lalu, terdapat fungsi if dengan syarat
kondisi yaitu apabila sisa pembagian dari nilai ‘i’ dengan 2 yaitu sama dengan
0. Jika nilai ‘i’ memenuhi syarat kondisi fungsi if tersebut, maka perintah-
perintah yang terdapat di dalam fungsi if akan dijalankan. Terdapat 4 perintah
di dalam fungsi if yang akan dijalankan secara berurutan. Perintah pertama yaitu
“a=x^i” yang mana nilai dari variabel ‘a’ akan dihasilkan dengan
memangkatkan nilai dari variabel ‘x’ sebesar ‘i’. Perintah kedua yaitu
“b=fakto(i)” yang mana nilai dari variabel ‘b’ akan dihasilkan dengan
mengirimkan nilai ‘i’ menuju fungsi ‘fakt’, dan output dari fungsi tersebut akan
menjadi nilai dari variabel ‘b’. Perintah ketiga yaitu “c=c+sign*(a/b)” yang
mana nilai dari variabel ‘c’ akan dihasilkan dari pertambahan antara nilai
variabel ‘c’ pada kondisi sebelumnya dengan nilai dari variabel ‘c’ yang
dikalikan dengan pembagian antara nilai dari variabel ‘a’ dan ‘b’. Perintah
keempat yaitu “sign=sign*-1” yang mana nilai dari variabel ‘c’ akan dihasilkan
dari perkalian antara nilai variabel ‘sign’ pada kondisi sebelumnya dengan -1.
Setelah fungsi pengulangan tersebut selesai bekerja, maka nilai dari variabel
‘c’ akan ditampilkan di “Command Window” sebagai nilai dari cos(x) dengan
‘x’ adalah input sudut dalam satuan radian. Perintah dalam program yang
berfungsi untuk memunculkan nilai dari variabel ‘c’ tersebut yaitu
“disp(sprintf('cos x = %f',s))” dengan tipe data nilai variabel ‘c’ yang
ditampilkan yaitu bertipe float.
Saat program dirun dengan sudut yang sama dengan nilai n yang berbeda
dapat kita lihat perbandingan saat n=5 dengan n=10 atau n=20. Semakin banyak
n maka nilai error yang dihasilkan akan semakin mendekati 0 yang berarti
bahwa semakin banyak nilai n atau nilai iterasi yang dimasukkan maka data
akan semakin mendekati nilai akurat. Jadi nilai n berbanding lurus dengan
keakuratan suatu data.

B. Soal 2
Pilihlah salah satu dari program metode akar polinomial berikut ini: (i)
Metode Secant, (ii) Metode Biseksi/(Setengah Interval). Jelaskan
kelebihan dan kekurangan metode yang Anda pilih!

Jawaban:
Metode Biseksi
Metode biseksi adalah metode mencari akar suatu fungsi (misal nilai akar
tersebut diwakilkan oleh sebuah variabel x) yang paling sederhana. Metode ini
memanfaatkan pencarian akar pada interval 𝑥𝑎 dan 𝑥𝑏 yang mana nilai dari
𝑓 (𝑥𝑎 ) dan 𝑓(𝑥𝑏 ) berbeda tanda. Nilai dari akar suatu fungsi tersebut ditentukan
dari lokasi titik tengah nilai x diantara 𝑥𝑎 dan 𝑥𝑏 tersebut. Tahap pertama dalam
proses metode ini yaitu menentukan nilai sembarang a dan b yang mana nilai a
dan b ini merupakan batas interval x suatu fungsi yang ingin dicari akarnya.
Nilai x=a akan menghasilkan nilai fungsi f(a) dan nilai x=b akan menghasilkan
nilai fungsi f(b). Kemudian, lakukan pengecekan apakah a dan b yang
ditentukan memenuhi syarat f(a).f(b) < 0. Apabila syarat tersebut terpenuhi,
maka nilai a dan b yang ditentukan sebelumnya dapat digunakan untuk proses
selanjutnya dalam metode ini. Apabila syarat tersebut belum terpenuhi, maka
nilai a dan b yang ditentukan sebelumnya harus diganti dengan nilai a dan b
yang baru sampai nilai a dan b tersebut memenuhi syarat f(a).f(b) < 0.
Kemudian, proses selanjutnya yaitu menentukan nilai m yang mana nilai m
ini merupakan nilai tengah diantara a dan b. Nilai m dapat dicari dengan
menggunakan persamaan berikut.
𝑎+𝑏
𝑚=
2
Setelah nilai m ditentukan, lalu dicek apakah nilai mutlak dari m memenuhi
persyaratan m < 10-3. Apabila syarat tersebut terpenuhi, maka nilai akar fungsi
tersebut atau nilai x-nya akan sama dengan nilai m, dengan kata lain nilai akar
fungsi x=m. Apabila syarat tersebut tidak terpenuhi, maka terdapat dua
ketentuan. Ketentuan pertama, apabila f(a).f(m) < 0, maka nilai b yang telah
ditentukan sebelumnya akan diganti dengan nilai m, dengan kata lain nilai b=m.
Ketetuan kedua, apabila f(a).f(m) > 0, maka nilai a yang telah ditentukan
sebelumnya akan diganti dengan nilai m, dengan kata lain nilai a=m. Akibat dua
ketentuan ini, terdapat nilai a ataupun nilai b yang baru, dan kemudian akan
muncul nilai m yang baru. Proses pencarian nilai a,b, dan m ini dilakukan terus
menerus sampai nilai m konvergen menuju suatu nilai tertentu. Apabila nilai m
telah konvergen, maka nilai akar fungsi tersebut atau nilai x-nya akan sama
dengan nilai m, dengan kata lain nilai akar fungsi x=m.
Kelebihan dari metode biseksi adalah memungkinkan terjadinya
mendapatkan nilai akar tanpa adanya iterasi sebab terdapat pengecekan awal
terhadap nilai interval yang dimasukkan ke proses. Hal tersebut memungkinkan
nilai interval awal yang dimasukkan ke proses merupakan akar penyelesaian
dari fungsi tersebut. Adapun kelemahannya yaitu dibutuhkannya dua nilai awal
interval yang dimasukkan ke proses metode tersebut dan terkadang dua nilai
awal interval tersebut tidak dapat diproses sehingga dibutuhkan kembali dua
nilai awal interval yang baru.
C. Soal 3
Buatlah sebuah flowchart untuk menentukan akar suatu fungsi polinomial
dengan menggunakan metode yang Anda pilih pada soal nomor 2!

Jawaban

START

Definisi Fungsi F(x)


Input :
 Batas x bawah(a)
 Batas x atas (b)
 Toleransi Error (e)
 Iterasi Maksimum (N)

Dapatkan F(a) dan F(b)

T Tampilkan :
F(a).F(b) > 0 Tidak ada akar

F
Inisialisasi :

 kondisi = 1 (akar blm ketemu)


 iterasi = 0
D. Soal 4
Berdasarkan flowchart yang telah Anda buat pada soal nomor 3, buatlah
sebuah program menggunakan Matlab untuk menentukan akar dari fungsi
polinomial berikut:

Jawaban:

Permasalahan :
Mencari akar dari fungsi polinomial menggunakan metode Biseksi
Kode Program:

Penjelasan:
Pada program saya memasukkan 2 file yaitu file fungsi soal yang ditanyakan
dan fungsi metode biseksi agar lebih mudah untuk dipanggil dan dikerjakan
karena tidak memerlukan banyak kode. Tahap pertama proses adalah
menetapkan nilai sembarang a dan b sebagai batas segmen nilai fungsi yang
dicari. Batasan a dan b memberikan harga bagi fungsi f(x) untuk x=a dan
x=b. Langkah selanjutnya adalah memeriksa apakah f(a).f(b)<0. Apabila
terpenuhi syarat tersebut, berarti terdapat akar fungsi dalam segmen tinjauan.
Jika tidak demikian, harus ditetapkan kembali nilai a dan b sedemikian rupa
sehingga terpenuhi ketentuan perkalian f(a) x f(b) < 0.
Dengan rumusan m = (a+b)/a, diperiksa apakah nilai mutlak f(m) < 10-3
(batas simpangan kesalahan). Jika benar, nilai x = m adalah solusi yang
dicari, jika tidak terpenuhi, ditetapkan batasan baru dengan mengganti nilai
b = m apabila f(a)*f(m) < 0, dan menggantikan a = m bila f(a) x f(m) > 0.

Hasil:

Penjelasan:
Kemudian pada command window saya mencoba memasukkan beberapa kali
taksiran batas atas dan bawah, kemudian berhasil (tidak galat) ketika saya
memasukkan batas bawah = 0 dan batas atas = 6. Pada iterasi ke 13 selisih
bilangannya hampir sama dengan iterasi ke 12 dan nantinya pada iterasi ke
14 dan seterusnya akan ditemukan selisih yang sangat mendekati nol
dikarenakan nilai akar untuk fungsi tersebut telah ditemukan hanya berbeda
koma yang sangat kecil. Maka dari itu dapat kita simpulkan bahwa akar dari
persamaan fungsi pada soal terdapat pada iterasi ke 13 yaitu 3,99976.

Workspace:

Penjelasan:
Pada workspace kita dapat mendapatkan nilai – nilai hasil dari variable yang
telah diinisialisasikan pada program matlab terdiri atas nilai akar teratas dan
bawah, nilai tengah, galat yang telah kita set, m, m0, dll.

Anda mungkin juga menyukai