50分求助麻烦每位帮下忙编译下这道题

来源:百度知道 编辑:UC知道 时间:2024/05/29 00:01:24
求助麻烦每位帮下忙编译下这道题
试用牛顿迭代法求解方程x^5-3x^2+2x+1=0在Xo=0附近的根
(要求使用Do…Loop Until语句)

牛顿迭代法的思想是这样的:
x和x0不断的迭代.
令f(x)=x^5-3x^2+2x+1
则f'(x)=5x^4-6x+2
有:
x=x0-f(x)/f'(x)
收敛于:|x-x0|<e(有是一个很小的数,在这里取e为0.000001),具体代码如下:
写在form_click()事件中.

Private Sub Form_Click()
Dim x As Single
Dim x1 As Single
Dim f As Single
Dim g As Single
x0 = 0
Do
x = x0
f = x * x * x * x * x - 3 * x * x + 2 * x + 1
g = 5 * x * x * x * x - 6 * x + 2
x0 = x - f / g
Loop Until Abs(x - x0) < 0.000001
Print "解为:"; x
End Sub