编写程序,用牛顿切线法求方程f(x)= x^2-x-8=0(其中^表示 幂运算)在区间[3,4]上的近似实根r,迭代初

1个回答

  • '程序可以继续完善的:

    '1、如果指定区间无解,怎么办

    '2、迭代过程跳出了指定区间,怎么办

    '3、如何使用界面直接输入方程式

    Private Sub Command1_Click()

    Dim 上限 As Single, 下限 As Single, 误差 As Single, 自变量 As Single, k As Single

    Const 允许误差 = 0.0001

    上限 = Val(InputBox("请输入区上限", , 4))

    Do

    下限 = Val(InputBox("请输入区下限", , 3))

    If 下限 < 上限 Then Exit Do

    MsgBox "上、下限不匹配!", vbExclamation

    Loop

    误差 = 上限 - 下限

    自变量 = 误差 / 2 + 下限

    Do Until 误差 < 允许误差

    k = 导数(自变量)

    If k = 0 Then

    自变量 = 自变量 + 允许误差

    Else

    x = 自变量 - 方程(自变量) / k

    误差 = Abs(自变量 - x)

    自变量 = x

    End If

    Loop

    Print "从区间("; 下限; ","; 上限; ")出发,求得方程近似解为:"; 自变量

    Print "估计误差小于:"; 误差

    End Sub

    Private Function 方程(x As Single) As Single

    方程 = (x - 1) * x - 8

    End Function

    Private Function 导数(x As Single) As Single

    导数 = 2 * x - 1

    End Function