Julia 朱莉娅身上同样的代码有不同的结果

Julia 朱莉娅身上同样的代码有不同的结果,julia,Julia,我有两个密码: 1第一个代码: Vp = EVw[:,:,1] V0 = EV0 Va_test, Ca_test, Sa_test, Ta_test, EVa_test, Ap_test = [zeros(P.Na,P.Nh) for i in 1:6] # interpolators Vp_itp = interpolate((G.a, G.h), Vp, Gridded(Linear())) V0_itp = interpolate((G.a,), V0, Gridded(Linear(

我有两个密码:

1第一个代码:

Vp = EVw[:,:,1]
V0 = EV0

Va_test, Ca_test, Sa_test, Ta_test, EVa_test, Ap_test = [zeros(P.Na,P.Nh) for i in 1:6]
# interpolators
Vp_itp = interpolate((G.a, G.h), Vp, Gridded(Linear()))
V0_itp = interpolate((G.a,), V0, Gridded(Linear()))
# initialize state
a0 = G.a[1]
h0 = G.h[1]
# value function and budget constraints
VF(c,s,ak) = ValueFunctionTransfer(c,s,ak,a0,h0,r,w,Vp_itp,V0_itp,P,θ0)
BC(s) = BudgetConstraint(s,a0,h0,r,w,P)

# solve
for i in 1:P.Na, j in 1:P.Nh
# state
a0 = G.a[i]
h0 = G.h[j]
# solve
Ca_test[i,j], Sa_test[i,j], Ta_test[i,j], Va_test[i,j], Ap_test[i,j] = NestedGolden3D(VF,BC)
end
2秒代码:

Vp = EVw[:,:,1]
V0 = EV0

Va, Ca, Sa, Ta, EVa, Ap = [zeros(P.Na,P.Nh) for i in 1:6]
# interpolators
Vp_itp = interpolate((G.a, G.h), Vp, Gridded(Linear()))
V0_itp = interpolate((G.a,), V0, Gridded(Linear()))
# initialize state
a0 = G.a[1]
h0 = G.h[1]
# value function and budget constraints
VF(c,s,ak) = ValueFunctionTransfer(c,s,ak,a0,h0,r,w,Vp_itp,V0_itp,P,θ0)
BC(s) = BudgetConstraint(s,a0,h0,w,r,P)

# solve
for i in 1:P.Na, j in 1:P.Nh
# state
a0 = G.a[i]
h0 = G.h[j]
# solve
Ca[i,j], Sa[i,j], Ta[i,j], Va[i,j], Ap[i,j] = NestedGolden3D(VF, BC)
end
两个版本在我看来都是一样的,但结果却不同!!可能发生了什么

我在函数中有第二个代码,我对结果不满意。然后我用另一个脚本创建了第一个代码,得到了很好的结果。我意识到两个版本本质上是相同的,然后我让它们看起来一样,除了名称中的_测试

它们在我看来完全一样,但它们给出的答案却不同。我猜引擎盖下发生了什么事,我不明白


为了确保正确运行代码,我运行了未显示之前需要的部分,然后运行其中一个版本,保存结果,然后重新启动julia。然后我对另一个版本做同样的操作。然后我重新启动julia并比较结果。它们不一样。我发现这真的令人费解。

这两个例子之间有区别

在第一个示例中,您有: BCs=预算约束,a0,h0,r,w,P 在第二个示例中,您有: BCs=预算约束,a0,h0,w,r,P

您应该将它们都包装在一个函数中。然后用相同的输入运行它们。在不知道输入的情况下,很难阅读这样的代码。关于stackoverflow的问题最好包含可以运行的代码,包括输入。您可以在这里阅读一些最简单的工作示例:实际上,我认为您的问题不适合stackoverflow。您基本上是在寻找代码的审查,在这种情况下,发布代码可能是一个更好的地方。我还注意到,您正在调用一些未包含在您的帖子中的函数。如果可以制作一个适当的MWE最小工作示例,那么您的问题可能是合适的。您也可以考虑发布到朱丽亚集中的站点,例如