x-sinx的迭代方程 怎样编写程序?
1个回答

'程序可以继续完善的:

'1、如果指定区间无解,怎么办

'2、迭代过程跳出了指定区间,怎么办

'3、如何使用界面直接输入方程式

Private Sub Command1_Click()

Dim 上限 As Single, 下限 As Single, 误差 As Single, 自变量 As Single, k As Single

Const 允许误差 = 0.0001

上限 = Val(InputBox("请输入区上限", , 4))

Do

下限 = Val(InputBox("请输入区下限", , 3))

If 下限 < 上限 Then Exit Do

MsgBox "上、下限不匹配!", vbExclamation

Loop

误差 = 上限 - 下限

自变量 = 误差 / 2 + 下限

Do Until 误差 < 允许误差

k = 导数(自变量)

If k = 0 Then

自变量 = 自变量 + 允许误差

Else

x = 自变量 - 方程(自变量) / k

误差 = Abs(自变量 - x)

自变量 = x

End If

Loop

Print "从区间("; 下限; ","; 上限; ")出发,求得方程近似解为:"; 自变量

Print "估计误差小于:"; 误差

End Sub

Private Function 方程(x As Single) As Single

方程 = (x - 1) * x - 8

End Function

Private Function 导数(x As Single) As Single

导数 = 2 * x - 1

End Function