我有以下 VBA 函数,该函数在电子表格中被多次调用。有什么办法可以提高效率吗?
Function Fx(x As Double, _
c As Double)
Dim b As Double
Dim g As Double
Dim alpha As Double
Dim beta As Double
Dim gamma As Double
Dim delta As Double
alpha = 3.1
beta = -0.15
gamma = 0.78
delta = 0.12
'derive implied b and g
b = Exp(alpha + beta * c * (1 + c))
g = Exp((gamma + delta * c) * c)
Fx = (Log(((g - 1) * b + (1 - b * g) * b ^ x) / (1 - b))) / Log(b * g)
out:
End Function
该函数的计算只能进行最低限度的优化。如果计算有任何效率低下的地方,可能是在不同的地方。
Function Fxa(x As Double, _
c As Double)
Dim b As Double
Dim bg As Double
Dim lbg As Double
Dim alpha As Double
Dim beta As Double
Dim gamma As Double
Dim delta As Double
alpha = 3.1
beta = -0.15
gamma = 0.63 ' 0.78
delta = -0.03 ' 0.12
'derive implied b and g
b = alpha + beta * c * (1 + c)
lbg = alpha + gamma * c + delta * c ^ 2
b = Exp(b)
bg = Exp(lbg)
Fxa = Log((bg - b + (1 - bg) * b ^ x) / (1 - b)) / lbg
out:
End Function