[英]Double Summation in VBA
我正在尝试在VBA中实现以下算法:
请查看链接: VT-Micro算法
这是我的代码:
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
问题:我的实施可能有问题。
请注意,您计算的是指数和而不是指数。 另外,更新Total_Fuel = Total_Fuel + Fuel
应该在内部for循环内,因为否则,您将无法正确计算两倍总和。 就像@VincentG提到的, If
应该测试a_inkmhs
而不是a
(或者,您可以将a_inkmhs
重命名为a
),并且在求和过程中a_inkmhs
应该提高到j
而不是i
,即a_inkmhs^j
。 代码应为:
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 = Cl * (s ^ i) * (a_inkmhs ^ j)
Total_Fuel = Total_Fuel + Fuel
Next j
Next i
Else
For i = 0 To 3
For j = 0 To 3
ML = N_coeff(i, j)
Fuel = ML * (s ^ i) * (a_inkmhs ^ j)
Total_Fuel = Total_Fuel + Fuel
Next j
Next i
End If
Total_Fuel = Exp(Total_Fuel)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.