【加试题】对分查找算法可用于求解方程的近似解。现要求方程x3-4x2+x+5=0的一个近似解,可设f(x)=x3-4x2+x+5,若有区间[a,b],使f(a)与f(b)异号,则该区间内必存在该方程的一个解。小吴为此编写了VB程序,功能如下:分别在文本框Text1和Text2中输入求解的区间值a和b(a<b),单击“计算”按钮Command1,若该区间必有解,则求解出该区间内的一个近似解(精确到10 s),否则提示“重新输入区间”,计算后的相关结果显示在列表框List1中。程序运行界面如图所示。
实现上述功能的VB程序如下,但加框处代码有错,请改正。 Function f(x As Double)As Double Dim Y As Double y=x^3-4*x^2+x+5: ‘(1) End Function Private Sub Command1_Click() Dim a As Double,b As Double,m As Double,x As Double a=Val(Text1.Text):b=Val(Text2.Text) If f(a)*f(b)<0 And a<b Then Do While a<=b m=(a+b)/2 If Abs(f(m))<0.00001 Then Exit Do If <0 Then ‘(2) b=m Else a=m EndIf Loop x=Format(m,“0.00000”) ‘Format函数用于定义输出的小数位数 List1.AddItem"["&Text1.Text&","&Text2.Text&"]" & "解为:"&x Else List1.AddItem"["&a&","&b&"]" & "重新输入区间" EndIf End Sub
(1)
⑴处改为;
(2)
⑵处改为。
答案: 【1】f=y
【1】f(a)*f(m)