'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
用VBA编的,应该和VB差不多吧。如果有用盯凯局请采纳孙贺。 o(∩_∩)o
Sub CalcFuncResult()
Dim Fx, dFx, x1, x2
x1 = 0: x2 = 1
While Abs(x1 - x2) >0.0001
x1 = x2
Fx = x1 + Log(x1) - 1.7
dFx = 1 + 1 / x1
x2 = x1 - Fx / dFx
Wend
MsgBox "结果凯让为 x=" + Str(Round(x1, 10)) + " ~ " + Str(Round(x2, 10))
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)