📄 nlgradmainmodule.bas
字号:
Attribute VB_Name = "MainModule"
Sub Main()
Dim n As Integer, nMaxIt As Integer
Dim s As String
' 3次方程
n = 3
' 分配初值和解的内存
ReDim x(n) As Double
' 初值数组
x(1) = 1.5
x(2) = 7.5
x(3) = -6
' 迭代次数
nMaxIt = 1200
'求解
If NLGrad(n, x, nMaxIt, 0.0000000001, 0.0000000001) Then
s = ""
For i = 1 To n
s = s & "x(" & i & ") = " & x(i) & Chr(13)
Next i
MsgBox "求解成功!" & Chr(13) & Chr(13) & s
Else
MsgBox "求解失败"
End If
End Sub
Function Func(x() As Double) As Double
Func = (x(1) - 5 * x(2) * x(2) + 7 * x(3) * x(3) + 12) * (x(1) - 5 * x(2) * x(2) + 7 * x(3) * x(3) + 12) + _
(3 * x(1) * x(2) + x(1) * x(3) - 11 * x(1)) * (3 * x(1) * x(2) + x(1) * x(3) - 11 * x(1)) + _
(2 * x(2) * x(3) + 40 * x(1)) * (2 * x(2) * x(3) + 40 * x(1))
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -