如果引用或轉貼,麻煩註明出處與本網誌連結,否則視為侵權。

2014年7月6日

Visual Basic解數學之二 : 使用牛頓拉夫森法(Newton-Raphson Method)求平方根近似值

作者: Fred Wang (FW知識瑣記) 日期: 2014/7/6

適用版本 : VB 2010~2013


牛頓拉夫森法(Newton-Raphson Method)又稱牛頓逼近法
功能
1. 輸入N值, 然後使用牛頓拉夫森法(Newton-Raphson Method)計算平方根近似值
2. Xn值為前一次Xn-1值與 N 除Xn-1值的平均
3. 如果Xn與前一次Xn-1值小數第三位以前相同時,則停止計算
4. 將過程的Xn值顯示出來(四捨五入到小數第三位)


Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Xn As Long
        Dim X0 As Long
        Dim N As Long
        Dim i As Integer
        If Not IsNumeric(TextBoxN.Text) Then
            MsgBox("請輸入數字", vbOKOnly)
        ElseIf Val(TextBoxN.Text) < 0 Or Val(TextBoxN.Text) = 0 Then
            MsgBox("值不可以為零或負值", vbOKOnly)
        Else
            N = Val(TextBoxN.Text)
            Xn = N / 3
            i = 0
            Do While True
                Me.DataGridView1.Rows.Add(CStr(i), Xn)
                i = i + 1
                X0 = Xn
                Xn = (X0 + N / X0) / 2
                If Int(Xn * 1000) / 1000 = Int(X0 * 1000) / 1000 Then Exit Do
            Loop

            Xn = Xn + 0.005
            Xn = Int(Xn * 100) / 100
            TextBoxResult.Text = CStr(Xn)

        End If
    End Sub
End Class


上一篇 - Visual Basic解數學之一 : 華式溫度與攝氏溫度的互換 下一篇 - Visual Basic解數學之三 : 使用克拉碼規則(Cramer's Rule)解二元一次方程式

沒有留言:

張貼留言

歡迎提供意見, 謝謝 (註 : 留言經過版主審核通過才會發布)