二分法求根算法代码,操作平台:excel
Private Sub CommandButton1_Click() ‘开始程序
a = Sheets(“Sheet1”).Range(“A1”).Value ‘将sheet1中A1单元格的值赋予变量a,作为零点所在区间的左端,需要程序运行之前先行在sheet1中的A1单元格输入;
b = Sheets(“Sheet1”).Range(“C1”).Value ‘将sheet1中C1单元格的值赋予变量b,作为零点所在区间的右端,需要程序运行之前先行在sheet1中的C1单元格输入;
d = Sheets(“Sheet1”).Range(“G1”).Value ‘将sheet1中G1单元格的值赋予变量d,作为精确度,需要程序运行之前先行在sheet1中的G1单元格输入;
i = 2
m = a
Do
If f * h < 0 Then
b = m
Else
a = m
End If
m = (a + b) / 2 ‘算出中点的横坐标;
f = a ^ 3 – 6 * a ^ 2 – 3 * a + 5 ‘计算f(a);
Sheets(“Sheet1”).Range(“A” & i).Value = a
Sheets(“Sheet1”).Range(“B” & i).Value = f
g = b ^ 3 – 6 * b ^ 2 – 3 * b + 5 ‘计算f(b);
Sheets(“Sheet1”).Range(“C” & i).Value = b
Sheets(“Sheet1”).Range(“D” & i).Value = g
h = m ^ 3 – 6 * m ^ 2 – 3 * m + 5 ‘计算f(m);
Sheets(“Sheet1”).Range(“E” & i).Value = m
Sheets(“Sheet1”).Range(“F” & i).Value = h
Sheets(“Sheet1”).Range(“G” & i).Value = Abs(a – b)
i = i + 1
Loop Until Abs(a – b) < d Or f = 0 ‘判断何时跳出循环;
End Sub ‘结束程序。