改成VBA牛顿迭代法求方程

发布网友

我来回答

2个回答

热心网友

Sub main()
Dim a!, b!, c!, d!, x!
a = InputBox("a=", "请输入方程的系数:")
b = InputBox("b=", "请输入方程的系数:")
c = InputBox("c=", "请输入方程的系数:")
d = InputBox("d=", "请输入方程的系数:")
x = solution(a, b, c, d)
Debug.Print "所示方程的根x="; x
End Sub
Function solution!(ByVal a!, ByVal b!, ByVal c!, ByVal d!)
Dim x0!, x!, f!, fd!, h!
x = 1.5
Do
x0 = x
f = a * x0 * x0 * x0 + b * x0 * x0 + c * x0 + d
fd = 3 * a * x0 * x0 + 2 * b * x0 + c
h = f / fd
x = x0 - h
Loop While (Abs(x - x0) >= 0.00001)
solution = x
End Function

热心网友

1234567101112131415161718192021Sub main()Dim a!, b!, c!, d!, x!a = InputBox("a=", "请输入方程的系数:")b = InputBox("b=", "请输入方程的系数:")c = InputBox("c=", "请输入方程的系数:")d = InputBox("d=", "请输入方程的系数:")x = solution(a, b, c, d)Debug.Print "所示方程的根x="; xEnd SubFunction solution!(ByVal a!, ByVal b!, ByVal c!, ByVal d!)Dim x0!, x!, f!, fd!, h!x = 1.5Dox0 = xf = a * x0 * x0 * x0 + b * x0 * x0 + c * x0 + dfd = 3 * a * x0 * x0 + 2 * b * x0 + ch = f / fdx = x0 - hLoop While (Abs(x - x0) >= 0.00001)solution = xEnd Function

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com