跪求数学程序高手通过编写VB程序实现下列问题:1.编程实现二分法求方程f(x)=x^3-x-1=0在区间【1.0,1.5】内的一个实根要求精确到小数点后3位
- 提问者网友:听门外雪花风
- 2021-05-05 02:17
- 五星知识达人网友:不如潦草
- 2021-05-05 02:44
在窗口中添加如下代码,即可,精确度可以自己调整,精确度到 0.00001都行
Function f(ByVal x As Single) As Single '定义要求解的方程
f = x ^ 3 - x - 1
End Function
Private Function root(ByVal a0 As Single, ByVal b0 As Single, ByVal c As Single) As Single '用二分法求解,a0,b0为初始值,c为精度
Dim a, b, t As Single
a = a0
b = b0
Do While (1)
If Abs(f(a)) <= c Then
root = a
Exit Function
Else
If Abs(f(b)) <= c Then
root = b
Exit Function
Else
t = (a + b) / 2
If f(t) * f(a) <= 0 Then
b = t
Else
a = t
End If
End If
End If
Loop
End Function
Private Sub Form_Load()
MsgBox root(1.0, 1.5, 0.001) '调用例子
End Sub
- 1楼网友:一袍清酒付
- 2021-05-05 03:59
1、先赋初值a=1,b=1.5
2、设置循环 用 |a-b|<0.0005控制
循环体:
选择结构:如果SGN(f[(a+b)/2])>0,则b=(a+b)/2
如果SGN(f[(a+b)/2])>0,则a=(a+b)/2
如果SGN(f[(a+b)/2])=0,退出循环
循环结束
令:x=(a+b)/2
输出结果。