• Tidak ada hasil yang ditemukan

Modul Praktikum Metode Numerik. docx

N/A
N/A
Protected

Academic year: 2018

Membagikan "Modul Praktikum Metode Numerik. docx"

Copied!
82
0
0

Teks penuh

(1)
(2)

DAFTAR ISI

Daftar

Isi ...

...2

Pengenalan

Matlab...

...

3

Pemrograman Sederhana dengan

Matlab...

6

Chapter 1. Error Perhitungan

Numerik... 19

Chapter 2. Penyelesaian Persamaan Non

Linear ...

24

Metode Grafik dan

Tabulasi ...24

Metode

Biseksi ...

31

Metode Newton

Rhapson ... 38

Metode

Secant ...

40

Metode Regula

Falsi ...44

Chapter 3. Penyelesaian Persamaan Differensial

Biasa ...

50

Metode

Euler ...

50

Metode Runge

(3)

Chapter 4. Penyelesaian Sistem Persamaan

Linear ...

56

Metode Iterasi

Jacobi ... 58

Metode Gauss

Seidel ...

66

Chapter 5. Pendekatan

Fungsi ...

71

Metode Devide

(4)

Pengenalan Matlab

SEKILAS MATLAB

Fasilitas-fasilitas pada MATLAB : 1. Current Directory

Path Browser memungkinkan Anda melihat dan mengubah alamat Pencarian MATLAB (alamat tempat MATLAB mencari file-file yang diperlukan )

2. Workspace (Pencari tempat kerja)

(5)

3. M-File editor/Debuger

Digunakan untuk menuliskan program berupa fungsi-fungsi dan disimpan sesuai dengan nama fungsinya dan dapat dilakukan eksekusi program. M-File dapat diaktifkan dengan mengklik File – New – M-File .

4. Command Windows

Command windows dapat digunakan seperti kalkulator dan juga dapat untuk menuliskan operasi-operasi matematika, seperti operasi-operasi matriks, polinomial, dan yang berhubungan dengan image prosessing.

Matematika Sederhana

(6)

Pi = 3.14

4 x 25 + 6 x 52 + 2 x 99 = 610 Apabila dikerjakan dengan Matlab :

Operasi-operasi Aritmetik Dasar :

Operasi Simbol Contoh

Penambahan, a + b Pengurangan, a – b Perkalian, a x b Pembagian, a : b Pemangkatan, ab

+ – *

/ atau \ ^

5 + 3 23 – 12 3.14 * 5 6/3 = 3\6 5^2

Variabel

MATLAB mempunyai aturan penamaan variabel yaitu : Aturan Penamaan Variabel Catatan & Contoh

Nama variabel dibedakan antara huruf kecil dan huruf kapital

Nama variabel harus diawali dengan huruf, diikuti dengan bilangan,huruf atau garis bawah. Karakter tanda baca tidak diperbolehkan.

Items, items, itEms, dan ITEMS semuanya adalah variabel yang berbeda

(7)

PENDAHULUAN

Variabel

Nama yang diberikan untuk mewakili suatu data, baik berupa masukan data atau merupakan hasil perhitungan aturan penulisan variabel:

1. harus diawali dengan huruf

2. tidak boleh mengandung spasi dan tanda baca (karakter khusus) 3. tidak boleh menggunakan key words

4. dibedakan antara huruf besar dan huruf kecil, misalnya: Nama, NAMA, NamA, NaMa, dsb. merupakan variabel yang berbeda.

Input Data

Terdapat dua cara untuk memasukkan data yaitu:

a. inisialisasi data, dimana data diberikan secara langsung pada saat pembuatan program

Bentuk umum:

variabel = ekspresi

b. menggunakan perintah input, dimana data diberikan pada saat program di-running.

Bentuk umum:

variabel = input(‘text’) numerik dan string atau

variabel = input(‘text’, ‘s’) string

pada layar akan tampil apa yang tertulis di antara tanda petik (text),menanti masukan data yang diikuti dengan menekan enter melalui keyboard.

Contoh berikut ini menampilkan program perhitungan sederhana dimanalangkah memasukkan data dilakukan dengan menggunakan kedua cara: tersebut. Kedua contoh tersebut dijalankan pada layar utama Matlab yang

disebut command window.

(8)

Contoh Perhitungan luas Segi Tiga A = 0.5 x a x t dengan cara input data. >> topik='segi tiga'

topik =

segi tiga

>> alas = 5

alas =

5

>> tinggi=10

tinggi =

10

>> luas_segitiga = 0.5 * alas * tinggi

luas_segitiga =

25

>> topik = input('masukkan bangun geometri yang akan dicari

luasnya: ')

masukkan bangun geometri yang akan dicari luasnya: 'segi tiga'

topik =

segi tiga

>> alas = input(' masukkan alas segi tiga: ')

masukkan alas segi tiga: 5

alas =

5

>> tinggi = input('masukkan tinggi segi tiga : ')

masukkan tinggi segi tiga : 10

tinggi =

10

(9)

Bila ingin menampilkan nilai dari suatu variable disp(A) dimana A adalah variabel; hasil yang ditampilkan adalah nilai yang tersimpan dalam variabel A tersebut.

Contoh :

Bila ingin menampilkan teks atau string4hasil yang ditampilkan adalah apa yang tertulis di antara tanda petik.

Contoh :

Bila ingin menampilkan gabungan teks dan nilai dari suatu variabel, gunakan tanda kurung siku dimana nilai numerik harus dikonversi ke bentuk string terlebih dahulu dengan menggunakan fungsi num2str (number to string).

Contoh :

Penggabungan Input Data

Beberapa data yang dimasukkan yang ditulis dalam beberapa baris program dapat digabungkan dengan memberikan tanda koma (,) atau titik koma (;) sebagai pemisah, tanda ; membuat data menjadi tersembunyi.

>> A = 30

A =

30

>> disp(A)

30

>> disp('angkatan 45')

angkatan 45

>> x = 45

x =

45

>> disp ([ 'Nilai sudut salah satu segitiga adalah =',num2str(x)

,'disebut segitiga siku-siku'])

(10)

Contoh : Input data x, y, dan z pada contoh di atas yang ditulis dalam 3 baris program dapat digabungkan menjadi 1 baris program dengan salah satu cara berikut:

Pemberian Komentar

Pemberian komentar diawali dengan tanda persen ‘%’ merupakan pernyataan atau komentar atau keterangan atau catatan.

Tujuannya adalah untuk memberi keterangan agar lebih mudah memahami maksud suatu bagian program.

Sejauh ini, semua pekerjaan dilakukan melalui sebuah layar yang disebut command window dimana perintah dapat dieksekusi secara langsung satu per satu. Ada pula layar lain yang dapat menyimpan semua perintah yang dibuat untuk kemudian dieksekusi secara keseluruhan. Layar tersebut adalah layar M-File.

Contoh :

Perhitungan Luas persegi panjang :

L = p x l, L = Luas persegi panjang, l = lebar , p = panjang

10

>> x = 1, y = 2, z = 3

x =

1

y =

2

z =

3

>> x = 1; y = 2; z = 3

z =

3

>> x = 1; y = 2; z = 3;

>>

% menghitung luas segi tiga siku-siku

% masukkan a = alas dan t = tinggi

% Luas = L = 0.5 * a * t

(11)

Fungsi di atas diketik dalam layer m.file, harus disimpan sesuai nama fungsinya yaitu “luassegitigasiku” dalam direktori.

Bila akan menjalankan fungsi tersebut m.file buka nama fungsi “luassegitigasiku” kemudian klik menu debug > run, kemudian dalam command windows kita masukkan nilai alas dan tingginya. Misalnya palas a = 10 dan tinggi t = 20, maka penulisan & hasil dalam command windows adalah :

VEKTOR DAN MATRIKS VEKTOR MATRIKS

Vektor dan matriks merupakan konsep dasar perhitungan dalam Matlab. Berbagai perhitungan dapat diselesaikan dengan lebih mudah, ringkas, dan cepat bila bentuknya dikonversi ke dalam bentuk vektor/matriks. Untuk itu, harus dipahami benar dasar operasi dengan menggunakan vektor/matriks.

1. Skalar

Di dalam Matlab, skalar adalah sebuah data dengan satu baris dan satu

kolom. Variabel-variabel yang memuat data skalar tersebut dapat mengalami operasi penjumlahan, pengurangan, perkalian, dan pembagian.

2. Vektor

Di dalam Matlab, vektor adalah sekumpulan data yang membentuk hanya satu baris atau satu kolom.

Penulisan elemen dilakukan di dalam kurung siku [ ] yang diantarai dengan spasi atau titik koma. Pengecualian berlaku hanya untuk penulisan data yang berbentuk deret dengan pola tertentu.

Vektor dapat mengalami operasi dengan skalar atau dengan vektor lain asalkan mempunyai dimensi yang sama.

Contoh : Vektor dan Operasinya

(i) Bentuk deret sederhana

Bentuk umum penulisan data dengan pola tertentu atau deret yang sederhana:

>> luassegitigasiku(10,20)

ans =

(12)

variabel = n : m dimana n = nilai awal, m = nilai akhir

(ii) Penggunaan increment

Bentuk umum penulisan data dengan pola tertentu atau deret:

variabel = n : i : m dimana n = nilai awal, m = nilai akhir, dan i = increment/langkah; bila I tidak didefinisikan, maka Matlab akan

menggunakan default-nya yaitu 1.

Vektor dapat mengalami operasi penjumlahan, pengurangan, perkalian, dan pembagian. Operasi penjumlahan dan pengurangan dapat dilakukan bila vektor-vektor yang akan dijumlahkan atau dikurangkan mempunyai orde (dimensi) yang sama. Perkalian 2 buah vektor x dan y mempunyai bentuk: Σxi * yi dimana kedua vektor juga harus berde sama, tetapi 1 vektor kolom dan yang lainnya vektor baris.

>> a = 1:5

a =

1 2 3 4 5

>> a = [1:5]

a =

1 2 3 4 5

>> a = [1 2 3 4 5]

a =

1 2 3 4 5

>>

1:10

ans =

1 2 3 4 5 6 7 8 9 10

>> 1:2:10

ans =

1 3 5 7 9

>> 0:2:10

ans =

(13)

3. Matriks

>> a = [1 2 3] % vector baris a

a =

1 2 3

>> b = [2 1 0] % vector baris b

b =

2 1 0

>> a + b % penjumlahan vector baris a dan vector baris b

ans =

3 3 3

>> a – b % pengurangan vector baris a dengan vector baris

b

ans =

-1 1 3

>> a * b % perkalian vector baris dengan vector baris tidak

bisa

??? Error using ==> *

Inner matrix dimensions must agree.

>> b=[2; 1; 0] % vector kolom b

b =

2

1

0

>> a * b % perkalian vector baris a denga vector kolom b

ans =

(14)

Matriks merupakan himpunan data yang membentuk beberapa baris dan kolom. Aturan operasi penjumlahan dan pengurangan yang berlaku pada vektor juga berlaku untuk matriks apabila matriks mempunyai dimensi yang sama.

Perkalian antara 2 buah matriks misalkan matriks A dan matriks B. Perkalian matriks A x B, harus memenuhi aturan bahwabanyaknya kolom pada matriks A harus sama dengan benyaknya baris pada matriks B.

Contoh : Matriks dan Operasinya

4. Pengalamatan

>> A=[1 2 3;2 1 3] % Operasi penambahan dan pengurangan matriks. Dimensi matriks harus sama A =

>> E=A*B % perkalian matriks ukuran baris matriks A tidak sama dengan ukuran kolom matriks B jadi error...

??? Error using ==> *

Inner matrix dimensions must agree. >> B'

ans =

3 2 3 2 3 2

>> A*B' %perkalian dapat dilakukan

(15)

Merupakan cara penulisan yang digunakan untuk menampilkan atau mendefinisikan ulang suatu data atau sekumpulan data pada vector atau matriks, ditulis dalam bentuk umum: variabel(i,j), dimana i menunjukkan baris dan j menunjukkan kolom Vektor dan Matriks

Contoh : Pengalamatan Vektor atau Matriks x(2) menunjukkan elemen kedua vektor x z(3) menunjukkan elemen ketiga vektor z12

r(2,1) menunjukkan elemen matriks r pada baris kedua kolom pertama

t(3,2) menunjukkan elemen matriks t pada baris ketiga kolom kedua s(:,2) menunjukkan semua elemen matriks s pada kolom kedua u(1,:) menunjukkan semua elemen matriks u pada baris pertama

PENGATURAN ALUR PROGRAM

Pengaturan alur program memungkinkan pengguna untuk mengulangi perhitungan secara berulang-ulang ataupun memilih serta memutuskan kondisi-kondisi yang sesuai/diinginkan. Matlab menyediakan empat bentuk pengaturan alur program yang akan dibahas berikut ini.

1. Loop for

Loop for memungkinkan sekelompok perintah diulang sebanyak suatu jumlah yang tetap. Bentuk umum:

for loopvariable = loopexpression perintah-perintah

end

Loopvariable merpakan nama variabel yang diberikan, sedangkan loopexpression biasanya memiliki bentuk n:m atau n:i:m.

Perintah perintah di antara baris for dan end dikerjakan berulang-ulang dari nilai awal n sampai nilai akhir m, dengan increment (langkah) sebesar i.

Contoh : Perhitungan pangkat 3 dari himpunan bilangan bulatdari 1 sampai 4

Contoh : Operasi perkalian 2 buah vector

(16)

2. Loop while Bentuk umum:

while while_expression perintah-perintah

end

Operator relasi yang didefinisikan sebagai berikut: > lebih besar >= lebih besar atau sama dengan < lebih kecil <= lebih kecil atau sama dengan == sama -= tidak sama

contoh :

>> x = [1 2 3]; y = [4 5 6]; sum = 0; for i = 1:3

sum = sum + x(i)*y(i) end

sum = 4

sum = 14

sum = 32

n = 1; x = 0; while x <15 x(n) = n^2; n = n+1; end >> x

(17)

3. If-Statement

Bentuk umum: if if_ekspresi perintah-perintah end

Contoh :

Di sebuah toko kue, harga kue per toples adalah Rp. 25.000

Apabila membeli minimal 4 toples akan mendapatkan potongan 10%

Program ditulis dalam m.file, disimpan dengan nama kue.m Apabila di_run hasilnya adalah:

Jika terdapat 3 atau lebih pilihan, konstruksi if-else-end mengambil bentuk: if if_ekspresi1

perintah dikerjakan jika if_ekspresi1 benar elseif if_ekspresi2

perintah dikerjakan jika if_ekspresi2 benar elseif if_ekspresi3

perintah dikerjakan jika if_ekspresi3 benar

Harga = input('Harga 1 toples kue =');

Cacah_Kue = input('Berapa toples kue yang dibeli??? ='); if Cacah_Kue >= 4

bayar = ((Cacah_Kue*Harga)-(Cacah_Kue*Harga*0.01)) else

bayar =Cacah_Kue*Harga end

Harga 1 toples kue =25000

Berapa toples kue yang dibeli??? =3

bayar =

75000

Harga 1 toples kue =25000

Berapa toples kue yang dibeli??? =4

bayar =

(18)

elseif if_ekspresi4

perintah dikerjakan jika if_ekspresi4 benar elseif

else

perintah dikerjakan jika tidak ada if_ekspresi yang benar end

Contoh:

Untuk menentukan nilai akhir mahasiswa, untuk setiap mata kuliah diadakan

ujian kompetensi dasar (KD) sebanyak 4 kali.

Nilai

Akhir

=

KD

1

+

KD

2

+

K

3

+

D

4

4

, Jika Nilai akhir >80 memperoleh A, jika

70

Nilai

Akhir

<

80

, nilai B, Jika

60

Nilai

Akhir

<

70

nilai C, jika Nilai_Akhir < 60 nilai D

Contoh Program adalah :

Program di atas disimpan dalam format m.file dengan nama nilai.m. apabila di run hasilnya adalah:

18

KD1 = input('Masukkan nilai KD 1 sekala 100, KD 1 ='); KD2 = input('Masukkan nilai KD 2 sekala 100, KD 2 ='); KD3 = input('Masukkan nilai KD 3 sekala 100, KD 3 ='); KD4 = input('Masukkan nilai KD 4 sekala 100, KD 4 =');

NA = (KD1+KD2+KD3+KD4)/4

Masukkan nilai KD 1 sekala 100, KD 1 =80 Masukkan nilai KD 2 sekala 100, KD 2 =78 Masukkan nilai KD 3 sekala 100, KD 3 =79 Masukkan nilai KD 4 sekala 100, KD 4 =79

NA =

79

(19)

4. Switch-case-otherwise Bentuk umum:

switch ekspresi case ekspresi1 perintah-perintah case ekspresi2 perintah-perintah case ……

. .

otherwise

perintah-perintah end

Program tersebut ditulis dalam m.file dan diberi nama pilihan.m, apabila di run hasilnya adalah :

disp('1. Newton')

disp('2. Regula Falsi') disp('3. Newton Raphson')

n = input('Metoda yang dipilih (masukkan nomor urutnya saja) = ');

switch n

case (1), disp('Metode Newton')

case (2), disp('Metode Regula Falsi') case (3), disp('Metode Newton Raphson') otherwise

disp('Metode tersebut belum dimasukkan dalam daftar') end

>> 1. Newton 2. Regula Falsi 3. Newton Raphson

(20)
(21)

Chapter 1

ERROR PERHITUNGAN NUMERIK

A. Tujuan

a. Memahami galat dan hampiran

b. Mampu menghitung galat dan hampiran

c. Mampu membuat program untuk menyelesaikan perhitungan galat dan hampiran dengan Matlab

B. Perangkat dan Materi a. Software Matlab

b. Materi Galat dan Hampiran

C. Dasar Teori  (Hampiran)

Contoh : Hitunglah

2

sampai empat angka desimal. Penyelesaian :

Mennggunakan algoritma untuk menghitung

2

dengan menggunakan operasi perkalian, pembagian, dan penjumlahan sebagai berikut :

Dengan menggunakan algoritma di atas, diperoleh, untuk n = 2,3,4,...

x

2

=

3

Atau dalam bentuk pecahan desimal :

(22)

Jadi, hampiran sampai empat angka desimal untuk

2

adalah

x

5

=1 .4142

Implementasi dengan Matlab

Berikut ini langkah-langkah percobaan untuk menyelesaikan persoalan di atas:

a. Buka program Matlab

b. Buat programnya di Command Windows >> x=1;

>> e=1;

>> while e > 0.00001, y=x;

x=(y+2/y)/2 e=abs(x-y); end

x =

1.5000 x =

1.4167 x =

1.4142 x =

1.4142

>> fprintf('%5.7f',x); 1.4142136

c. Anda dapat mengubah batas nilai e untuk mendapatkan tingkat keakuratan yang diinginkan.

Definisi Kesalahan (Galat)

Yaitu kesalahan yang ditimbulkan karena proses pengukuran atau penggunaan hampiran (aproksimasi).

(23)

numerik (Volkof,1990:8, dalam buku Komputasi Numerik dengan Matlab, 2005 oleh Sahid :3) adalah :

1. Model matematika untuk suatu fenomena alam 2. Galat bawaan dari masukan (parameter masukan) 3. Metode Penyelesaian

4. Adanya pembulatan dalam melakukan operasi-operasi aritmetika. Contoh : Galat Penjumlahan dan Pengurangan

Teori :

Dari hubungan nilai eksak diperoleh :

x

+

y

x

+

e

¯x

y

+

e

¯y

=(

x

+

y

)+(

e

¯x

+

e

¯y

)

Jadi galat penjumlahan sama dengan jumlah galat suku-suku yang dijumlahkan, atau dapat ditulis :

e

¯xy

=

e

¯x

+

e

¯y

Galat relatif penjumlahan adalah :

r

¯x+ ¯y

=

e

¯x+ ¯y

¯

x

+ ¯

y

=

e

¯x

+

e

¯y

¯

x

y

Untuk pengurangan

x

y

x

+

e

¯x

−¯

y

+

e

¯y

=(

x

y

)+(

e

¯x

e

¯y

)

Jadi, analog dengan penjumlahan, galat pengurangan sama dengan selisih galat, atau dapat dituliskan :

e

¯x−¯y

=

e

¯x

e

¯y

Galat relatif pengurangan adalah :

r

¯x−¯y

=

e

¯x−¯y

¯

x

−¯

y

=

e

¯x

e

¯y

¯

x

−¯

y

Dari persamaan terakhir dapat dipahami bahwa, apabila

¯

x

≈¯

y

maka galat relatif pengurangan kedua hampiran akan semakin besar.

(24)

x

i

E

X

i

x

i

+

E

, untuk

i

=

1,2,....

,n

Dengan menjumlahkan nilai-nilai tersebut diperoleh :

Jadi, galat jumlah n nilai hampiran tersebut adalah jumlah maksimum galat masing-masing hampiran.

Contoh Kasus :

Hitunglah jumlah

1

+

2

+

...

+

100

dengan menggunakan pembulatan sampai dua angka desimal (di belakang koma). Berapakah maksimum galat penjumlahan tersebut? Berapakah galat yang sesungguhnya?

Penyelesaian :

Kita dapat menggunakan Matlab untuk menghitung jumlahan tersebut. Dalam menggunakan Matlab perhitungan (menggunakan 16 angka signifikan). Untuk menghitung sampai dua angka desimal, masing-masing akar dikalikan 100 dan dibulatkan. Hasilnya sama dengan 100 kali jumlah tersebut.

Implementasi dengan Matlab: a. Bukalah program Matlab

(25)

c. Jadi, perhitungan menggunakan dua angka desimal menghasilkan jumlah 671.48.

Oleh karena setiap akar dihitung sampai dua angka desimal, maka galat

maksium masing-masig suku adalah

0.5

×

10

−2

.

Oleh karena itu, maksimum

galat hampiran jumlah tersebut adalah

100

×

0.5

×

10

−2

=

0.5

.

d. Nilai yang sebenarnya dapat dihitung dengan menggunakan Matlab berikut, tulis program pada command windows :

>> s=0;

for k=1:100, s=s+sqrt(k); end;s=s s =

671.4629 >> s=fprintf('%5.16f',s);

671.4629471031477100

Jadi, galat yang sesungguhnya adalah sekitar 0.071, lebih kecil daripada maksimum galatnya.

Apabila dikerjakan dengan Matlab tanpa adalanya looping adalah sebagai berikut :

>> format long g

barisan=1:100;

>> s1=sum(round(100*sqrt(barisan))/100); >> s2=sum(sqrt(barisan));

>> s1=s1 s1 =

671.48 >> s2=s2

s2 =

(26)

Chapter 2

PENYELESAIAN

PERSAMAAN NON LINEAR

METODE GRAFIK DAN TABULASI

A. Tujuan

d. Memahami Metode Grafik dan Tabulasi

e. Mampu Menentukan nilai akar persamaan dengan Metode Grafik dan Tabulasi

f. Mampu membuat program untuk menentukan nilai akar dengan Metode Grafik dan Tabulasi dengan Matlab

B. Perangkat dan Materi c. Software Matlab d. Metode Grafik

C. Dasar Teori

Fungsi f di sini adalah fungsi atau persamaan tak linear. Nilai x = x0 yang memenuhi (1) disebut akar persamaan atau fungsi tersebut. Sehingga x0 di sini menggambarkan fungsi tersebut memotong sumbu-x di x = x0.

Persamaan atau fungsi f dapat berbentuk sebagai berikut:

a. Persamaan aljabar atau polinomial

f(x) = pn(x) = anxn + an-1xn-1 + … + a1x + a0

b. Persamaan transenden

Yaitu persamaan yang mengandung fungsi antara lain trigonometri, logaritma, atau eksponen

(27)

c. Persamaan campuran

Contoh: (i) x3 sin(x) + x = 0 (ii) x2 + log(x) = 0

Untuk polinomial derajat dua, persamaan dapat diselesaikan dengan rumus akar persamaan kuadrat. Misalkan bentuk persamaan kuadrat adalah: ax2 +

bx + c = 0 dapat dicari akar-akarnya secara analitis dengan rumus berikut.

x12 =

Untuk polinomial derajat tiga atau empat, rumus-rumus yang ada sangat kompleks dan jarang digunakan. Sedangkan untuk menyelesaikan polinomial dengan derajat yang lebih tinggi atau persamaan tak linear selain polinomial, tidak ada rumus yang dapat digunakan untuk menyelesaikannya. Metode Numerik memberikan cara-cara untuk menyelesaikan bentuk tersebut, yaitu

metode hampiran. Penyelesaian numerik dilakukan dengan hampiran yang berurutan (metode iterasi), sedemikian sehingga setiap hasil adalah lebih teliti dari perkiraan sebelumnya. Dengan melakukan sejumlah proisedur iterasi yang dianggap cukup, akhirnya didapat hasil perkiraan yang mendekati hasil eksak (hasil yang benar) dengan toleransi kesalahan yang diijinkan.Metode iterasi mempunyai keuntungan bahwa umumnya tidak sangat terpengaruh oleh merambatnya error pembulatan.

a. LOKALISASI AKAR

Lokasi akar persamaan tak linear diselidiki untuk memperoleh tebakan awal, yaitu:

(a) Cara grafik

Cara grafik ini dibedakan menjadi dua macam yaitu:

(i) Cara grafik tunggal

(28)

Gambar-1

Gambar-1 bisa dibuat dengan Matlab sbb.

x=-0.1:0.01:0.67;

f=exp(-x) - x;

x1=-0.2:0.01:1.5;

y1=0.*x1;

y2=-0.2:0.01:1.5;x2=0.*y2;

plot(x,f,x1,y1,'r',x2,y2,'r');

axis([-0.2 1.5 -0.2 1.5]);

gtext('f(x)=exp(-x)-x');

gtext('akar');

(29)

(ii) Cara grafik ganda

Misalkan f(x) = exp(-x) – x dan f1(x) = exp(x), f2(x) = x,

maka f(x) = f1(x) - f2(x)

Gambar-2

Gambar-2 bisa dibuat dengan Matlab sbb.

x=-0.1:0.01:2.5;

f1=exp(-x);

f2=x;

x1=-0.2:0.01:2.5;

y1=0.*x1;

y2=-0.2:0.01:1.5;x2=0.*y2;

plot(x,f1,x,f2,x1,y1,'r',x2,y2,'r');

(30)

gtext('f1(x)=exp(-x)');

gtext('f2(x)=x');

gtext('akar');

Dari Gambar-2, terlihat bahwa fungsi f1 dan f2 saling berpotongan, yaitu (x0,

y0). Titik perpotongan tersebut, absisnya (nilai x0) merupakan akar dari

f(x0) = exp(-x0) – x0 = 0.

(b) Cara tabulasi

Nilai-nilai fungsi pada interval yang diminati dihitung dengan membagi interval tersebut menjadi sub interval – sub interval, dan nilai-nilai tersebut ditulis dalam bentuk tabulasi. Jika pada suatu interval nilai fungsi berubah tanda, maka pada interval tersebut ada akar.

Misalkan f(x) = exp(-x) – x, kemudian dibuat tabulasi dengan bantuan Matlab, yaitu:

fprintf(' x f(x) tanda\n');

fprintf('---\n');

i=1;beda=0.1;

for x=0:beda:1;

f=exp(-x) - x;

fprintf('%3.1f %6.3f',x,f);

if sign(f)< 0

tanda(i)='-';

fprintf(' %s\n',tanda(i));

else

if sign(f)> 0

tanda(i)='+';

fprintf(' %s\n',tanda(i));

(31)

tanda(i)='0';

fprintf(' %s\n',tanda(i));

end;

end;

i=i+1;

end;

i=1;

for x=0:0.1:1;

if tanda(i)=='0'

fprintf('Akarnya adalah = %6.4f\n',x);

else

if i >1

if tanda(i)~= tanda(i-1)

a=x-beda;

b=x;

fprintf('Akar ada di interval [%3.1f, %3.1f]\n', a,b);

end;

end;

end;

i=i+1;

end;

maka hasil tabulasinya adalah sbb.

x f(x) tanda

(32)

---0.0 1.000 +

0.1 0.805 +

0.2 0.619 +

0.3 0.441 +

0.4 0.270 +

0.5 0.107 +

0.6 0.051

0.7 0.203

0.8 0.351

0.9 0.493

1.0 0.632

-Akar ada di interval [0.5, 0.6]

Latihan.

Cari akar persamaan tak linier dengan metode garfik dan tabulasi : 1.

f

(

x

)=2

x

3

2.

f

(

x

)=(2

x

+

1

)

3

(33)

METODE BISEKSI

A. Tujuan

a. Memahami Metode Biseksi

b. Mampu Menentukan nilai akar persamaan dengan Metode Biseksi c. Mampu membuat program untuk menentukan nilai akar dengan

Metode Biseksi dengan Matlab

B. Perangkat dan Materi d. Software Matlab e. Metode Biseksi

C. Dasar Teori

Metode Bisection (Setengah Interval)

Landasan utama dari metode ini adalah menentukan suatu interval dalam suatu fungsi dimananilai fungsi dari ujung-ujungnya(batas bawah dan batas atas) harus berbeda tanda untuk menunjukkan bahwa fungsi tersebut memotong sumbu horisontal, kemudian interval tersebut dipecah menjadi dua bagian yang sama untuk mendekati titik potong dengan sumbu horisontal.

Di dalam aplikasinya, langkah awal yang dilakukan adalah menetapkan nilai sembarang a dan b sebagai batas bawah dan batas atas interval nilai fungsi yang dicari. Titik a dan b memberikan harga bagi fungsi f(x) untuk x = a dan x = b.

Selanjutnya adalah memeriksa apakah f(a).f(b)<0, jika demikian maka terdapat akar fungsi dalam interval yang ditinjau. Jika tidak, maka nilai a dan b ditetapkan lagi sedemikian rupa sehingga terpenuhi ketentuan perkalian f(a).f(b)<0, yaitu nilai f(a) dan f(b) mempunyai tanda yang berbeda.

Langkah selanjutnya adalah mencari nilai tengah interval a dan b dengan rumus m=(a+b)/2, lalu diperiksa apakah nilai mutlak f(m)<

toleransi(misal

10

−6 ).

(34)

nilai b=m apabila f(a).f(m)<0, dan mengganti a=m bila f(a).f(m)>0 seperti terlihat pada Gambar 3.1 Proses menemukan mbaru dilakukan seperti prosedur yang telah dijelaskan.

Secara sederhana dari langkah-langkah yang dijelaskan di atas dapat disusun suatu algoritma program sebagai berikut:

1. Tentukan fungsi f(x), batas bawah a, batas atas b, toleransi, dan jumlah iterasi maksimum.

2. Hitung f(a) dan f(b).

3. Periksa apakah f(a).f(b)> 0; jika ya, keluar dari progam karena pada interval yang diberikan tidak terdapat akar persamaan.

4. Hitung nilai m = (a+b)/2.

5. Jika nilai mutlak f(m) < toleransi, tuliskan m sebagai hasil perhitungan, dan akhiri program; jika tidak, lanjutkan ke langkah berikutnya.

6. Jika jumlah iterasi > iterasi maksimum, akhiri program. 7. Jika f(a).f(m)<0, maka b=m, jika tidak, a = m.

8. Kembali ke langkah (2).

Contoh:

Persamaan,

f

(

x

)=

x

x

−5

. cari akarnya! Langkah 1:

Nilai awal: batas bawah a=2, batas atas b=3, sehingga: f(2)=22-5= -1

f(3)=33-5=22 m=(2+3)/2=2.5

f(2.5)=(2.5)2.5-5=|4.8821| > 0.000001

Langkah 2:

karena f(a).f(m)= (-1)(4.8821) < 0, maka b=m, sehingga: a=2 _ f(2)=22-5= -1

b=2.5 _ f(2.5)=(2.5)2.5-5=4.8821 m=(2+2.5)/2=2.25

(35)

karena f(a).f(m)= (-1)(1.2003) < 0, maka b=m, sehingga: a=2 _ f(2)=22-5= -1

b=2.25 _ f(2.25)=(2.25)2.25-5=1.2003 m=(2+2.25)/2=2.125

f(2.125)=(2.125)2.125-5=|-0.0382|> 0.000001

Langkah 4:

karena f(a).f(m)= (-1)(-0.0382) > 0, maka a=m, sehingga: a=2.125 _ f(2.125)=22.125-5= -0.0382

b=2.25 _ f(2.25)=(2.25)2.25-5=1.2003 m=(2.125+2.25)/2=2.1875

f(2.1875)=(2.1875)2.1875-5=|0.5416|> 0.000001

Langkah 5:

karena f(a).f(m)= (-0.0382)(0.5416) < 0, maka b=m,sehingga: a=2.125 _ f(2.125)=22.125-5= -0.0382

b=2.1875 _ f(2.1875)=(2.1875)2.1875-5=0.5416 m=(2.125+2.1875)/2=2.1563

f(2.1563)=(2.1563)2.1563-5=|0.2430|> 0.000001

Seterusnya sampai didapatkan f(m)<toleransi yang disyaratkan. Langkah-langkah tersebut disusun

Dengan toleransi sebesar 10-6, pada langkah ke 23 iterasi berhenti dengan hasil

(36)

Implementasi dengan MATLAB:

Cara menggunakan program di atas untuk menyelesaikan persoalan

f

(

x

)=

x

x

−5

dalam

function m= TengahInterval(f,a,b,n)

% f=fungsi,a=nilai awal,b=nilai akhir,n=jumlah iterasi

format long % format angka yang dipakai 15 digit di belakang koma fa = f(a);

fb = f(b);

if fa*fb > 0.0 % jika nilai f(a) dan f(b) sama tanda error('pesan kesalahan:sama tanda')

end

for i=1:n

m=(a+b)/2; y=f(m);

disp([m y]) % menampilkan m dan f(m) ke layar

if abs(y) <= 0.000001 % toleransi dipenuhi (akar persamaan ditemukan)

break % menghentikan iterasi end

if fa*y < 0 b=m; else

a=m; end

(37)

MATLAB, di command window ketikkan perintah:

>>f=inline(‘x^x-5’) % mendefinisikan fungsi

f

(

x

)=

x

x

−5

>>x=TengahInterval(f,-1,3,15) % memanggil file tengahint.m a=-1,b=3, iterasi=15

dari dua perintah di atas MATLAB akan memberikan jawaban: m y

1 -4 2 -1

2.50000000000000 4.88211768802618 2.25000000000000 1.20027091141992 2.12500000000000 -0.03821735673994 2.18750000000000 0.54161544380854 2.15625000000000 0.24250328354650 2.14062500000000 0.09992110005946 2.13281250000000 0.03030574169645 2.12890625000000 -0.00409119118124 2.13085937500000 0.01307328653945 2.12988281250000 0.00448256839976 2.12939453125000 0.00019357102259 2.12915039062500 -0.00194933919712 2.12927246093750 -0.00087801640156

x =

(38)

Metode Newton Raphson

A. Tujuan

g. Memahami Metode Newton Raphson

h. Mampu Menentukan nilai akar persamaan dengan Metode Newton Raphson

i. Mampu membuat program untuk menentukan nilai akar dengan Metode Newton Raphson dengan Matlab

B. Perangkat dan Materi f. Software Matlab

g. Metode Newton Raphson

C. Dasar Teori

Metode Newton Raphson

Metode yang lebih baik dalam memilih g’(x) adalah dengan membuat garis singgung dari f(x) untuk nilai x yang dipilih, dan dengan menggunakan besaran x dari perpotongan garis singgung terhadap absis sehingga diperoleh nilai xbaru. Metode ini diperlihatkan pada gambar berikut.

(39)

f

'

(

x

i

)=

f

(

x

i

)−

0

Metode ini dikenal dengan Metode Newton-Raphson dan merupakan salah satu cara yang paling dikenal dalam metode penyelesaian fungsi f(x)=0. Keuntungan cara ini adalah sifat konvergensi kuadratik dalam proses iterasi.

Contoh:

Carilah akar dari fungsi

f

(

x

)=

x

3

−3

x

−20

maka

f

'

(

x

)=3

x

2

−3

Dengan demikian rumus untuk menentukan akarnya adalah :

x

i+1

=

x

i

(

x

f

(3.75)=3.75

3

−3

(3.75)−20=21.84844

f

'

(3.75)=3(3.75

)

2

−3=39.1875

x

2

=3.75−

21.4844

39.1875

=3.201754

Dan seterusnya

Algoritma program untuk metode Newton-Raphson

1. Tentukan fungsi, x0, toleransi, dan jumlah iterasi maksimum. 2. Hitung xbaru = x – f’(x0)/f(x0).

3. Jika nilai mutlak fxbaru < toleransi, diperoleh xbaru sebagai hasil perhitungan;

4. jika tidak, lanjutkan ke langkah berikutnya.

(40)

6. x = xbaru, dan kembali ke langkah (2).

Flow Chart Metode Newton Raphson

Implementasi dengan MATLAB

40

function x = MetodeNewton(f,x0,n,tol)

int i;

f0=inline(char(f)); % menyelesaikan persoalan f(x) = 0

dengan Metode Newton

g=inline(char(diff(f))); % dengan g sebagai fungsi

turunannya

.

x = x0;

i=0; % perkiraan awal x dengan nilai x0

fa=f0(x);

while abs(fa) > tol % lakukan sampai toleransi tercapai

fa=f0(x);

fb=g(x);

if fa == 0 or i=n

return % program berhenti jika f(x) = 0

end

(41)

Apabila di run dengan Command Window :

f =‘x^3-3*x-20’ >> f0=inline(char(f)) f0 =

Inline function: f0(x) = x^3-3*x-20 >> g=inline(char(diff(f))) g =

Inline function:h g(x) = 3*x^2-3

>> x=MetodeNewton(f,-2,20,0.000001) 0 0.4444 -22.0000

1.0000 -8.3806 -21.2455 2.0000 -5.5715 -583.4706 3.0000 -3.6161 -176.2331 4.0000 -2.0583 -56.4347 5.0000 0.2637 -22.5450 6.0000 -7.1781 -20.7728 7.0000 -4.7482 -368.3180 8.0000 -3.0029 -112.8032 9.0000 -1.4202 -38.0705 10.0000 4.6785 -18.6037 11.0000 3.5875 68.3674 12.0000 3.1548 15.4078 13.0000 3.0828 1.9339 14.0000 3.0809 0.0487 15.0000 3.0809 0.0000 16.0000 3.0809 0.0000 x =

(42)
(43)

METODE SECANT

A. Tujuan

j. Memahami Metode Newton Raphson

k. Mampu Menentukan nilai akar persamaan dengan Metode Secant l. Mampu membuat program untuk menentukan nilai akar dengan

Metode Secant dengan Matlab B. Perangkat dan Materi

h. Software Matlab i. Metode Secant C. Dasar Teori

Metode Secant

Merupakan perbaikan dari kekurangan yang dimiliki oleh metode

newton, yaitu nilai turunan f’(x) didekati dengan beda hingga ( Δ ).

Penentuan nilai turunan fungsi dengan metode Secant.

Dimana :

f

'

(

x

i

)=

Δf

'

(

x

i

)

Δx

i

f

'

(

x

i

)=

f

(

x

i

)−

f

(

x

i−1

)

x

i

x

i1

Sehingga bila dimasukkan ke dalam persamaan Newton-Raphson :

x

i+1

=

x

i

f

(

x

i

)

x

i

x

i−1

(44)

Contoh :

f

(

x

)=

x

3

−3

x

−20

Untuk perkiraan awal

x

1

=

6

f

(

6

)=

178

x

2

=

2

f

(

2

)=

18

Algoritma program untuk metode Secant adalah sebagai berikut: 1. Tentukan x0, x1 , toleransi, dan jumlah iterasi maksimum. 2. Hitung xbaru = x1 – f(x1)( x 1- x0)/f(x1) –f(x0).

3. Jika nilai mutlak (xbaru – x1) < toleransi, diperoleh tulisan xbaru sebagai hasil perhitungan;

4. jika tidak, lanjutkan ke langkah berikutnya.

5. Jika jumlah iterasi > iterasi maksimum, akhiri program. 6. x = xbaru, dan kembali ke langkah (2).

(45)

Impementasi Metode Secant dengan MATLAB :

Simpan fungsi di atas dengan naman MetodeSecant. Apabila di run lewat command windows hasilnya adalah : >> f=’x^3-3*x-20’ (diketikkan dahulu fungsinya) f =

x^3-3*x-20

>> f=inline(char(f)) (membuat fungsi x) f =

int i; % menyelesaikan persoalan f(x) = 0 dengan Metode

Secant

fa=f(x0); % f=fungsi yang akan dicari akarnya, x0=nilai

awal,x1=nilai akhir

fb=f(x1); % n=jumlah iterasi, tol=nilai toleransi

i=0;

while abs(x0-x1) > tol % lakukan sampai toleransi

tercapai

x = x1 - fb.*(x1-x0)./(fb-fa); % rumus Newton

disp([i x fa]) % menampilkan hasil hitungan

x0=x1;

(46)

x = 3.0809

Soal Tugas di rumah :

Dikumpulkan (Buat LAPORAN PRAKTIKUM)

1.

f

(

x

)=

x

3

+

x

2

−3

x

−3=0

Carilah akar x dengan tebakan awal

x

0

=

1

dan

x

1

=

2

dengan program Melab dengan Metode : a. Newton Raphson

b. Secant

Latihan di kelas :

1.

f

(

x

)=

e

x

x

dengan titik awal X0/ a = 0 dan x1/b = 1, carilah nilai x dengan program Matlab dengan Metode :

a. Newton Raphson b. Secant

Praktikum 3

LAPORAN SEMENTARA

Hari/Tanggal

:

Nama

:

Nim

:

Kelas

:

(47)

METODE REGULA FALSI

A. Tujuan

a. Memahami Metode Regula Falsi

b. Mampu Menentukan nilai akar persamaan dengan Metode Regula Falsi c. Mampu membuat program untuk menentukan nilai akar dengan Metode

Regula Falsi dengan Matlab B. Perangkat dan Materi

d. Software Matlab

j. Metode Regula Falsi

C. Dasar Teori

Metode Regula Falsi atau Interpolasi Linier

Metode ini sangat mirip dengan metode bisection, perbedaannya hanya dalam menentukan nilai m-nya.

m

=

b

f

(

b

)(

b

a

)

f

(

b

)−

f

(

a

)

Penentuan nilai m dari perpotongan garis lurus melalui dua titik.

Proses dengan cara ini memberikan perhitungan yang lebih cepat dibandingkan dengan metode bisection. Algoritma untuk metode ini sama dengan metode bisection, hanya pada bagian menentukan nilai m disesuaikan dengan rumus yang ada.Algoritma tersebut adalah:

1. Tentukan fungsi f(x), batas bawah a, batas atas b, toleransi, dan jumlah iterasi

maksimum.

(48)

3. Periksa apakah f(a).f(b)> 0; jika ya, keluar dari progam karena pada interval yang

diberikan tidak terdapat akar persamaan. 4. Hitung nilai

m

=

b

f

(

b

)(

b

a

)

f

(

b

)−

f

(

a

)

5. Jika nilai mutlak f(m) < toleransi, tuliskan m sebagai hasil perhitungan, dan akhiri

program; jika tidak, lanjutkan ke langkah berikutnya. 6. Jika jumlah iterasi > iterasi maksimum, akhiri program. 7. Jika f(a).f(m)<0, maka b = m, jika tidak, a = m.

8. Kembali ke langkah (2).

Contoh : cari akar persamaan

f

(

x

)=

x

3

x

2

−1

dengan toleransi:

10

−6

Langkah 1:

Nilai awal: batas bawah a=0, batas atas b=2, sehingga:

f

(

0)=0

3

−0

2

−1=−1

f

(

2)=2

3

−2

2

−1=3

m

=

2

3

(

2

0

)

3

−(−

1

)

=

0 .5

f

(

0.5

)=

0.5

3

0.5

2

1

=|−

1.1250000

|>

0.000001

Langkah 2:

karena f(a).f(m)= (-1)( -1.1250000) > 0, maka a = m, sehingga: a=0.5, b=2

f

(0.5

)=0.5

3

−0.5

2

−1=−1 .1250000

f

(

2)=2

3

−2

2

−1=3

m

=

2

3

(

2

0 .5

)

3

−(−

1. 125

)

=

0. 909091

f

(

0.909091

)=(

0.909091

)

3

−(

0.909091

)

2

1

=|−

1.07513141

|>

0.000001

Langkah 3:

karena f(a).f(m)= (-1.1250000)( -1.07513141) > 0, maka a=m, sehingga: a=0.909091, b=2

f

(0. 909091

)=(

0.909091)

3

−(

0.909091

)

2

−1=−1.07513141

(49)

m

=

2

3

(

2

0 .909091

)

3

−(−

1.07513141

)

=

1 .196903

f

(

1.196903

)=(

1.196903

)

3

−(

1.196903

)

2

1

=|−

0.717921331

|>

0.000001

Langkah 4:

karena f(a).f(m)= (-1.07513141)(-0.717921332) > 0, maka a=m, sehingga: a=1.196903, b=2

f

(1.196903)=(

1. 196903)

3

−(1.196903)

2

−1=−0.717921332

f

(

2)=2

3

−2

2

−1=3

m

=

2

3

(

2

1. 196903

)

3

−(−

0 .717921332

)

=

1.351979027

f

(

1.351979

)=(

1.351979

)

3

−(

1.351979

)

2

1

=|−

0.35663608

|>

0.000001

Langkah 5:

karena f(a).f(m)= (-0.717921332)( -0.35663608) > 0, maka a=m, sehingga: a=1.351979, b=2

f

(1.351979)=(

1. 351979

)

3

−(

1.351979)

2

−1=−0 .35663608

f

(

2)=2

3

−2

2

−1=3

m

=

2

3

(

2

1 .351979

)

3

−(−

0 .35663608

)

=

1. 420829976

f

(

1.420829976

)=(

1.420829976

)

3

−(

1.420829976

)

2

1

=|−

0.1.5044619

|>

0.000001

Seterusnya sampai toleransi yang disyaratkan tercapai.

Perhitungan dapat dilihat dalam tabel berikut :

Langkah-langkah penyelesaian persamaan

f

(

x

)=

x

3

x

2

−1

dengan metode regula falsi

(50)
(51)

Implementasi dalam MATLAB

Berikut ini, kode dalam MATLAB untuk menyelesaikan persamaan non linier dengan metode regula falsi.

Cara mengunakan program di atas untuk menyelesaikan persoalan

f

(

x

)=

x

3

x

2

−1

dalam command window MATLAB, ketikkan perintah:

>>f=inline(‘x^3-x^2-1’) % mendefinisikan fungsi f(x)=x3-x2 -1

>>m=regfalsi(f,1,2,20) % memanggil file regfalsi.m a=1,b=2, iterasi=20 m y

format long % format angka yang dipakai 15 digit di

belakang koma

(52)

Praktikum 2

LAPORAN SEMENTARA

Hari/Tanggal :

Nama:

Nim:

Kelas:

TTD Dosen/Asisten:

1.46551929414272 -0.00018242496629

1.46573926880956 0.00059033482427 1.46557428780943 0.00001073416219 1.46553304255940 -0.00013413711025 1.46554335387191 -0.00009792037557 1.46555108735629 -0.00007075735056 1.46555688746957 -0.00005038481518 1.46556123755454 -0.00003510526367

x =

1.46556123755454

Soal Tugas di rumah:

Dikumpulkan (Buat LAPORAN PRAKTIKUM)

1.

f

(

x

)=

e

x

4

x

dengan titik awal a = 0 dan b = 1, carilah nilai x dengan program Matlab dengan Metode :

a. Biseksi b. Regula Falsi

Latihan di kelas :

1.

f

(

x

)=

e

x

x

dengan titik awal a = 0 dan b = 1, carilah nilai x dengan program Matlab dengan Metode :

(53)

Chapter 3

PENYELESAIAN

PERSAMAAN DIFFERENSIAL

BIASA

Metode Euler

Metode Euler adalah Metode hampiran paling sederhana untuk menyelesaikan masalah nilai awal:

………..(1)

Biasanya diasumsikan bahwa penyelesaian y(t) dicari pada interval terbatas

yang diketahui .

Kita tidak akan secara eksplisit menari fungsi dapat dideferensialkan (diturunkan) yang memenuhi persamaan (1) melainkan menghitung sejumlah pasangan nilai sebagai pendekatan fungsi penyelesaian

tersebut yakni .

Pada metode ini interval yang deberikan dibagi menjadi n interval, masing-masing sepanjang h.

Misalkan kita hendak mencari penyelesaian numeric untuk persamaan (1) pada interval [a,b].

Misalkan

adalah suatu posisi pada [a,b] sedemikian sehingga :

untuk k = 1,2,… , n

Misalkan . Apabila diketahui, maka kita dapat menghitung nilai .

Persamaan garis ini adalah . Garis

ini merupakan garis singgung kurva penyelesaian pada .

Selanjutnya, tentukan titik pada garis ini yang memiliki absis . Ordinat

ini adalah

.

Sekarang merupakan hampiran penyelesaian .

(54)

CONTOH :

Misalkan akn menghitung hampiran penyelesaian masalah nilai awal :

Masalah nilai awal ini mempunyai penyelesaian eksak

Berikut perintah-perintah dalam matlab dengan metode euler.

Dalam command windows kita coba running

f=inline('(t-y)/2') % fungsi ditulis di command windows dulu f =

Inline function: f(t,y) = (t-y)/2

>> [t1,y1]=euler4pdb(f,10,0,3,1); >> ye1=3*exp(-t1/2)-2+t1;

>> [t2,y2]=euler4pdb(f,20,0,3,1); >> ye2=3*exp(-t2/2)-2+t2;

>> [t3,y3]=euler4pdb(f,50,0,3,1); >> ye3=3*exp(-t3/3)-2+t3;

>> plot(t1,y1,'o',t2,y2,'+',t3,y3,'*',t3,ye3)

Hasil Running program di atas dapat diperoleh grafik berikut :

function [t,y]=euler4pdb(f,n,a,b,y0)

%fungsi euler4pdb.m (metode euler);

%menghitung hampiran penyelesaian masalah niai awal

%y'=f(t,y), y(0) = y0 pada [a,b]

%menggunakan n langkah dengan lebar langkah (b-a)/n

h = (b-a)/n;

t = [a]; y = [y0];

for k = 2:n+1,

t = [t;a+(k-1)*h];

(55)

Gambar 1 : solusi ekasakdan 3 hampiran penyelesaian PD

.

Berikut ini adalah perintah untuk menampilkan tabel perbandingan ketiga hampiran. Kolom pertama adalah nilai kolom kedua nilai hampiran

dengan lebar langkah h = 0.3, kolom ketiga nilai hampiran dengan lebar langkah 0.15, kolom keempat nilai hampiran dengan lebar langkah h = 0.06, dan kolom terakhir adalah nilai eksaknya.

tabel=[t1 y1 y2(1:2:21) y3(1:5:51),ye3(1:5:51)] tabel =

0 1.0000 1.0000 1.0000 4.0000 0.3000 0.8500 0.8669 0.8762 3.5821 0.6000 0.7675 0.7963 0.8123 3.2225 0.9000 0.7424 0.7792 0.7998 2.9129 1.2000 0.7660 0.8079 0.8314 2.6464 1.5000 0.8311 0.8757 0.9009 2.4171 1.8000 0.9314 0.9771 1.0030 2.2197 2.1000 1.0617 1.1072 1.1331 2.0498 2.4000 1.2175 1.2618 1.2871 1.9036 2.7000 1.3949 1.4373 1.4618 1.7777 3.0000 1.5906 1.6309 1.6542 1.6694

Tugas :

(56)

Dengan lebar langkah h = 0.05.

2. Gunakan metode Euler untuk mendapatkan hampiran penyelesaian masalah nilai awal di bawah ini di sepuluh titk dengan lebar langkah (a). h = 0.1, (b). h = 0.01, (c). h = 0.001

Jelaskan bahwa solusi eksak PD adalah :

Gambar grafik solusi eksak tersebut bersama titik-titik hampiran yang Anda peroleh di a,b, dan c.

Metode Runge – Kutta

Pada Metode Euler nilai

y

k+1 dihitung dengan menggunakan

y

k memakai rumus :

y

k+1

=

y

k

+

hf

(

t

k

, y

k

)

Metode ini disebut metode satu langkah karena informasi dari satu langkah sebelumnya digunakan untuk menghitung hampiran sekarang. Oleh karena itu galat di dalam metode Euler adalah O(h), kita perlu memilih lebar langkah yang sangat kecil untuk mendapatkan keakuratan yang diinginkan. Galat di dalam metode Runge – Kutta jauh lebih kecil daripada galat Metode Euler.

Ide belakang Metode Runge - Kutta adalah menghitung nilai

f

(

t , y

)

pada beberapa titik di dekat kurva penyelesaian yang dipilih dengan

metode tertentu di dalam interval

(

t

k

, t

k

+

h

)

dan mengombinasikan nilai-nlai ini sedemikian sehingga diperoleh keakuratan yang baik pada

hampiran berikutnya,

y

k+1 .

(57)

Menghitung hampiran penyelesaian masalah nilai awal

y'

=

f

(

t , y

)

Pada metode ini

y

k+1 dihitung dengan menggunakan langkah – langkah

sebagai berikut:

S

2 digunakan untuk menghitung hampiran selanjutnya

y

k+1 .

Aturan di atas diperoleh sebagai berikut:

Misalkan kita akan menyelesaikan masalah nilai awal :

y'

(

t

)=

f

(

t , y

(

t

))

pada

[

a ,b

]

dengan

y

(

t

0

)=

y

0

(58)

h

=

t

k+1

t

k untuk menghitung hampiran suku integral, diperoleh hampiran :

y

(

t

k+1

)≈

y

(

t

k

)+

h

2

[

f

(

t

k

, y

k

)+

f

(

t

k+1

, y

k+1

)

]

suku kedua pada ruas kanan memuat nilai ruas kiri ,

y

k+1 .

Kita dapat menggunakan Metode Euler untuk menaksir

y

k+1 pada ruas

kanan, sehingga diperoleh Metode Heun :

y

(

t

k+1

)=

y

(

t

k

)+

h

2

[

f

(

t

k

, y

k

)+

f

(

t

k+1

, y

k

+

hf

(

t

k

, y

k

))

]

Galat pada setiap langkah dalam Metode Heun (Atau Metode RK2) sama dengan galat aturan trapezium, yakni

y

n

(

ε

k

)

h

3

12

oleh karena itu, galat setelah n langkah pada Metode Heun menjadi :

Dengan demikian kita peroleh bahwa galat pada setiap langkah (iterasi) dalam Metode Heun (RK2) adalah

O

(

h

3

)

. Sedangakan galat yang terakumulasi pada akhir setiap lankah adalah

O

(

h

2

)

.

Contoh :

Gunakan Metode Heun (RK2) untuk menyelesaikan masalah nilai awal :

y'

=(

t

y

)/

2

pada [0, 3] dengan y(0) = 1, dengan menggunakan lebar

Rumus Iterasi Heun untuk hampiran solusi PD tersebut adalah :

y

k+1

=

y

k

+

h

Penyelesaian eksak masalah nilai awal di atas adalah :

y

=

e

t/2

+

t

2

.

(59)

Chapter 4

diselesaikan dengan rumus-rumus aljabar yang sudah baku.

Solusi SPL secara numeris umumnya selalu (harus) lebih efisien dan cepat dibandingkan dengan metode-metode analitis, seperti metode Cramer. Namun demikian, solusi numerik ini secara teknis adakalanya juga berkendala, karena:

(1) ada beberapa persamaan yang mendekati kombinasi linier, akibat adanya

round off error” dari mesin penghitung pada,

(2) suatu tahap perhitungan adanya akumulasi “round off error” pada proses komputasi akan berakibat domain bilangan nyata (fixed point) dalam perhitungan akan terlampaui (overflow), biasanya akibat dari jumlah persamaan yang terlalu besar.

Metode-metode solusi numerik yang banyak dipakai, dapat diklasifikasikan sebagai:

1. Metode Langsung

a. Metode Langsung Eliminasi Gauss (EGAUSS), prinsipnya: merupakan operasi eliminasi dan substitusi variabel-variabelnya sedemikian rupa sehingga dapat terbentuk matriks segitiga atas, dan akhirnya solusinya diselesaikan menggunakan teknik substitusi balik

(backsubstitution),

b. Metode Eliminasi Gauss ini. Eliminasi Gauss-Jordan (EGJ), prinsipnya: mirip sekali dengan metode EG, namun dalam metode ini jumlah operasi numerik yang dilakukan jauh lebih besar, karena matriks

A mengalami inversi terlebih dahulu untuk mendapatkan matriks identitas (I). Karena kendala tersebut, maka metode ini sangat jarang dipakai, namun sangat bermanfaat untuk menginversikan matriks, c. Dekomposisi LU (DECOLU), prinsipnya: melakukan dekomposisi

(60)

d. Solusi sistem TRIDIAGONAL (S3DIAG), prinsipnya merupakan solusi SPL dengan bentuk matrik pita (satu diagonal bawah, satu diagonal utama, dan satu diagonal atas) pada matriks A.

2. MetodeTak-Langsung (Metode Iteratif)

a. Metode Jacobi, prinsipnya: merupakan metode iteratif yang melakuakn perbaharuan nilai x yang diperoleh tiap iterasi (mirip metode substitusi berurutan, successive substitution),

b. Metode Gauss-Seidel, prinsipnya: mirip metode Jacobi, namun efisien dan ‘time consuming’ (memerlukan CPU- time) yang jauh lebih besar dari metode langsung.

Metode Eliminasi Gauss, metode Dekomposisi LU dan Metode Iterasi Jacobi merupakan metode yang dapat dijadikan sebagai alternatif untuk menyelesaikan model matematika. Metode Eliminasi Gauss mereduksi matriks koefisien A ke dalam bentuk matriks segitiga, dan nilai-nilai variabel diperoleh dengan teknik substitusi. Pada metode Dekomposisi LU, matriks A difaktorkan menjadi matriks L dan matriks U, dimana dimensi atau ukuran matriks L dan U harus sama dengan dimensi matriks A.

Pada metode iterasi Jacobi, penyelesaian dilakukan secara iterasi, dimana proses iterasi dilakukan sampai dicapai suatu nilai yang konvergen dengan toleransi yang diberikan. Dari hasil pengujian dapat diketahui bahwa metode Iterasi Jacobi memiliki hasil ketelitian yang lebih baik dan waktu komputasi yang lebih cepat dari metode Eliminasi Gauss dan metode Dekomposisi LU.

Penggunaan pendekatan dengan pemrograman MATLAB, salah satu software komputer yang dapat digunakan untuk memberikan solusi komputasi numerik. Karena metode – metode numerik dengan bahasa pemrograman yang sederhana, namun dapat menyelesaikan permasalahan yang dihadapi oleh mereka yang bergerak dalam bidang matematika maupun aplikasi matematika.

B. Rumusan Masalah

Dari uraian di atas, dapat dirumuskan permasalahannya.

1. Apakah urutan persamaan di dalam suatu SPL berpengaruh terhadap penampilan metode iterasi Jacobi?

2. Apakah program MATLAB 7 dapat digunakan sebagai solusi pemrograman dalam metode numerik khususnya metode

iterasiJacobi?

(61)

Dalam makalah ini akan membahas tentang penggunaan metode

iterasi Jacobi dalam penyelesaian Sistem Persamaan Linear (SPL) berukuran

besar dengan persentase elemen nol pada matriks koefisien besar dengan pemrograman MATLAB 7 for Windows.

D. Tujuan

Tujuan penulisan makalah sebagai berikut.

1. Memberikan solusi dalam memperoleh urutan persamaan di dalam suatu SPL dengan menggunakan metode iterasi Jacobi.

2. Penggunaan MATLAB 7 untuk membantu menyelesaikan pemrograman dalam penyelesaian Sistem Persamaan Linear (SPL) dengan metode iterasi Jacobi.

E. Manfaat

Dapat diambil manfaatnya sebagia berikut.

1. Dapat digunakan sebagai solusi dalam memperoleh urutan persamaan di dalam suatu SPL berukuran besar dengan menggunakan metode

iterasi Jacobi.

2. Memberi kemudahan dalam menyelesaikan Sistem Persamaan Linear (SPL) berukuran besar dengan metode iterasi Jacobi dengan pemrograman MATLAB 7 for Windows.

PEMBAHASAN

A. Iterasi Jacobi

Metode ini merupakan suatu teknik penyelesaian SPL berukuran n x n, AX

= b, secara iteratif. Proses penyelesaian dimulai dengan suatu hampiran awal terhadap penyelesaian, X0, kemudian membentuk suatu serangkaian vector

X1, X2, … yang konvergen ke X.

Teknik iteratif jarang digunakan untuk menyelesaikan SPL berukuran kecil karena metode-metode langsung seperti metode eliminasi Gauss lebih efisien dari pada metode iteratif. Akan tetapi, untuk SPL berukuran besar dengan persentase elemen nol pada matriks koefisien besar, teknik iteratif lebih efisien daripada metode langsung dalam hal penggunaan memori

(62)

START

STOP

AX = b

ii i

j ij j i

i

a

y

a

b

x

Input A, b, X0, T, N

xi = ( x1 x2 x3 …xn) [X, g, H]= jacobi(A,b,X0,T,N)

INPUT : n, A, b, dan Himpunan awal Y = (y1 y2 y3…yn)T, batas toleransi T, dan maksimum iterasi N.

OUTPUT: X = (x1 x2 x3 ..xn)T, atau pesan “ gagal “.

LANGKAHLANGKAH :

1. set penghitung iterasi ke =1 2. WHILE k ≤ n DO

(a) FOR i = 1, 2, 3, ..., n, hitung

x

i

=

b

i

ji

a

ij

y

j

a

ii

(b) Set X = (x1 x2 x3 ..xn)T

(c) IF

X

Y

< T THEN STOP

(d) Tambahan penghitung iterasi, k = k + 1 (e) FOR i = 1, 2, 3, ..., n, Set yi = xi

(f) set Y = (y1 y2 y3 ..yn)T 3. STOP

(63)

D. Iterasi Jacobi dengan Menggunaan Matlab 7

Dalam bentuk matriks, rumus iterasi dapat dinyatakan sebagai X(k) = D-1(b-(L+U)X(k-1)),

Dengan A = L + D + U ( L matriks segitiga bawah, D matriks diagonal, U Matriks segitiga atas).

Berikut adalah gambaran bagaimana penggunaan metode iterasi Jacobi dengan sebuah contoh. Misalkan kita ingin menyelesaikan SPL.

10x1 – x2 +2 x3 = 6

1. Nyatakan x1 dari persamaan (P1) dalam x2, x3, dan x4, 2. Nyatakan x2 dari persamaan (P2) dalam x1, x3, dan x4, 3. Nyatakan x3 dari persamaan (P3) dalam x1, x3, dan x4, 4. Nyatakan x4 dari persamaan (P4) dalam x1, x2, dan x3.

Hasilnya adalah SPL hampiran pertama terhadap penyelesaian SPL tersebut adalah

(64)

x

4

=

15

8

=

1.8750

= 2

Sekarang dengan menggunakan nilai – nilai ini pada ruas kanan persamaan (P5) – (P8), kita dapat menghitung hampiran kedua. Proses ini dapat diulang-ulang sampai keakuratan hampiran yang diinginkan tercapai. Berikut adalah hasil proses iterasi dengan menggunakan

Setelah iterasi ke-8 diperoleh hampiran penyelesaian

x = (1.00063 1.99867 -0.999036 0.998888)T

bandingkan dengan penyelesaian eksaknya, yakni x = (1 2 -1 1)T.

Menyelesaikan contoh SPL berikut ini dengan menggunakan

E. Penulisan Logaritma dalam Layar Editor MATLAB 7

(65)

relerr = err/(norm(X1)+ eps); X0 = X1;

H = [H;X0'];

if (err<T)|(relerr<T),break,end end

Layar Editor MATLAB 7

F. Hasil Output fungsi MATLAB 7

Berikut adalah contoh pemakaian fungsi MATLAB 7 jacobi dan hasil keluaran dari yang diperoleh:

>> A=[2 -1 10 0;0 3 -1 8;10 -1 2 0;-1 11 -1 3] A =

2 -1 10 0 0 3 -1 8 10 -1 2 0 -1 11 -1 3 >> b=[-11;-11;6;25] b =

-11 -11 6 25

>> X0=[0;0;0;0] X0 =

0 0 0 0

(66)

T = matriks A. MATLAB memberikan penyelesaian sebagai berikut.

(67)

X = tersebut? Dengan mengubah susunan SPL, yakni persamaan pertama dan kedua dipindah menjadi persamaan ketiga dan keempat, metode Jacobi ternyata berhasil memberikan penyelesaian tersebut, sebagaimana terlihat pada hasil keluaran MATLAB berikut.

Gambar

Gambar 1 : solusi ekasakdan 3 hampiran penyelesaian PD
Tabel 1 : Cara menghitung selisih terbagi Newton
Tabel contoh 1:

Referensi

Dokumen terkait

 Mahasiswa diminta untuk menyelesaikan beberapa masalah nilai awal yang penyelesaian eksaknya sebelumnya sudah diperoleh pada pertemuan sebelumnya, dengan menggunakan metode

Pada subbab sebelumnya telah diketahui hasil penyelesaian numerik dari persamaan gelombang dua dimensi dengan metode beda hingga skema eksplisit CTCS Central Time Central Space..

Berdasarkan contoh kasus yang dibahas dalam tulisan ini, penyelesaian numerik akan mendekati penyelesaian eksak dengan hampiran yang cukup baik, bahkan dengan tingkat kesalahan

Langkah – langkah mencari himpunan penyelesaian dengan metode grafik ganda: 1) Menginisialisasi nilai x dalam fungsi. 3) Menentukan interval garis pada sumbu x dan sumbu

Karena metode numerik menggunakan pendekatan untuk mencari penyelesaian suatu persoalan matematika, maka terdapat perbedaan antara jawaban pendekatan tadi dengan

Tujuan dilakukannya penelitian ini adalah untuk membuat kode program solusi numerik Persamaan difusi neutron pada teras reaktor nuklir dengan metode iterasi Jacobi paralel

Bandingkan dengan apabila menggunakan software QM for windows dan sampai pada berapa iterasi untuk menuju solusi optimal.. Jelaskan

Langkah pertama, menentukan dua nilai x (Xa dan Xb) sebagai nilai awal perkiraan. Kedua nilai ini  harus memenuhi syarat persamaan 1.2