二分法一般要先找到端点值异号的区间,然后再应用二分法。
这题在f(0)=-1<0,f(1)=-1<0, f(2)=5>0, 在(0,1)间f(0),f(1)同号,没有根在(0,1),而在(1,2)有根,程序可如下:
Function root() As Double
Dim x1 As Double, x2 As Double, x As Double, f1 As Double, f2 As Double, f As Double
x1 = 1
x2 = 2
f1 = x1 * x1 * x1 - x1 - 1
f2 = x2 * x2 * x2 - x2 - 1
Do
x = (x1 + x2) / 2
f = x * x * x - x - 1
If f > 0 Then
x2 = x
f2 = f
Else
x1 = x
f1 = f
End If
Loop Until Abs(x1 - x2) < 0.0000000001
root = x
End Function
二分法一般要先找到端点值异号的区间,然后再应用二分法。
这题在f(0)=-1<0,f(1)=-1<0, f(2)=5>0, 在(0,1)间f(0),f(1)同号,没有根在(0,1),而在(1,2)有根,程序可如下:
Function root() As Double
Dim x1 As Double, x2 As Double, x As Double, f1 As Double, f2 As Double, f As Double
x1 = 1
x2 = 2
f1 = x1 * x1 * x1 - x1 - 1
f2 = x2 * x2 * x2 - x2 - 1
Do
x = (x1 + x2) / 2
f = x * x * x - x - 1
If f > 0 Then
x2 = x
f2 = f
Else
x1 = x
f1 = f
End If
Loop Until Abs(x1 - x2) < 0.0000000001
root = x
End Function