用二分法求二次函数零点(近似解)的VB代码遇到逻辑问题求解。
要求至少用一次循环结构。看看我的雏形啊,不知道错在哪了,好像根本就没有循环过。以下代码只是求一个零点的代码,不过这个零点求不来,另一个肯定也就没法了。rivateSubC...
要求至少用一次循环结构。看看我的雏形啊,不知道错在哪了,好像根本就没有循环过。
以下代码只是求一个零点的代码,不过这个零点求不来,另一个肯定也就没法了。
rivate Sub Command1_Click()
a = InputBox("输入二次项系数a=", "输入二次项系数", , 20)
b = InputBox("输入一次项系数b=", "输入一次项系数", , 20)
c = InputBox("输入常数项系数c=", "输入常数项系数", , 20)
z = InputBox("输入精度值 z = 【0<z<1】", "输入精度值", , 20)
If IsNumeric(a) And IsNumeric(b) And IsNumeric(c) And IsNumeric(z) Then
d = b ^ 2 - 4 * a * c
If a <> 0 Then
If d > 0 Then
If 0 < z < 1 Then
Do
e1 = 这个地方算法的文字叙述是“随机取a、b(我就用e1和e2来表示了),使f(a)*f(b)<0”,但是我觉得可操作性不强,而且用rnd函数会让电脑卡死机。求帮想个办法。。。
e2 = 这个地方算法的文字叙述是“随机取a、b(我就用e1和e2来表示了),使f(a)*f(b)<0”,但是我觉得可操作性不强,而且用rnd函数会让电脑卡死机。求帮想个办法。。。
Y1 = (e1 + e2) / 2
X1 = Y1 ^ 2 * a + Y1 * b + c
h1 = e1 ^ 2 * a + e1 * b + c
h2 = e2 ^ 2 * a + e2 * b + c
If X1 * h1 < 0 Then
e2 = Y1
ElseIf X1 * h2 < 0 Then
e1 = Y1
ElseIf X1 = 0 Then
Text3.Text = e1
Text4.Text = e2
End If
z1 = Abs(e1 - e2)
Loop Until X1 = 0 Or z > z1
Text1.Text = e1
Text2.Text = e2
Else
MsgBox "精度值无效。"
End If
Else
MsgBox "该二次函数无解。"
End If
Else
MsgBox "该函数不是二次函数。"
End If
Else
MsgBox "输入字符无效。"
End If
End Sub 展开
以下代码只是求一个零点的代码,不过这个零点求不来,另一个肯定也就没法了。
rivate Sub Command1_Click()
a = InputBox("输入二次项系数a=", "输入二次项系数", , 20)
b = InputBox("输入一次项系数b=", "输入一次项系数", , 20)
c = InputBox("输入常数项系数c=", "输入常数项系数", , 20)
z = InputBox("输入精度值 z = 【0<z<1】", "输入精度值", , 20)
If IsNumeric(a) And IsNumeric(b) And IsNumeric(c) And IsNumeric(z) Then
d = b ^ 2 - 4 * a * c
If a <> 0 Then
If d > 0 Then
If 0 < z < 1 Then
Do
e1 = 这个地方算法的文字叙述是“随机取a、b(我就用e1和e2来表示了),使f(a)*f(b)<0”,但是我觉得可操作性不强,而且用rnd函数会让电脑卡死机。求帮想个办法。。。
e2 = 这个地方算法的文字叙述是“随机取a、b(我就用e1和e2来表示了),使f(a)*f(b)<0”,但是我觉得可操作性不强,而且用rnd函数会让电脑卡死机。求帮想个办法。。。
Y1 = (e1 + e2) / 2
X1 = Y1 ^ 2 * a + Y1 * b + c
h1 = e1 ^ 2 * a + e1 * b + c
h2 = e2 ^ 2 * a + e2 * b + c
If X1 * h1 < 0 Then
e2 = Y1
ElseIf X1 * h2 < 0 Then
e1 = Y1
ElseIf X1 = 0 Then
Text3.Text = e1
Text4.Text = e2
End If
z1 = Abs(e1 - e2)
Loop Until X1 = 0 Or z > z1
Text1.Text = e1
Text2.Text = e2
Else
MsgBox "精度值无效。"
End If
Else
MsgBox "该二次函数无解。"
End If
Else
MsgBox "该函数不是二次函数。"
End If
Else
MsgBox "输入字符无效。"
End If
End Sub 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询