nlgradmainmodule.bas
来自「编程中经常用到的一些算法,算法已模块化,来自于<科学工程与数值算法大全&g」· BAS 代码 · 共 40 行
BAS
40 行
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 + =
减小字号Ctrl + -
显示快捷键?