VB编写程序,用牛顿切线法求方程f(x)= x^2-x-8=0(其中^表示 幂运算)在区间[3,4]上的近似实根r,迭代

VB编写程序,用牛顿切线法求方程f(x)= x^2-x-8=0(其中^表示 幂运算)在区间[3,4]上的近似实根r,迭代,第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

用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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12412641.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存