VBA中的双重求和

时间:2015-10-06 07:48:13

标签: algorithm vba sum

我正在尝试在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

问题: 我的实施可能有什么问题。

1 个答案:

答案 0 :(得分:1)

请注意,您计算的是指数的总和而不是指数的总和。更新Total_Fuel = Total_Fuel + Fuel也应位于内部for循环中,否则您将无法正确计算双精度。同样@VincentG提到您的If应该测试a_inkmhs而不是a(或者您可以将a_inkmhs重命名为a)并在求和期间{{1}应该提升到权力a_inkmhs而不是j,即i。代码应该是:

a_inkmhs^j