Bahan Kuliah Ke 3 Metoda Numerik

Embed Size (px)

DESCRIPTION

metnum

Citation preview

B A B I

Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa SipilBab II hal. #

PimLISMAM MJMME

PENDAHULUAN

Untuk mendapatkan penyelesaian matematika yang menjabarkan model suatu persoalan nyata bidang rekayasa, sering solusi yang dicari berupa suatu nilai variabel x sedemikian rupa sehingga terpenuhi persamaan f(x) = 0 yang digunakan dalam model. Dalam beberapa kasus, melalui faktorisasi f(x) = 0 dapat diperoleh penyelesaian seperti yang diinginkan; akan tetapi, lebih banyak jabaran persamaan dalam model mempunyai bentuk yang rumit, sehingga teknik analisis matematika murni tidak dapat memberikan solusi.

Contoh

Sebuah bola baja berjari-jari 1cm dibakar merata sampai mencapai temperatur 100C. Bola ini kemudian disimpan di dalam ruang pendingin dengan temperatur 0C. Dengan anggapan ada perambatan panas, maka konduksi panas dapat dinyatakan dalam persamaan fungsi untuk

2

n

(inX n jx(n)exp[ - X

0; proses menemukan m baru dilakukan seperti prosedur yang telah dijelaskan.

Gambar 2.2

Penentuan nilai tengah m interval metode Bisection

Metode Bisection adalah salah satu kelas metode Pengelompokan, karena prosedur untuk mendapatkan nilai x untuk f(x) = 0 dilakukan melalui pendekatan kelompok akar. Metode ini tidak sepenuhnya memanfaatkan data f(x) bagi penentuan nilai x. Misalnya, tidak digunakannya ukuran relatif f(a) dan f(b), karena umumnya jika f(a) < f(b) dalam nilai mutlaknya, maka akar persamaan akan terletak lebih dekat ke f(a), seperti dijelaskan di Gambar 2.2. Salah satu cara efektif mendapatkan nilai m ini adalah menghubungkan f(a) dan f(b) dengan garis lurus dan perpotongan garis ini dengan absis x merupakan nilai m, seperti dijelaskan pada Gambar 2.3.

Penetapan m ini dikenal dengan cara REGULA FALSI dan algoritmanya sama seperti metode Bisection, kecuali mengganti penentuan m dengan rumusan :

m = a -

Gambar 2.3

Penentuan nilai m dari perpotongan garis lurus melalui dua titik.

(b - a) x f(b) f(b) - f(a)

Proses dengan cara ini memberikan perhitungan yang lebih cepat dibandingkan dengan metode Bisection, walaupun pada kasus yang khusus dapat juga terjadi proses cantelan, baik pada a ataupun b, yang memperlambat perhitungan.

Gambar 2.4 Syarat lengkap kecermatan.

Pada algoritma, proses memang dihentikan jika dicapai nilai mutlak f(m) < 10-6, tetapi untuk kecermatan hasil, kriteria ini belum cukup. Dengan memperhatikan dua sifat kurva seperti pada Gambar 2.4, maka syarat kecermatan yang tepat adalah (a)Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa SipilBab II hal. #

Metode Numerik Dalam Ilmu Rekayasa SipilBab II hal. #

Penyelesaian Numerik Persamaan Non-Linear Untuk menghindari masalah yang mungkin terjadi bagi perilaku persamaan yang tidak dapat dilacak, perlu pembatasan tinjauan interval sesuai dengan sifat fungsi. Hal ini penting dalam teknik numerik untuk memperoleh solusi nyata. Sebagai penjelasan, jika cot x = 1/(2x).

yang bila akan dicari besaran x persamaan ini, bentuk persamaan diubah menjadi

f(x) = tan x - 2x = 0,(2.3)

maka dengan mengabaikan akar x = 0 yang bukan solusi persamaan dasar, terlihat bahwa metode Bisection atau Regula Falsi tidak akan memberikan solusi. Hal ini perlu disadari bahwa fungsi f(x) bukan fungsi kontinu untuk nilai kelipatan ganjil dari n/2, seperti dijelaskan di Gambar 2.5.

Gambar 2.5 Fungsi periodik y = tan x diskontinu pada kelipatan ganjil n/2.

Algoritma Program

Algoritma program untuk metode Bisection

. Tentukan a, b, toleransi, dan jumlah iterasi maksimum.. Periksa apakah f(a) x f(b) > 0; jika ya, keluar dari progam karena pada selang yang

diberikan tidak terdapat akar persamaan.

. Hitung nilai m = (a + b)/2. Jika nilai mutlak (b-a) < toleransi, tuliskan m sebagai hasil perhitungan, dan akhiri

program; jika tidak, lanjutkan ke langkah berikutnya.

. Jika jumlah iterasi > iterasi maksimum, akhiri program.. Jika f(a) x f(m) < 0, maka b = m; jika tidak, a = m.. Kembali ke langkah (c).

Algoritma program untuk metode Regula Falsi

. Tentukan a, b, toleransi, dan jumlah iterasi maksimum.. Periksa apakah f(a) x f(b) > 0; jika ya, keluar dari progam karena pada selang yang

diberikan tidak terdapat akar persamaan.

. Hitung nilai m = a - f(b) x (b - a) / [f(b) - f(a)].. Jika nilai mutlak (m-a) < toleransi, tuliskan m sebagai hasil perhitungan, dan akhiri

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

2.2.2 Bagan Alir Program

Dalam mempersiapkan program sumber, algoritma dijabarkan dalam bentuk bagan alir yang dapat dilihat pada dua bagan berikut ini.

METODE ITERASI

Bentuk lain metode penentuan akar persamaan adalah dengan memulai suatu perkiraan harga akar persamaan, yang kemudian dengan serangkaian nilai perkiraan ini, mulai x0 (perkiraan awal),xux2,...,xk, akhirnya konvergen padaX,yaituxkcukup dekat pada X

menurut tingkat kecermatan yang diinginkan.

Metode perkiraan awal untuk satu variabel disebut METODE ITERASI TUNGGAL. Dalam hal ini fungsi f(x) ditulis sebagai :

f(x) = x - g(x) = 0, sehingga X = g(X),(2.4)

kemudian xk+j = g(xk ),k = 0,1,2,...(2.5)

Persamaan (2.4) dan (2.5) merupakan rumusan iterasi.

Contoh

Untuk mendapatkan akar persamaan x3 - 3x - 20 = 0, langkah pertama yang dilakukan adalah mengubah persamaan dalam bentuk f(x) = x - g(x). Perubahan ini dapat dilakukan melalui empat cara :

. x - (3x + 20)1/3=0. x - (x3 - 20)/3=0.x - 20/(x2 - 3)= 0.x - (3 + 20/x)1/2 = 0

Dengan menggunakan bentuk pertama dapat dinyatakan rumusan : x k+1 = (3xk + 20)1/3 , k = 0,1,2,.... dan dengan perkiraan awal x0 = 5, diperoleh x0 = 5

x1 = (3 * 5 + 20)1/3 = 3.2771 x2 = (3 * 3.2771 + 20)1/3 = 3.1008 x3 = 3.0830

x4 = 3.0811 ; x5=3.0809

x6 = 3.0809 ; x7=3.0809

Karena nilai x sudah konstan pada harga 3.0809, dilakukan pemeriksaan harga f(x). Diperoleh f(3.0809) = 0.0010. Jika simpangan kesalahan ini dapat diabaikan, maka harga x = 3.0809 merupakan solusi.

Metode iterasi yang diuraikan ini disebut CARA PENDEKATAN BERURUT. Secara geometri yang dilakukan adalah menemukan perpotongan dua kurva y = x dan y = g(x), seperti pada Gambar 2.6.

Gambar 2.6

Geometri fungsi f(x) = x - g(x)

Terlihat mudah mendapatkan akar persamaan dengan proses tersebut, bila dipahami benar

perilaku fungsi. Jika diamati tiga cara penulisan f(x) sebagai x - g(x) :

. x - (x3 - 20) / 3 = 0.x - 20/ (x2 - 3) = 0.x - (3 + 20/x)1/2 = 0, dan menggunakan perkiraan awal x0 = 5,

maka seri besaran xk , k = 0,1, 2, ..., memberikan hasil seperti tercantum dalam Tabel 2.1.

k

Cara ii

Cara iii

Cara iv

0

5

5

5

1

35

0.9091

2.6458

2

14285

-9.2015

3.2495

3

(tidak banyak manfaatnya untuk dilanjutkan)

3.0257

4

3.1

5

3.0743

6

3.0831

7

3.0801

8

3.0811

9

3.0808

Tabel 2.1 Hasil perhitungan metode Iterasi.

Dari contoh hitungan dapat dilihat bahwa cara iterasi tidak selalu dapat digunakan. Guna mengetahui pada awal proses bahwa metode ini dapat dipakai, perlu diperiksa bentuk fungsi. Sajian grafik bentuk fungsi cara ii - iv adalah seperti pada Gambar 2.7.

Gambar 2.7

Sajian fungsi y = g(x) cara (iii) dan (iv)

Dengan meneliti grafik tampak bahwa bagi cara ii dan iii, garis singgung y = g(x) lebih tajam daripada garis singgung y = x dekat nilai akar; sedangkan pada cara i dan cara iv, garis singgung y = g(x) tidaklah setajam garis singgung y = x dekat nilai x = 3. Secara matematika, ini berarti nilai absolut g (x) < 1 di dekat nilai akar. Dengan demikian, konvergensi dari solusi metode iterasi dapat dilacak dari perilaku turunan pertama fungsi.

Perhatikan gambar 2.8. Turunan fungsi g (x) berada pada nilai 0 < g(x) < 1 untuk jaminan hasil iterasi konvergen.

Gambar 2.8 Turunan fungsi g(x) < 1 = y = 1.

Algoritma Program

Algoritma program dengan metode Iterasi

. Tentukan xo, toleransi, dan jumlah iterasi maksimum.. Hitung xbaru = g(xo).. Jika nilai mutlak (xbaru - xo) < toleransi, diperoleh tulisan xbaru sebagai hasil perhitungan;

jika tidak, lanjutkan ke langkah berikutnya.

. Jika jumlah iterasi > iterasi maksimum, akhiri program.. xo = xbaru , dan kembali ke langkah (b).Bagan Alir Program

Dalam mempersiapkan program sumber, algoritma dijabarkan dalam bentuk bagan alir berikut, dan bagan alir metode ini dapat dilihat pada Bagan 2.3.2.1.

2.3.2.1 Bagan Alir Metode Iterasi

METODE NEWTON-RAPHSON

Gambar 2.9 Garis singgung f(xk) memotong di xk+i

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 x baru. Metode ini diperlihatkan pada Gambar 2.9.

Dari diagram ini terlihat tagensial (garis singgung) f(x) adalah :

(2.6)

(2.7)

(2.8)

f(x ) = f(xk)- f(xk + j)

(xk - xk +1)

f(x ) =f(xk>

(xk xk +1)

sehingga x k+j = x k - f( x k ) / f(x k), k = 0,1,2,....

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, karena terjadinya koreksi digit ganda di setiap proses.

Contoh

f(x) = x3 - 3x - 3x - 20 , maka f(x) = 3x2 - 3 Dengan demikian x k+1 = x k - ( x3k - 3xk - 20) / (3x2k - 3). Perkiraan awal xo = 5

x3 = 3.0859 x4 = 3.0809 x5 = 3.0809

x0 = 5 x1 = 3.75 x2 = 3.2018Penyelesaian Numerik Persamaan Non-Linear

Metode Numerik Dalam Ilmu Rekayasa SipilBab II hal. #

Kekurangan metode ini adalah :

. Harus mencari f(x), dan nilainya mungkin 0.. Tidaklah sederhana melacak proses untuk konvergen.. Dalam perhitungan ada kemungkinan besar proses memberikan hasil divergen, kecuali

nilai perkiraan awal x cukup tepat.

Konvergensi Metode Newton-Raphson

Dengan memperhatikan rumusan

Xk=i = Xk - f (Xk )/f (Xk ), k = 0, 1, 2, ... dan syarat konvergensi | g (x) | < 1, berarti

g'(x >= dX

f (X)]_ f (X) fl (X) < 1(29)

f(X)J X _ X[f (X)]2(.)

Apabila nilai turunan fungsi susah didapat, nilai ini dapat didekati dengan harga fungsi dari hasil dua tahapan proses sebelumnya.

Gambar 2.10

Penentuan nilai turunan fungsi dengan menggunakan metode Secant.

Pada Gambar 2.10, jika nilai Xk dan Xk+1 telah didapat, maka :

Xk+2 - Xk+1 _Xk+1 - Xkat

X k + 2 _ X k +1

f (Xk+1)

Xk+1 - Xkf (Xk+1)- f (Xk )

(2.10)

Xk+1)ff (Xk )- f (Xk+1)

Penentuan nilai turunan fungsi dengan cara ini disebut metode SECANT.

Algoritma Program

Algoritma program untuk metode Newton-Raphson

. Tentukan Xo, toleransi, dan jumlah iterasi maksimum.. Hitung Xbaru = X - f(Xo)/f(Xo).. Jika nilai mutlak (Xbaru - Xo) < toleransi, diperoleh tulisan Xbaru sebagai hasil perhitungan;

jika tidak, lanjutkan ke langkah berikutnya.

. Jika jumlah iterasi > iterasi maksimum, akhiri program.. x = Xbaru , dan kembali ke langkah (b).Bagan Alir Program

Dalam mempersiapkan program sumber, algoritma dijabarkan dalam bentuk bagan alir berikut.

NILAI AWAL PERKIRAAN

Dalam hal tidak adanya petunjuk dalam penetapan nilai awal, maka usaha berikut ini dapat dilakukan :

Membuat grafik fungsi, lalu diidentifikasikan segmen fungsi yang memotong absis.Membuat tabel harga x and f(x), lalu diidentifikasi nilai x pada perubahan tanda f(x).PROGRAM SUMBER

Dari rancangan algoritma atau bagan alir, program komputer dapat dikembangkan melalui pembuatan program sumber di dalam bahasa tingkat tinggi PASCAL dan C++. Secara umum terdapat enam kategori utama dari pernyataan dalam program sumber, yaitu :

Pernyataan bagi arsip atau file dan record yang akan diproses oleh komputer.Pernyataan untuk data di luar arsip, seperti untuk membuat judul yang perlu bagi dokumentasi.Pernyataan memindahkan data pada satu lokasi memori ke lokasi memori lainnya dalam memori utama komputer.Pernyataan untuk melakukan operasi aritmatik yang disimpan dalam memori utama.Pernyataan logika : proses urut, perbandingan, dan iterasi.Pernyataan membaca data dari memori dampingan ke memori utama atau menuliskan data dari memori utama ke memori dampingan.

Pemahaman lebih jauh dalam pemrogramana dapat dibaca pada buku-buku komputer. Lampiran A buku ini mengulas secara umum prosedur pemrograman dalam bahasa TURBO PASCAL dan C++.

Program Sumber untuk Metode Bisection

Program berikut menggunakan algoritma metode Bisection untuk menyelesaikan persamaan non-linear. Program akan dicoba untuk menyelesaikan persamaan : tan (x) - x - 0,5 = 0

DEKLARASI SUMBER PROGRAM dalam BAHASA C++

// Program 1.1a // Metode Bisection #include

#include

/* Daftar Variable

a=batas bawah

b=batas atas

tol=toleransi

max iter =jumlah iterasi maksimum */

float a,m,b,F_a,F_m,F_b,tol; int max iter;

float f(float x)

{

return tan(x) - x - 0.5;

}

void main()

{

int it;

float epsilon;

printf("Batas bawah = "); printf("Batas atas = "); printf("Toleransi = "); printf("Jumlah iterasi maksimum = ");

scanf("%f",&a); scanf("%f",&b); scanf("%f",&tol); scanf("%d",&max iter);

it = 0;

F_a = f(a);

F_b = f(b);

if(F_a * F_b > 0) printf(" Nilai F(a) x F(b) > 0\n"); else {

printf("It.ambf(a)f(b)");

printf(" abs[f(b)-f(a)]/2\n"); do {

it = it + 1; m = (a + b) / 2;

F_m = f(b);

printf("%3d %8.5f%8.5f%8.5f%8.5f%8.5f%8.2e\n",

it,a,m,b,F_a,F_b,fabs(F_b-F_a)/2); epsilon = fabs(m-a);

if(F_a * F_m 0')

else

Begin

write('It.ambf(a)f(b)');

writeln('abs[f(b)-f(a)]/2');

epsilon := tol+1;

while((it tol)) do

Begin

it := it + 1; m := (a + b) / 2;

F_m := f(m);

write(it:3,' ',a:8:5,'',m:8:5,'',b:8:5,'');

writeln(F_a:8:5,' ',F_m:8:5,'',abs(F_b-F_a)/2:4);

epsilon := abs(m-a); if(F_a * F_m 0) printf(" Nilai F(a) x F(b) > 0\n"); else {

printf("It.ambf(a)f(b)");

printf(" abs[f(b)-f(a)]/2\n"); do {

it = it + 1;

m = a - F_a * (b - a) / (F_b - F_a);

F_m = f(m);

printf("%3d %8.5f%8.5f%8.5f%8.5f%8.5f%8.2e\n",

it,a,m,b,F_a,F_m,fabs(F_b-F_a)/2); epsilon = fabs(m-a);

if(F_a * F_m 0) then writeln(' Nilai F(a) x F(b) > 0') else

Begin

write('It.ambf(a)f(b)');

writeln('abs[f(b)-f(a)]/2');

epsilon := tol+1;

while((it tol)) do

Begin

it := it + 1;

m := a - F_a * (b - a)/(F_b - F_a);

F_m := f(m);

write(it:3,' ',a:8:5,'',m:8:5,'',b:8:5,'');

writeln(F_a:8:5,' ',F_m:8:5,'',abs(F_b-F_a)/2:4);

epsilon := abs(m-a); if(F_a * F_m