我正在尝试在VBA中实现以下算法:
请参阅链接:VT-Micro Algorithm
这是我的代码:
s = 7.2
a_inkmhs = 7.2
Total_Fuel = 0
If a_inkmhs >= 0 Then
For i = 0 To 3
For j = 0 To 3
Cl = P_coeff(i, j)
Fuel = Exp(Cl * (s ^ i) * (a_inkmhs ^ j))
Next j
Total_Fuel = Total_Fuel + Fuel
Next i
Else
For i = 0 To 3
For j = 0 To 3
ML = N_coeff(i, j)
Fuel = Exp(ML * (s ^ i) * (a_inkmhs ^ j))
Next j
Total_Fuel = Total_Fuel + Fuel
Next i
End If
预期产出: 0.002338176 我越来越 : 3.999006792
问题: 我的实施可能有什么问题。
答案 0 :(得分:1)
请注意,您计算的是指数的总和而不是指数的总和。更新Total_Fuel = Total_Fuel + Fuel
也应位于内部for循环中,否则您将无法正确计算双精度。同样@VincentG提到您的If
应该测试a_inkmhs
而不是a
(或者您可以将a_inkmhs
重命名为a
)并在求和期间{{1}应该提升到权力a_inkmhs
而不是j
,即i
。代码应该是:
a_inkmhs^j