LABORATORIUM KOMPUTASI
PROGRAM STUDI FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS PADJADJARAN
2019
KATA PENGANTAR
Diktat ini disusun untuk pedoman dalam melaksanakan praktikum Algoritma dan
Komputasi Numerik di Program Studi Fisika FMIPA Universitas Padjadjaran, khususnya
untuk mahasiswa Fisika semester empat. Diktat ini terdiri dari duabelas modul yang terdiri dari
3 modul pengenalan matlab dan 8 modul metoda numerik, ditambah dengan satu modul untuk
proyek mandiri dimana proyek tersebut merupakan penerapan dari seluruh metode yang telah
dipelajari. Diharapkan dengan adanya diktat ini mahasiswa dapat mempelajari metode numerik
dengan baik.
Kami menyadari bahwa diktat ini masih jauh dari kata sempurna. Oleh karena itu, kami
mengharapkan kritik dan saran yang membangun untuk perbaikan diktat ini menjadi lebih baik.
Semoga diktat inidapat bermanfaat untuk perkembangan ilmu komputasi di Program Studi
Fisika.
1.2. Percobaan
Keterangan :
o Current Folder – untuk mengakses file-file pada direktori saat ini.
o Command Window – untuk menuliskan perintah (sintak program).
o Workspace – untuk mengeksplorasi data yang dibuat atau diimport dari file lain.
o Command History – untuk melihat atau menjalankan kembali perintah yang pernah
dimasukkan sebelumnya pada command line.
Contoh:
Jika Anda mengakhiri perintah dengan tanda (;) titik koma, MATLAB akan melakukan
komputasi namun tidak menampilkan display output pada Command Window. Anda dapat
memanggil kembali perintah sebelumnya dengan menekan tombol up dan down-arrow (↑ dan
↓). Jika perhitungan menggunakan langkah-langkah yang cukup panjang, maka menggunakan
Command Window menjadi kurang efisien.
Menggunakan M-File
Tekan enter, selanjutnya akan muncul MATLAB editor. Disini Anda dapat mengetikkan
program yang akan dijalankan.
Langkah selanjutnya adalah menyimpan file tersebut, misalnya simpan dengan nama
latihan1.m. Untuk menjalankannya, buka kembali Command Window, kemudian ketikkan
nama file (tanpa ekstensi) sebagai berikut :
>> latihan1
Baris pertama digunakan jika input yang diharapkan berupa angka sedangkan baris kedua
digunakan jika input yang diharapkan berupa string.
Sedangkan untuk menampilkan output program ke layar, MATLAB menyediakan fungsi disp
dan fprintf. Sintak penulisannya sebagai berikut:
Kontrol Aliran
a. Kondisional dengan (if … elseif … else … end)
Kondisional digunakan untuk mengontrol alur suatu program. Kondisional if-else sering
digunakan di dalam program. Cara penulisannya sebagai berikut:
Contoh 1:
a=input(Masukkan bilangan a: ');
if rem(a,2) == 0
disp('a adalah bilangan genap')
end
Contoh 2:
n=input('Masukkan nilai n: ');
if n < 0 % jika n negatif
disp('Masukan harus bilangan positif');
elseif rem(n,2) == 0 % jika n posisif dan bulat
A = n/2;
fprintf('A= %3.0f \n', A);
else
A = (n+1)/2; % jika n positif dan ganjil
fprintf('A= %3.0f \n', A);
end
Contoh :
N=5; for i=1:N
fprintf ('%i. Saya mahasiswa Fisika \n',i);
end
while syarat
perintah-perintah
end
e. Pernyataan continue
Pernyataan continue berfungsi melewatkan kendali ke iterasi berikutnya di dalam perulangan
for maupun while.
N=20;
for i=1:N
if (i<5)
continue;
end
fprintf('%i. Saya mahasiswa Fisika \n',i);
end
f. Pernyataan break
Pernyataan break berfungsi untuk menghentikan eksekusi loop for maupun loop while.
N=20;
for i=1:N
if (i>5)
break;
end
fprintf('%i. Saya mahasiswa Fisika \n',i);
end
2.1. Tujuan
Dalam modul ini mahasiswa diharapkan dapat mengoperasikan array dalam berbagai
macam pengolahan data matriks.
2.2. Percobaan
Untuk memasukkan matrik pada MATLAB, ada beberapa cara yang dapat dilakukan :
• Memasukkan secara langsung dengan menuliskan semua elemennya.
• Meng-load matrik dari file eksternal
• Meng-generate matrik menggunakan fungsi-fungsi built-in
• Membuat matrik dengan fungsi yang Anda buat sendiri dan disimpan dalam file
Untuk membuat array dengan empat elemen pada satu baris, setiap elemen harus dipisahkan
dengan koma (,) atau spasi. Contohnya sebagai berikut :
A = [1 2 3 4]
Untuk membuat matrik yang memiliki beberapa baris, maka setiap barisnya harus dipisahkan
dengan tanda titik koma (;). Contohnya sebagai berikut :
A = [1 2 3; 4 5 6; 7 8 10]
Selain itu MATLAB juga menyediakan empat buah fungsi untuk membuat matrik :
• zeros : semua elemennya bernilai nol.
• ones : semua elemennya bernilai satu.
• rand : elemen-elemennya bernilai random dengan distribusi uniform.
• randn : elemen-elemennya bernilai random dengan distribusi normal.
Sebagai contoh perintah untuk menampilkan matrik berukuran 5x1 dengan elemennya semua
bernilai nol :
Z = zeros(5,1)
Sedangkan contoh untuk menampilkan matrik berukuran 3x3 dengan elemen-elemennya
dibangkitkan secara random :
R = rand(3,3)
Operasi pada array sangat bermanfaat untuk pembentukan tabel. Misal diberikan n sebuah
vector kolom sebagai berikut :
n = (0:9) ';
kemudian fungsi berikut ini akan membuat sebuah table yang berisi bilangan kuadrat dan
perpangkatan dari 2 :
B = [n n.^2 2.^n]
Selain operasi-operasi yang telah dijelaskan di atas, MATLAB memiliki beberapa fungsi yang
sering digunakan untuk operasi pada matrik, di antaranya :
Fungsi Deskripsi
diag Untuk mengambil elemen diagonal pada sebuah matrik
inv Untuk melakukan operasi inverse pada matrik
size Untuk mengetahui dimensi sebuah matrik
sort Untuk melakukan pengurutan pada matrik
Untuk mengetahui lebih detail cara penggunaan dari masing-masing fungsi tersebut, pada
Command Window ketikkan :
help nama_fungsi
b. Konkatenasi
Konkatenasi merupakan proses penggabungan dua buah array sehingga diperoleh sebuah array
dengan ukuran yang lebih besar. Tanda [ ] merupakan operator untuk konkatenasi.
A = [1 2 3; 4 5 6; 7 8 10];
B = [A, A]
Operasi di atas disebut dengan konkatenasi horizontal dan dapat dilakukan apabila banyaknya
baris kedua array sama. Selain itu, apabila banyaknya kolom pada dua buah array sama maka
dapat dilakukan operasi konkatenasi vertikal sebagai berikut :
B = [A; A]
2. Buatlah program untuk menyimpan inputan berupa N buah bilangan integer ke dalam
array, kemudian dari bilangan-bilangan yang disimpan tersebut dapat ditampilkan
bilangan-bilangan yang habis dibagi 4, bilangan ganjil, bilangan genap dan bilangan
prima.
Contoh:
input: 1 1 2 2 8 6 3 4 2 18 16 7 4
3.1. Tujuan
Mahasiswa diharapkan mampu menampilkan data dalam bentuk grafik dengan beragam
jenis tampilan 1D, 2D dan 3D.
3.2. Percobaan
Terdapat beberapa bentuk dari fungsi plot, tergantung pada argumen inputnya.
• Jika y adalah sebuah vector, maka sintak plot(y) akan menghasilkan sebuah grafik
linear dengan sumbu x merupakan nilai index dari elemen y, sedangkan sumbu y
merupakan nilai y itu sendiri.
• Jika terdapat dua vector sebagai argumennya, maka sintak plot(x,y) akan
menghasilkan grafik y versus x.
Sebagai contoh, sebuah vektor x bernilai antara 0 sampai dengan 2, hitung nilai sinusnya,
kemudian plot hasilnya :
x = 0: 0.01: 2*pi;
y = sin(x);
plot(x,y)
Tambahkan label axis dan judul grafik :
xlabel('x = 0 s.d 2\pi')
ylabel('sinus dari x')
title('Plot grafik sinus','FontSize',12)
Karakter \pi digunakan untuk membuat simbol π dan properti FontSize digunakan untuk
memperbesar ukuran text yang digunakan untuk judul. Hasilnya sebagai berikut :
4.1. Tujuan
4.2. Teori
Persamaan non-linier banyak digunakan dalam bidang teknik maupun sains. Secara
umum, semua persamaan pada permasalahan dalam bentuk ini akan diubah menjadi bentuk
𝑓 (𝑥 ) = 0, dengan f yang merupakan bentuk fungsi non-linier dari variabel x. Contoh dari
bentuk fungsi non-linier adalah :
a. 𝑦 = 𝑓 (𝑥 ) = 𝑥 2 + 2𝑥 3 + 2 = 0
20.98
b. 𝑦 = 𝑓 (𝑥 ) = =0
𝑥
−𝑏 ± √𝑏2 − 4𝑎𝑐
𝑥1,2 = (2.1)
2𝑎
Salah satu jenis dari metode tertutup adalah metode bisection. Tahap pertama metode
bisection adalah menetapkan nilai sembarang a dan b sebagai batas segmen nilai fungsi yang
𝑎+𝑏
Dengan rumusan 𝑚 = , diperiksa apakah nilai mutlak 𝑓 (𝑚) < 10−6 (batas
2
simpangan kesalahan). Jika benar, nilai 𝑥 = 𝑚 adalah solusi yang dicari. Jika tidak, ditetapkan
batasan baru dengan mengganti nilai 𝑏 = 𝑚 apabila 𝑓(𝑎) × 𝑓 (𝑚) < 0, dan mengganti 𝑎 =
𝑚 bila 𝑓(𝑎) × 𝑓 (𝑚) > 0. Begitu seterusnya hingga kondisi 𝑓 (𝑚) < 10−6 terpenuhi.
𝑥𝑟+1 − 𝑥𝑟
| |<𝜖 (2.3)
𝑥𝑟+1
1. 𝑥 = (3𝑥 + 20)1/3
2. 𝑥 = (𝑥 3 − 20)/3
Semua persamaan di atas harus diuji secara numerik yang akan menghasilkan solusi yang
sama dengan persamaan 𝑥 3 − 3𝑥 − 20 = 0.
b. Metode Newton-Raphson
𝑓 (𝑥𝑖 )
𝑓 ′ (𝑥 ) = (2.4)
(𝑥𝑖 − 𝑥𝑖+1 )
Apabila Persamaan 2.4 diatur kembali, akan menghasilkan Persamaan 2.5 yang disebut
dengan persamaan Newton-Raphson.
𝑓 (𝑥𝑖 )
𝑥𝑖+1 = 𝑥𝑖 − (2.5)
𝑓 ′(𝑥𝑖 )
4.3. Percobaan
Buatlah program dengan menggunakan bahasa matlab untuk menentukan solusi dari
persamaan non-linier berikut menggunakan metode Bisection, iterasi titik tetap, dan Newton-
Raphson :
a. 𝑥 2 − 3𝑥 − 10 = 0 untuk−1 ≤ 𝑥 ≤ 1
𝜋 𝜋
b. sin(𝑥 ) = 0 untuk− 4 ≤ 𝑥 ≤ 2
c. 𝑥 3 − 3𝑥 − 20 = 0 untuk 1 ≤ 𝑥 ≤ 4
d. 𝑒 −2𝑥 − 4𝑥 untuk 0 ≤ 𝑥 ≤ 1
e. 𝑥𝑒 −𝑥 + cos(2𝑥 )untuk0 ≤ 𝑥 ≤ 1 dan 1 ≤ 𝑥 ≤ 2 dan−1 ≤ 𝑥 ≤ 1
Hitunglah berapa iterasi yang diperlukan untuk mencapai konvergensi dalam mencari
solusi persamaan 𝑥 2 − 3𝑥 − 10 = 0 menggunakan metode Bisection dengan tingkat
kesalahan yang diperbolehkan bernilai 10−3 serta nilai 𝑎 = 1 dan 𝑏 = 3,5. Bandingkan
dengan hasil yang didapat jika dikerjakan secara analitik menggunakan Persamaan 2.1.
1. Buatlah program dengan menggunakan bahasa matlab untuk menentukan solusi dari
persamaan non-linier pada bagian Percobaan menggunakan metode Secant dan Regula
Falsi.
2. Buatlah tabel perbandingan untuk metode Bisection, iterasi titik tetap, Newton-
Raphson, Secant, dan Regula Falsi dalam menentukan solusi persamaan 𝑒 −2𝑥 − 4𝑥 =
0 dengan parameter yang sama (error, toleransi, batas/tebakan awal, dan hasilnya
apakah konvergen/divergen) untuk setiap metode. Sertakan pula jumlah
langkah/jumlah iterasi yang terjadi saat melakukan proses perhitungan. Kemudian
buatlah analisa berdasarkan tabel tersebut.
5.1. Tujuan
Mahasiswa diharapkan mampu menghitung nilai dan vektor eigen dari suatu matriks
bujursangkar menggunakan metode pangkat (Power Method) dan metode pangkat inversi
(Invers Power Method).
5.2. Teori
Nilai eigen atau nilai karakteristik dan vektor eigen atau vektor karakteristik yang sesuai
dari suatu matriks 𝑁 × 𝑁yaitu A didefinisikan sebagai nilai skalar 𝜆 dan vektor 𝒗yang bukan
nol dan memenuhi Persamaan 3.1
𝐴𝑣 = 𝜆𝑣 ↔ (𝐴 − 𝜆𝐼 )𝑣 = 0 (𝑣 ≠ 0) (3.1)
dengan(𝜆, 𝒗) disebut sebagai pasangan eigen danada sejumlah N pasangan eigen dari matriks
𝑁 × 𝑁. Bagaimana cara menentukan nilai eigen? Ada beberapa hal yang perlu diperhatikan,
yaitu :
a. Agar Persamaan 3.1 berlaku untuk matriks bukan nol 𝒗, matriks [𝐴 − 𝜆𝐼] harus bersifat
singular. Artinya, nilai determinan dari matriks [𝐴 − 𝜆𝐼]harus bernilai 0.
b. Determinan dari matriks [𝐴 − 𝜆𝐼] merupakan deret polynomial derajat N dalam bentuk
𝜆.
Hal yang pertama kali harus dilakukan untuk menghitung nilai eigen 𝜆𝑖 adalah
menemukan solusi dari persamaan karakteristik seperti pada Persamaan 3.2.
Lalu substitusikan nilai𝜆𝑖 , satu per satu, kedalam Persamaan 3.1 untuk menentukan vektor
eigen 𝒗𝒊 .
𝒗 = 𝐶1 𝒗1 + 𝐶2 𝒗2 + ⋯ + 𝐶𝑁 𝒗𝑁 = ∑ 𝐶𝑖 𝒗𝑖 (3.3)
𝑖=1
𝑁
𝜆𝑖 𝑘
𝑘
𝐴 𝒗=𝑦 (𝑘)
= 𝜆𝑘1 ∑ 𝐶𝑖 ( ) 𝒗𝑖 (3.5)
𝜆1
𝑖=1
𝜆 𝑘
Tetapi karena |𝜆1 | > |𝜆𝑖 | untuk 𝑖 = 1, 2, … , 𝑁, jika 𝑘 → ∞maka (𝜆 𝑖 ) → 0dan Persamaan
1
Setelah 𝑦 (𝑘) dihitung, 𝜆𝑘1 diambil dari nilai elemen terbesar vektor 𝑦 (𝑘) sehingga 𝒗1 akan
mempunyai sebuah elemen unitas. Proses ini terus diulang hingga memenuhi kondisi rasio
perbedaan nilai eigen lebih kecil dari toleransi yang diinginkan sesuai dengan Persamaan 3.8.
𝑦 𝑘+1
𝜆1 = 𝑘 < 𝜖 (3.8)
𝑦
Tujuan dari penggunaan metode pangkat inversi adalah untuk menentukan nilai eigen
terkecil dengan menerapkan metode pangkat pada matriks 𝐴−1. Metode ini digunakan pada
kasus dimana matriks A bersifat non singular dan tidak memiliki nilai eigen bernilai nol. Asal
pemikiran dari metode ini adalah Persamaan 3.9
Ini berarti bahwa matriks invers 𝐴−1memiliki nilai-nilai eigen yang merupakan kebalikan dari
nilai-nilai eigen matriks A.
1
𝜆𝑁 = (3.10)
𝑛𝑖𝑙𝑎𝑖 𝑒𝑖𝑔𝑒𝑛 𝑡𝑒𝑟𝑏𝑒𝑠𝑎𝑟 𝑑𝑎𝑟𝑖 𝐴−1
5.3. Percobaan
Buatlah program dengan menggunakan bahasa matlab untuk menentukan nilai dan
vektor eigen menggunakan metode pangkat serta metode pangkat inversi untuk matriks-
matriks berikut: (Tidak diperbolehkan menggunakan toolbox eigen dari matlab)
4 1 0
a. 𝐴 = [0 2 1 ]
0 1 −1
3 −1 0
b. 𝐴 = [−2 4 −3]
0 −1 1
20 −4 8
c. 𝐴 = [−40 8 −20]
−60 12 −26
1. Buatlah program dengan menggunakan bahasa matlab untuk mencari invers dari
sebuah matriks 3 × 3. (tidak menggunakan toolbox invers dari matlab)
2. Hitung nilai dan vektor eigen dari matriks no (a) yang terdapat pada bagian Percobaan
secara analitik menggunakan bantuan persamaan karakteristik.
1. Bagaimana cara menentukan semua nilai eigen dari matriks A yang berukuran 3 × 3?
(Sebagai catatan: metode pangkat hanya menghitung nilai eigen terbesar sedangkan
metode pangkat inversi hanya menghitung nilai eigen terkecil. Bagaimana jika kita
ingin menghitung nilai eigen diantara nilai eigen terbesar dan terkecil?) Buatlah
program dengan menggunakan bahasa matlab untuk menghitung semua nilai eigen dari
matriks A yang berukuran 3 × 3. (Matriks yang digunakan ditentukan oleh asisten)
6.1. Tujuan
6.2. Teori
Sistem persamaan linier (SPL) terdiri dari banyak persamaan, metode langsung seperti
eliminasi Gauss menjadi tidak efisien jika digunakan dalam perhitungan komputasi karena
ukuran matriks yang besar. Untuk permasalahan seperti ini, metode iterasi menjadi lebih efisien
untuk digunakan dalam perhitungan komputasi. Bentuk umum dari SPL ditunjukkan oleh
Persamaan 4.1.
⋮ ⋮ ⋮ ⋮ ⋮
Persamaan 4.1 dapat juga dinyatakan dalam bentuk matriks menjadi Persamaan 4.2
𝐴𝑥 = 𝑏 (4.2)
dengan 𝐴 merupakan matriks yang terdiri dari koefisien-koefisien pada SPL dan berukuran
𝑛 × 𝑛, 𝑥 merupakan matriks vektor yang merupakan solusi dari SPL, serta matriks 𝑏 yang
terdiri dari nilai-nilai pada sisi kanan SPL. Elemen-elemen pada matriks 𝐴 dan
vektor𝑏mempunyai nilai yang didapat dari formulasi permasalahan sedangkan elemen-elemen
pada vektor𝑥 merupakan jawaban permasalahan yang harus dihitung.
𝐴= 𝐿+𝐷+𝑈 (4.4)
dengan 𝐿 merupakan matriks lower triangular dengan nilai nol pada diagonal, 𝐷 merupakan
matriks diagonal dengan elemen yang tidak nol, dan 𝑈 merupakan matriks upper triangular
dengan nilai nol pada elemen diagonalnya.
Metode iterasi Jacobi dilakukan dengan mengubah Persamaan 4.2 menjadi Persamaan
4.3 dengan terlebih dahulu didekomposisikan matriks 𝐴 sesuai dengan Persamaan 4.4. Metode
ini dapat ditulis dalam bentuk matriks menjadi Persamaan 4.5.
𝑖−1 𝑛
1
𝑥𝑖𝑘 = − (∑ 𝑎𝑖𝑗 𝑥𝑗 + ∑ 𝑎𝑖𝑗 𝑥𝑗 − 𝑏𝑖 ) , 𝑢𝑛𝑡𝑢𝑘 𝑖 = 1, 2, … , 𝑛 (4.6)
𝑎𝑖𝑖
𝑗=1 𝑗=𝑖+1
Norm yang sering digunakan adalah 𝑙∞ norm. Sedangkan kriteria konvergensi untuk metode
iterasi ditunjukkan oleh Persamaan 4.7.
𝜌 (𝑇 ) < 1 (4.7)
Metode ini merupakan perbaikan dari metode iterasi Jacobi yang dianggap memiliki laju
konvergen yang lambat. Metode ini dapat dilakukan dengan cara yang sama pada metode
Iterasi Jacobi, namun dengan mengubah Persamaan 4.5 menjadi Persamaan 4.8.
𝑖−1 𝑛
1
𝑥𝑖𝑘 = − (∑ 𝑎𝑖𝑗 𝑥𝑗𝑘+1 + ∑ 𝑎𝑖𝑗 𝑥𝑗𝑘 − 𝑏𝑖 ) , 𝑢𝑛𝑡𝑢𝑘 𝑖 = 1, 2, … , 𝑛 (4.9)
𝑎𝑖𝑖
𝑗=1 𝑗=𝑖+1
Metode ini diperoleh dengan cara mengekstrapolasi metode iterasi Gauss-Seidel sehinga
muncul faktor relaksasi 𝜔. Secara matriks, metode ini dapat dituliskan dalam Persamaan 4.10.
Jika nilai 𝜔 = 1, maka metode ini akan kembali menjadi metode iterasi Gauss-Seidell.
6.3. Percobaan
2𝑥1 + 3𝑥2 = 5
a.
𝑥1 − 6𝑥2 = 9
−3𝑥1 − 0.1𝑥2 − 0.2𝑥3 = 7.85
b. 0.1𝑥1 + 7𝑥2 − 0.3𝑥3 = −19.3
0.3𝑥1 − 0.2𝑥2 + 10𝑥3 = 71.4
𝑎 + 3𝑏 − 𝑐 + 0.3𝑑 = 28
c. 𝑏 − 9.8𝑐 = 12
3𝑎 − 4𝑏 + 2𝑐 = −2
1.4𝑎 − 2.4𝑐 = 3
1. Turunkan Persamaan 4.5, 4.8, dan 4.10 menggunakan metode dekomposisi matriks
serta nyatakan dalam bentuk komponen.
2. Apakah yang dimaksud dengan norm matriks dan norm vektor?
3. Hitunglah solusi dari sistem persamaan linier di bawah menggunakan iterasi Jacobi
hingga iterasi ke-3.
Tentukan besar masing-masing arus listrik (I1, I2, dan I3) pada rangkaian dibawah ini,
dengan menggunakan sistem persamaan linier.
7.1. Tujuan
7.2. Teori
Interpolasi digunakan untuk menghubungkan titik data diskrit dengan cara yang dapat
diterima sehingga seseorang bisa mendapatkan perkiraan yang beralasan dari suatu titik data
diantara data-data yang diberikan. Kurva yang dibentuk oleh proses interpolasi akan selalu
melewati seluruh titik data yang ada.
Sebagai ilustrasi, terdapat data tentang jumlah penduduk pada suatu daerah dalam
kurun waktu 1950 hingga 2000 dengan pengambilan data setiap 10 tahun. Hal itu dijelaskan
pada Tabel 5.1
Jika dilihat berdasarkan tabel data di atas, akan muncul pertanyaan yang baru bagaimana jika
kita ingin mengetahui jumlah penduduk pada tahun 1955 atau pada tahun 1998? Bila hubungan
fungsional antara kedua variabel, tahun dan jumlah penduduk, diketahui maka masalah ini
tentunya mudah untuk diselesaikan. Tetapi pada umumnya hubungan tersebut tidak diketahui
atau bila diketahui maka hanya dalam bentuk umumnya saja dimana koefisien-koefisien dari
hubungan fungsional itu tetap tidak diketahui. Dalam situasi seperti ini, biasanya yang dapat
dilakukan untuk menentukan solusi permasalahan tersebut adalah menggunakan metode
Teorema I
Bagi setiap fungsi 𝑓(𝑥) kontinu dalam suatu interval [𝑎, 𝑏], maka dapat dinyatakan
dalam interval tersebut suatu fungsi polynomial 𝑃𝑛 (𝑥) dengan suatu derajat ketelitian
tertentu sedemikian rupa sehingga |𝑓(𝑥 ) − 𝑃(𝑥)| < 𝜖 untuk setiap nilai x dalam [𝑎, 𝑏]
dimana 𝜖 merupakan bilangan positif.
Teorema II
Setiap fungsi 𝑓(𝑥)kontinu periodik2𝜋 dapat disajikan dalam bentuk fungsi seri
trigonometri hingga 𝑔(𝑥 ) = 𝑎0 + 𝑎1 sin 𝑥 + 𝑎2 sin 2𝑥 + ⋯ + 𝑎𝑛 sin 𝑛𝑥 + 𝑏1 cos 𝑥 +
𝑏2 cos 2𝑥 + ⋯ + 𝑏𝑛 cos 𝑛𝑥 dengan |𝑓(𝑥 ) − 𝑔(𝑥 )| < 𝛿 untuk 𝑥 dalam interval [𝑎, 𝑏]
dimana 𝛿 merupakan bilangan positif.
Salah satu teknik interpolasi yang sering digunakan untuk menghampiri suatu fungsi
kontinu adalah interpolasi polynomial yang dirumuskan dengan Persamaan 5.1.
Apabila pengamatan data tidak berjarak sama atau interval antar variabel bebas tidak
seragam, perumusan interpolasi yang digunakan mengacu pada penurunan rumusan oleh
Lagrange. Polinomial Lagrange dapat dinyatakan dalam bentuk Persamaan 5.2.
𝑎𝑖 = 𝑓 (𝑥𝑖 ), 𝑖 = 0, 1, 2, … , 𝑛
𝑛
(𝑥 − 𝑥𝑗 )
𝐿𝑖 (𝑥 ) = ∏
(𝑥𝑖 − 𝑥𝑗 )
𝑗=0
𝑗≠𝑖
7.3. Percobaan
1. Untuk fungsi 𝑓(𝑥) di bawah ini dengan diketahui data 𝑥0 = 0, 𝑥1 = 0.6, 𝑥2 = 0.9,
gunakan interpolasi polynomial derajat satu dan dua untuk menghampiri nilai 𝑓(0.45).
Buatlah dalam program dengan menggunakan bahasa matlab.
1. 𝑓 (𝑥 ) = sin 𝑥
ln(2𝑥+3)
2. 𝑓 (𝑥 ) = 2𝑥 2
3. 𝑓 (𝑥 ) = 𝑒 𝑥 + √(2𝑥 + 1)
1
4. 𝑓(𝑥) = 1+16𝑥2
2. Gunakan metode Interpolasi Lagrange derajat satu, dua dan tiga untuk memprediksi
populasi daerah “X” sesuai dengan Tabel 5.1 pada tahun 1945, 1955, 1965, 1975, 1985,
1995, 2005.
Jelaskan apa yang dimaksud dengan ekstrapolasi. Apa perbedaan ekstrapolasi dan
interpolasi?
Buatlah program menggunakan bahasa matlab untuk soal-soal yang ada pada
Percobaan dengan menggunakan metode Newton Forward Difference.
8.1. Tujuan
8.2. Teori
Regresi adalah teknik pencocokan kurva yang dilakukan untuk mengaproksimasi suatu
kelompok data berketilitian rendah dengan suatu fungsi. Contoh data berketelitian rendah
adalah hasil pengamatan, percobaan di laboratorium atau data statistik.
Jika data di dalam tabel 6.1 diplotkan ke dalam grafik, maka dapat terlihat hubungan
antara variabel x dan y cenderung memiliki hubungan yang linier.
8
7
6
5
4
Y
3
2
1
0
0 2 4 6 8 10 12
X
Pendekatan ini disebut dengan metoderegresi kuadrat terkecil. Untuk menentukan konstanta-
konstanta 𝑎0 dan 𝑎1 kita gunakan pendekatan turunan parsial Persamaan 6.1 terhadap masing-
masing konstanta, lalu kita set persamaan tersebut sama dengan nol. Persamaan terakhir yang
diperoleh disebut dengan persamaan normal. Dengan cara ini kitaakan bertemu kembali dengan
masalah aljabar linier seperti dalam percobaan Metnum-4. Adakalanya aproksimasi linier
bukan merupakan aproksimasi terbaik.Oleh karena itu digunakan aljabar polinum seperti pada
Persamaan 5.1, sehingga Persamaan 6.1 akan berubah menjadi Persamaan 6.2, yang merupakan
formulasi umum untuk menghitung error pada metoderegresi kuadrat terkecil.
𝑁
Dari Persamaan 6.2 dapat pula kita turunkan persamaan normal untuk pendekatan Regresi
Kuadrat Terkecil untuk polinom derajat ke n.
8.3. Percobaan
1. Turunkan persamaan normal untuk metode regresi kuadrat terkecil untuk polinom
derajat ke-n.
2. Bagaimana cara kita mengaproksimasi suatu data yang mempunyai tren eksponensial?
Buat program dengan Bahasa matlab untuk menyelesaikan contoh kasus yang
diberikan oleh asisten! Plot kurvanya!
9.1. Tujuan
9.2. Teori
𝑏
𝑏−𝑎
𝐼 = ∫ 𝑓(𝑥 )𝑑𝑥 = [𝑓(𝑎) + 𝑓 (𝑏)] + 𝐸 (7.1)
𝑎 2
Metode ini mengaproksimasi suatu fungsi dengan pendekatan trapesium, dalam Persamaan 7.1
terlihat bahwa suatu fungsi f (x) dihampiri dengan perhitunganluas trapesium. Persamaan 7.1
merupakan formulasi integrasi numerik menggunakan satu buah trapesium, dengan demikian
error E yang dihasilkan cukup besar. Oleh karena itu Persamaan 7.1 diperluas, sehingga jumlah
trapesium yang digunakan sebanyak N buah, shingga persamaan 7.1 berubah menjadi
Persamaan 7.2.
𝑏 𝑁−1
ℎ
𝐼 = ∫ 𝑓 (𝑥 )𝑑𝑥 = [𝑓(𝑎) + 2 ∑ 𝑓 (𝑎 + 𝑗ℎ) + 𝑓 (𝑏)] + 𝐸 (7.2)
𝑎 2
𝑗=1
𝑏−𝑎
denganℎ = 𝑁
Metode ini diturunkan melalui polinom Newton orde dua yang dirumuskan melalui
Persamaan 7.3.
Persamaan 7.3 merupakan formulasi Simpson 1/3 dimana penjumlahan pertama dikhususkan
untuk i yang ganjil dan penjumlahan kedua untuk i genap. Metode ini hanya berlaku untuk nilai
N genap, dan nilai hyang sama dengan yang dirumuskan pada metode trapesium. Kekurangan
metode Simpson 1/3 yang hanya berlaku untuk 𝑁 genap diperbaiki oleh metode Simpson 3/8
yang dirumuskan sebagai berikut :
𝑏
3
𝐼 = ∫ 𝑓 (𝑥 )𝑑𝑥 = ℎ[𝑓0 + 3𝑓1 + 3𝑓2 + 𝑓3 ] + 𝐸 (7.4)
𝑎 8
𝑏−𝑎
dengan ℎ = . Persamaan 7.4 hanya berlaku untuk satu interval saja. Jika interval data yang
3
digunakan lebih dari satu, persamaan 7.4 harus diubah ke dalam bentuk umum persamaan
metode Simpson 3/8. Metode simpson 3/8 berlaku untuk nilai N berupa bilangan kelipatan 3.
9.3. Percobaan
buatlah program menggunakan bahasa matlab dengan metode yang telah dipelajari
pada modul ini.
2. Bandingkan hasil percobaan untuk metode trapesium dan simpson 1/3.
3. Diberikan tabel sebagai berikut :
𝑥 𝑓(𝑥)
0 1
0.25 0.8
0.625 0.6
0.75 0.57
0.875 0.53
1 0.5
Bagaimana cara mencari integral dari data dengan interval yang tidak seragam seperti
pada tabel di atas?
10.1. Tujuan
10.2. Teori
Diferensiasi numerik adalah proses perhitungan turunan fungsi dari data suatu fungsi.
Untuk beberapa kasus, suatu fungsi memiliki bentuk yang rumit sehingga perhitungan dengan
cara analitik merupakan pekerjaan yang tidak praktis. Namun fungsi tersebut dapat kita cari
turunannya dengan pendekatan numerik, salah satu metodenya adalah metode aproksimasi
beda hingga.
Metode aproksimasi beda hingga untuk menentukan turunan suatu fungsi didasari oleh
ekspansi deret Taylor dari suatu fungsi f(x) disekitar titik x. Dari ekspansi deret taylor akan
diperoleh Persamaan 8.1 – 8.3
𝑓 (𝑥 + ℎ) − 𝑓 (𝑥 ) ℎ ′′
𝑓 ′ (𝑥 ) = − 𝑓 (𝑥 ) (8.1)
ℎ 2
𝑓(𝑥 ) − 𝑓 (𝑥 − ℎ) ℎ ′′
𝑓 ′ (𝑥 ) = + 𝑓 (𝑥 ) (8.2)
ℎ 2
𝑓 (𝑥 + ℎ) − 𝑓(𝑥 ) ℎ2 ′′′
𝑓 ′ (𝑥 ) = − 𝑓 (𝑥 ) (8.3)
ℎ 6
1. Hitung turunan pertama dari fungsi 𝑓 (𝑥 ) = sin4 (3 − 2𝑥) pada 𝑥 = 1 dengan nilai
ℎ ∈ {0.001 , 0.005 , 0.05 , 0.1 , 0.5} untuk setiap metode. Hitung pula error yang
dihasilkan.
sin 3𝑥
2. Hitung turunan pertama dari fungsi 𝑓 (𝑥 ) = 𝑥 𝑐𝑜𝑠 2𝑥 pada 𝑥 = 1 dengan nilai ℎ ∈
{0.001 , 0.005 , 0.05 , 0.1 , 0.5} untuk setiap metode. Hitung pula error yang
dihasilkan.
1. Jelaskan apa yang dimaksud dengan h, dan apa pengaruhnya terhadap nilai error!
2. Hitunglah nilai turunan untuk soal No. 1 dan No. 2 pada Percobaan praktikum dengan
cara analitik.
Tentukan impuls yang terjadi yang dihasilkan mobil saat 𝑡 = 0, 0.25, dan 0.56.
3. Dalam kondisi seperti apa setiap metode dapat digunakan? jelaskan
11.1. Tujuan
11.2. Teori
Kasus persamaan diferensial biasa (PDB) merupakan salah satu kasus yang sering
dijumpai dalam bidang sains maupun teknik. Persamaan diferensial biasa menggambarkan
suatu bentuk persamaan matematis yang mengandung turunan dari suatu fungsi terhadap satu
variabel bebas. Secara sederhana, persamaan diferensial biasa dapat dituliskan sebagai berikut
𝑑𝑦
𝑦′ = = 𝑓 (𝑦, 𝑡) 𝑦(0) = 𝑦0 (9.1)
𝑑𝑡
Dalam Persamaan9.1 turunan pertama dari y diketahui sebagai fungsi 𝑓(𝑦, 𝑡) yang merupakan
fungsi dari 𝑦 dan 𝑡 dengan 𝑦(0) = 𝑦0 merupakan nilai awalnya. Untuk menghitung fungsi 𝑦
yang tidak diketahui maka kita dapat secara langsung mengintegrasi secara numerik
Persamaan9.1. Akan tetapi bila 𝑓 merupakan fungsi dari 𝑦 maka proses integrasi menjadi
berbeda.
Metode Forward Euler ini diturunkan melalui deret Taylor (lihat modul 7), bila ditulis
kembali menggunakan pendekatan forward difference, maka metode Euler dapat ditulis
menjadi Persamaan 9.2
𝑦𝑛+1 − 𝑦𝑛
𝑦𝑛′ ≈ (9.2)
ℎ
Seringkali Persamaan 9.2 ditulis dalam bentuk Persamaan 9.3
𝑦𝑛+1 = 𝑦𝑛 + ℎ 𝑓(𝑦𝑛 , 𝑡𝑛 ) (9.3)
Metode ini merupakan metode yang cukup handal dalam menyelesaikan masalah
persamaan diferensial biasa. Beberapa pendahulunya seperti metode RK orde 1,2 dan 3, telah
ditutupi oleh metode RK-4, karena metode ini mempunyai orde akurasi yang lebih tinggi
dibandingkan yang lainnya. Metode RK-4 diturunkan melalui pendekatan integral Simpson
1/3 atau 3/8. Melalui integral Simpson 1/3 maka metode RK-4 dapat ditulis menjadi
Persamaan 9.4.
𝑘1 = ℎ𝑓 (𝑦𝑛 , 𝑡𝑛 )
1 1
𝑘2 = ℎ𝑓 (𝑦𝑛 + ℎ, 𝑡𝑛 + 𝑘1 )
2 2
1 1
𝑘3 = ℎ𝑓 (𝑦𝑛 + ℎ, 𝑡𝑛 + 𝑘2 )
2 2
𝑘4 = ℎ𝑓 (𝑦𝑛 + ℎ, 𝑡𝑛 + 𝑘3 )
1
𝑦𝑛+1 = 𝑦𝑛 + [𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 ] (9.4)
6
11.3. Percobaan
1. Pergerakan suatu sistem massa, pegas dan damper mengalami pergerakan setelah gaya
aktuasi F(t) diberikan seperti gambar dibawah ini.
Jika persamaan pergerakan oleh massa ini diberikan oleh hukum Newton berupa
persamaan :
𝑚𝑥̈ = −𝑘𝑥 − 𝑐𝑥̇ + 𝐹(𝑡)
Jika 𝑥(0) = 𝑥̇ (0) = 0 , 𝑚 = 5000 𝑘𝑔, 𝑐 = 5000𝑁𝑠/𝑚 , 𝑘 = 50000𝑁/𝑚 dan
gaya aktuasi sebesar 5000 𝑁 untuk 0 ≤ 𝑡 ≤ 1 detik dan 0 𝑁untuk𝑡 > 1 detik. Maka
hitunglah pergerakan dari massa benda selama 10 detik !
𝑑𝑦
2. 𝑑𝑡
= 1 + 𝑦 exp(−𝑡) dengan 𝑦(1) = 10 dan ℎ ∈ {0.1 ; 0.01} . Tentukan nilai 𝑦(0)!
12.1. Tujuan
12.2. Percobaan
1. Sasongko, Setia Budi. 2010. Metode Numerik dengan Scilab. Yogyakarta : Andi Offset.
2. Kosasih, P. Buyung. 2006. Komputasi Numerik, Teori dan Aplikasi. Yogyakarta : Andi
Offset.
3. Purcell, Varberg, Rigdon. 2003. Kalkulus Jilid 2 Edisi Kedelapan (Terjemahan).
Jakarta : Erlangga.
4. Frank Ayres dan Elliot Mendelson. 2006. Schaum’s Outlines, Kalkulus Edisi Keempat
(terjemahan). Jakarta : Erlangga.