newton rapson dan tugas

8

Click here to load reader

Upload: gyan-prameswara

Post on 19-Nov-2015

21 views

Category:

Documents


8 download

DESCRIPTION

uyfu

TRANSCRIPT

  • Akar Persamaan Nonlinier dengan Metode

    Newton-Raphson

    Pemrograman Komputer STTN BATAN

    1. Pengenalan Metode Newton Rapshon

    Suatu fungsi non linier (f(x)) dapat digambarkan seperti pada Gambar 1.

    Gambar 1. Kurva Nonlinier

    Dari Gambar 1 dapat dilihat bahwa fungsi f(x) merupakan fungsi nonlinier yang memiliki tiga

    titik potong terhadap sumbu x yaitu titik A, B, dan C. Untuk menentukan titik potong fungsi

    nonlinier (f(x)) terhadap sumbu x (misalnya titik A, B dan C) dapat dilakukan dengan

    menggunakan metode Newton-Raphson. Metode ini memerlukan suatu titik awal sebagai

    permulaan untuk mencari nilai titik potong terhadap sumbu x. Penentuan titik potong kurva

    terhadap sumbu x sering disebut juga mencari nilai nol dari fungsi (f(x)=0) atau mencari nilai

    akar-akar fungsi (Root finding problems). Langkah-langkah menemukan titik nol fungsi

    dengan metode Newton-Raphson adalah sebagai berikut:

    1. Tentukan terlebih dahulu titik awal pada sumbu x sebagai titik tebakan nilai kurva akan

    memotong sumbu x. Titik ini disebut sebagai x0

    2. Dari titik x0, hitung nilai f(x0). Titik f(x0) disebut sebagai y0.

    3. Dari titik (x0,y0) dibuat garis singgung turunan fungsi f(x0) yaitu f(x0) pada titik

    tersebut.

    4. Cari nilai titik potong garis singgung f(x0) terhadap sumbu x. Titik potong f(x0)

    terhadap sumbu x diambil sebagai titik x baru. Titik x baru ini disebut sebagai x1. 5.

    5. Bandingkan nilai x0 dengan x1, apakah perbedaan antara x0 dengan x1 tersebut cukup

    kecil?

    a. Jika Tidak maka kembali ke langkah 2 dengan mengganti x0 dengan x1 dan

    mengulangi prosedur perhitungan hingga langkah ke 5.

    b. Jika Ya maka perhitungan selesai dan x baru yang diperoleh merupakan titik potong

    kurva terhadap sumbu x atau merupakan nilai nol fungsi dari kurva tersebut.

    Agar lebih jelasnya perhatikan ilustrasi secara grafis metode Newton-Raphson pada Gambar

    2.

  • Gambar 2. Ilustrasi Metode Newton Rapshon

    Garis merah merupakan proses dari x0 hingga diperoleh x1 baru. Saat x1 sudah diperoleh

    dengan memotongkan garis singgung kurva pada x0 (f(x0)) maka prosedur yang sama

    diulangi hingga diperoleh x2 dan x3 yang perbedaan nilainya semakin kecil atau letaknya

    semakin dekat.

    Gradien garis singgung kurva f(x) adalah turunan f(x) (f(x) yang didefinisikan secara

    matematis sebagai berikut (untuk titik (x0,y0)):

    ( )

    ( ( ) )

    ( ) ( )

    Persamaan (1) kemudian disusun ulang untuk memperoleh persamaan menghitung x1 sebagai

    berikut :

    ( )

    ( ) ( )

    Dari persamaan (2) dapat dilihat bahwa nilai x baru (x1) dapat dihitung berdasarkan nilai x

    lama (x0). Secara umum persamaan (2) dapat juga dituliskan sebagai berikut :

    ( )

    ( ) ( )

    Persamaan (3) merupakan definisi umum metode Newton-Raphson.

    Untuk persamaan yang secara matematis sulit untuk diturunkan, maka dapat digunakan

    pendekatan beda hingga untuk menghitung nilai f(xlama) sebagai berikut:

    ( )

    ( ) ( )

    ( )

    2. Pemrograman Metode Newton Rapshon dengan Microsoft Excel Macro

    Suatu persamaan nonlinier sebagai berikut :

    ( ) ( )

    Ingin ditentukan akar-akar persamaan (5).

    ( ) ( )

    Akar-akar persamaan (5) dapat ditentukan dengan menggunakan Metode Newton-Raphson

    pada persamaan (3). Dari persamaan (3) diperlukan nilai turunan dari persamaan (5) sebagai

    berikut :

    ( ) ( )

    Algoritma perhitungan dengan Metode Newton Raphson adalah sebagai berikut:

    1. Tentukan nilai titik awal xlama, misalnya xlama=3

    2. Tentukan nilai toleransi/akurasi perhitungan, misalnya tolx=1.1010

  • Nilai toleransi/akurasi perhitungan diperlukan untuk meningkatkan ketepatan hasil

    perhitungan atau untuk memperkecil perbedaan hasil perhitungan antara metode NR dengan

    metode secara analitis. Semakin kecil nilai toleransi diberikan maka semakin akurat hasil

    perhitungannya tetapi hal ini akan menyebabkan program semakin lama dalam menyelesaikan

    permasalahan yang diberikan.

    3. Hitung nilai f(xlama) dengan persamaan (5)

    4. Hitung nilai turunan f(xlama) atau f(xlama) dengan persamaan (6)

    5. Hitung nilai xbaru dengan persamaan (3)

    6. Bandingkan nilai xlama dengan xbaru, Apakah nilai xlama-xbaru lebih kecil dari toleransi

    yang diinginkan?

    a. Jika TIDAK maka ulangi langkah 1, ambil xbaru sebagai xlama atau xlama=xbaru

    b. Jika YA, maka lakukan langkah 6.

    Langkah 5 akan memerlukan perhitungan yang berulang/looping calculation. Untuk

    melakukan ini dapat digunakan perintah WHILE karena tidak ada keterangan berapa

    kali perhitungan akan dilakukan/diulangi. Apabila banyaknya pengulangan

    perhitungan sudah diketahui maka dapat digunakan perintah FOR.

    7. Tampilkan hasil perhitungan

    Alur diagram algoritma program dapat dilihat pada Gambar 3.

    Mulai Program

    Tentukan xlama dan tolx

    Mulai perhitungan dengan while delx>=tolx

    Hitung f(xlama)Hitung f(xlama)

    Hitung xbaruHitung delx

    Looping whiledelx>=tolx

    Tampilkan Hasil

    Selesai

    Gambar 3. Algoritma Program Newton Rapshon

    Dari algoritma tersebut jika ingi diselesaikan dengan program Microsoft Excel Macro

    Penentuan titik awal dan data toleransi:

  • Selanjutnya algoritma yang telah dibuat diterjemahkan kedalam bahasa VBA pada microsoft

    Excel

    Sub Newton()

    'Pendeklarasian Variabel

    Dim xlama As Variant

    Dim flama As Variant

    Dim falama As Variant

    Dim xbaru As Variant

    Dim tolx As Variant

    Dim delx As Variant

    Dim iter As Integer

    'Mendefinisikan alamat xlama, delx dan tolx sebagai tebakan awal

    xlama = [B3].Value

    delx = [B5].Value

    iter = [B6].Value

    'memulai langkah looping/perhitungan berulang NR

    While ActiveCell.Offset(0, 5).Value >= tolx

    [A9].End(xlDown).Offset(1, 0).Select

    iter = ActiveCell.Offset(-1, 0).Value

    'var iter digunakan untuk menghitung jumlah iterasi yang digunakan

    iter = iter + 1

    ActiveCell.Value = iter

    'Perhitungan NR

    flama = xlama ^ 3 + 3 * xlama ^ 2 + 3 * xlama + 1

    falama = 3 * xlama ^ 2 + 6 * xlama + 3

    xbaru = xlama - flama / falama

    delx = Abs(xbaru - xlama)

    'Untuk menampilkan setiap hasil perhitungan

    ActiveCell.Offset(0, 1).Value = xlama

    ActiveCell.Offset(0, 2).Value = xbaru

    ActiveCell.Offset(0, 3).Value = flama

    ActiveCell.Offset(0, 4).Value = falama

    ActiveCell.Offset(0, 5).Value = delx

    'perintah agar looping terjadi

    xlama = xbaru

    tolx = [B4].Value

    Wend

    [B7].Value = ActiveCell.Offset(0, 2)

    [B7].Select

    End Sub

  • Hasil Perhitungan

    Dari hasil iterasi diatas dapat dilihat bahwa nilai nol fungsi/ akar persamaan (4) adalah

    x= - 0,99999442

    Secara analitis persamaan (5) dapat diselesaikan dengan pemfaktoran sebagai berikut:

    ( )

    ( )

    Akar Persamaan -0,99999442

    Iter xlama xbaru f(x) f'(x) delx

    0 0 0 0 0 0

    1 3 1,666666667 64 48 1,333333

    2 1,666666667 0,777777778 18,96296 21,33333 0,888889

    3 0,777777778 0,185185185 5,618656 9,481481 0,592593

    4 0,185185185 -0,20987654 1,664787 4,213992 0,395062

    5 -0,20987654 -0,47325103 0,49327 1,872885 0,263374

    6 -0,47325103 -0,64883402 0,146154 0,832393 0,175583

    7 -0,64883402 -0,76588935 0,043305 0,369953 0,117055

    8 -0,76588935 -0,84392623 0,012831 0,164423 0,078037

    9 -0,84392623 -0,89595082 0,003802 0,073077 0,052025

    10 -0,89595082 -0,93063388 0,001126 0,032479 0,034683

    11 -0,93063388 -0,95375592 0,000334 0,014435 0,023122

    12 -0,95375592 -0,96917061 9,89E-05 0,006416 0,015415

    13 -0,96917061 -0,97944708 2,93E-05 0,002851 0,010276

    14 -0,97944708 -0,98629805 8,68E-06 0,001267 0,006851

    15 -0,98629805 -0,99086537 2,57E-06 0,000563 0,004567

    16 -0,99086537 -0,99391024 7,62E-07 0,00025 0,003045

    17 -0,99391024 -0,99594016 2,26E-07 0,000111 0,00203

    18 -0,99594016 -0,99729344 6,69E-08 4,94E-05 0,001353

    19 -0,99729344 -0,99819563 1,98E-08 2,2E-05 0,000902

    20 -0,99819563 -0,99879709 5,87E-09 9,77E-06 0,000601

    21 -0,99879709 -0,99919806 1,74E-09 4,34E-06 0,000401

    22 -0,99919806 -0,99946537 5,16E-10 1,93E-06 0,000267

    23 -0,99946537 -0,99964358 1,53E-10 8,57E-07 0,000178

    24 -0,99964358 -0,99976239 4,53E-11 3,81E-07 0,000119

    25 -0,99976239 -0,99984159 1,34E-11 1,69E-07 7,92E-05

    26 -0,99984159 -0,99989439 3,97E-12 7,53E-08 5,28E-05

    27 -0,99989439 -0,9999296 1,18E-12 3,35E-08 3,52E-05

    28 -0,9999296 -0,99995305 3,49E-13 1,49E-08 2,34E-05

    29 -0,99995305 -0,99996877 1,04E-13 6,61E-09 1,57E-05

    30 -0,99996877 -0,99997909 3,02E-14 2,93E-09 1,03E-05

    31 -0,99997909 -0,9999862 9,33E-15 1,31E-09 7,11E-06

    32 -0,9999862 -0,99999087 2,66E-15 5,71E-10 4,67E-06

    33 -0,99999087 -0,99999442 8,88E-16 2,5E-10 3,55E-06

    34 -0,99999442 -0,99999442 0 9,33E-11 0

  • sehingga secara analitis dapat diketahui bahwa akar persamaan tersebut adalah x= 1.

    Perbedaan hasil secara analitis dan secara pemrograman/numeris disebabkan karena adanya

    pendekatan yang digunakan sehingga memunculkan error. Nilai error ini dapat

    diminimumkan apabila nilai toleransi yang digunakan lebih kecil.

  • TUGAS 11

    PEMROGRAMAN

    STTN BATAN

    Campuran uap dengan fraksi mol benzene (A)=0.4 toluene (B)=0.3 dan ortho-xylene (C)=0,3

    didinginkan pada tekanan tetap PT=76 cmHg. Ingin dicari pada suhu berapa (dalam K)

    pengembunan terjadi. Sistem mengikuti hokum Raoult-Dalton. Harga tekanan uap murni

    mengikuti persamaan :

    (

    ) ( )

    (

    ) ( )

    (

    ) ( )

    Dengan dalam cmHg dan T dalam K

    Kesetimbangan Raoult-Dalton:

    ( )

    Buatlah algoritma program dan program Matlab untuk menghitung suhu pengembunan yang

    terjadi! Gunakan penyelesaian matematis berikut untuk memahami prosedur penyelesaian

    masalah.

    Penyelesaian Matematis

    Suhu pengembunan dapat dihitung dengan menggunakan rumus sebagai berikut :

    dengan i =A,B,C atau dapat dituliskan sebagai berikut:

    ( )

    Dengan mengubah persamaan (4) menjadi sebagai berikut:

    kemudian mensubstitusikan persamaan tersebut ke persamaan (5) maka diperoleh persamaan

    sebagai berikut :

    ( )

    Persamaan untuk mengambil persamaan (1) hingga (3). Persamaan (6) dapat diselesaikan

    dengan bentuk sebagai berikut:

    ( )

    ( )

    sehingga diperoleh suatu persamaan yang merupakan fungsi suhu. Persamaan (7) merupakan

    pencarian nilai nol suatu fungsi atau tipe root finding problems yang dapat diselesaikan

    dengan menggunakan metode Newton Raphson. Gunakan pendekatan beda hingga untuk

    menghitung nilai turunan dari fungsi pada persamaan (7).

    Ambil nilai parameter tebakan Tawal, akurasi/toleransi perhitungan serta nilai x untuk

    pendekatan beda hingga yang sesuai!

    Contoh Jawaban

    390,2252

  • suhu pengembunan adalah 390.2252 K

    Pengumpulan Tugas

    1. Tugas dikumpulkan paling lambat tanggal : 11 Maret 2015

    2. Tugas dikumpulkan dalam bentuk soft copy berupa:

    a. diagram algoritma

    b. copy kode VBA

    c. hasil run

    d. Microsoft Excel

    3. Penulisan nama file softcopy (MS Excel) : Tugas1 Nama

    4. Tuliskan pada subject email : Tugas1 Nama

    Iter Tlama Tbaru f(T) f'(T) delT

    0 0 0 0 0 0

    1 300 318,4101 36,69715 -1,99331 18,41012

    2 318,4101 338,3966 14,09702 -0,70533 19,9865

    3 338,3966 358,8298 5,284494 -0,25862 20,43315

    4 358,8298 376,6562 1,849414 -0,10375 17,82647

    5 376,6562 387,2829 0,537479 -0,05058 10,62664

    6 387,2829 390,0737 0,094825 -0,03398 2,790804

    7 390,0737 390,2248 0,004642 -0,03071 0,151149

    8 390,2248 390,2252 1,26E-05 -0,03055 0,000412

    9 390,2252 390,2252 9,34E-11 -0,03055 3,06E-09

    10 390,2252 390,2252 -8,9E-16 -0,03055 5,68E-14