Mencari akar Persamaan Nirlanjar dengan VB.NET 2008 (Metode Numerik)

Posted on Updated on


2Metode newton raphson merupakan salah satu metode terbuka untuk menentukan solusi akar dari persamaan non linier, dengan prinsip utama sebagai berikut :
1.      Metode ini melakukan pendekatan terhadap kurva f(x) dengan garis singgung ( gradien ) pada suatu titik nilai awal.

2.      Nilai taksiran selanjutnya adalah titik potong antara garis singgung ( gradien ) kurva dengan sumbu x

Metode newton raphson adalah metode iterasi untuk memecahkan persamaan f(x)=0,dengan f diasumsikan mempunyai turunan kontinu f’. Metode ini menggunakan suatu garis lurus sebagai hampiran fungsi. Garis tersebut adalah garis singgung pada kurva. Dengan menggunakan suatu nilai awal xo dan ditetapkan xi adalah titik potong sumbu x dengan garis singgung pada kurva f dititik xo.maka

Metode newton raphson adalah metode iterasi untuk memecahkan persamaan f(x)=0,dengan f diasumsikan mempunyai turunan kontinu f’. Metode ini menggunakan suatu garis lurus sebagai hampiran fungsi. Garis tersebut adalah garis singgung pada kurva. Dengan menggunakan suatu nilai awal xo dan ditetapkan xi adalah titik potong sumbu x dengan garis singgung pada kurva f dititik xo.maka
Dalam setiap iterasi akan terbentuk xi secara berulang-ulang hingga manghasilkan nilai X yang membuat f(x) = 0.
Turunan pertama dari f(x) terhadap x adalah sama dengan kemiringan garis singgung di titik tersebut.Dalam metode ini prinsip pengurangan akar tidak dipergunakan lagi, akibatnya metode ini tidak dijamin lagi kekonvergenannya. Iterasi dihentikan apabila dua iterasi yang beruntun menghasilkan hampiran akar yang sama. Metode dapat berhasil, jika selama iterasi nilai fungsi turunan  tidak boleh sama dengan nol.
ALGORITMA NYA
Masukkan : f(x), x0 , epsilon, M (maksimum banyaknya iterasi)
Keluaran   : akar , grafik  f(x)
Langkah    :
            1). iterasi = 1;
            2). Jika f’(x0) = 0 maka proses gagal. Selesai
            3). xbaru = x0 – f(x0)/f’(x0);
            4). Jika | (xbaru – x0 )/(xbaru) | £ epsilon maka akar = xbaru .
                  Selesai
            5). x0 = xbaru
            6). iterasi = iterasi + 1;
            7). Jika iterasi £ M maka kembali ke langkah 2).
nah sekarang kita terapkan ke pemograman …saat ini ane pakai VB.Net 2008 untuk membuat program nya :
berikut  listing nya
untuk Form awal
 Private Sub Panel1_Paint(ByVal sender As System.Object, 
ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint

    End Sub
    Private Sub Button5_Click(ByVal sender As System.Object,
 ByVal e As System.EventArgs) Handles Button5.Click

    End Sub
    Private Sub Button4_Click(ByVal sender As System.Object, 
ByVal e As System.EventArgs) Handles Button4.Click

    End Sub
    Private Sub PictureBox1_Click(ByVal sender As System.Object, 
ByVal e As System.EventArgs) Handles PictureBox1.Click

    End Sub
End Class
ini adalah listing untuk iterasi
Imports System.Math

Public Class Form2
    Dim j, n, f As Double

    Private Sub Button1_Click(ByVal sender As System.Object, 
ByVal e As System.EventArgs) Handles Button1.Click
        n = Val(TextBox1.Text)
        j = 2.718281828459
        ListBox1.Items.Clear()
        f = n
        ListBox1.Items.Add(n & ListBox1.Items.Count & "=>" & Round(f, 6))
        Do
            f = Round((j ^ n / 3), 6)
            If n = f Then
                ListBox1.Items.Add(n & ListBox1.Items.Count & "=>" & Round(f, 6))
                Exit Do
            Else
                n = f
                ListBox1.Items.Add(n & ListBox1.Items.Count & "=>" & Round(f, 6))
                TextBox2.Text = Round(f, 6)
                TextBox3.Text = ListBox1.Items.Count

            End If

        Loop

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, 
ByVal e As System.EventArgs) Handles Button2.Click
        Me.Close()
    End Sub

    Private Sub PictureBox1_Click(ByVal sender As System.Object,
 ByVal e As System.EventArgs) Handles PictureBox1.Click

    End Sub
End Class
Dan ini listing untuk Newton Rahpson
Imports System.Math

Public Class Form3
    Dim j, xb, x, i, f As Double
    Private Sub Button1_Click(ByVal sender As System.Object, 
ByVal e As System.EventArgs) Handles Button1.Click
        j = 2.718281828459
        x = Val(TextBox1.Text)
        ListBox1.Items.Clear()
        f = x
        ListBox1.Items.Add(x & ListBox1.Items.Count & "=>" & Round(f, 6))
        Do
            F = Round((x - ((j ^ x - 3 * x) / (j ^ x - 3))), 6)
            If x = f Then
                ListBox1.Items.Add(x & ListBox1.Items.Count & "=>" & Round(f, 6))
                Exit Do
            Else
                x = f
                ListBox1.Items.Add(x & ListBox1.Items.Count & "=>" & Round(f, 6))
                TextBox2.Text = Round(f, 6)
                TextBox3.Text = ListBox1.Items.Count
            End If
        Loop
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles Button2.Click
        Me.Close()
    End Sub
    Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles MyBase.Load
    End Sub
End Class

dan ini screen shoot program nya

1

 

 

 

 

 

2

 

 

 

 

 

 

Untitled

 

 

 

 

 

 

download souce code di sini semoga bermanfaat

berikan coment nya gan …….happy coding…..

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s