概述
优化后,在Python和C++中,计算出具有最优参数的残差。结果差距很大。以下是我如何更精确地进行操作:
我根据Python中的参数化模型生成数据。我把X和Y存储在Excel文件中。我将这个文件加载到C++程序中并运行优化。我提出了最佳参数,与生成序列的参数非常接近。然后,用Python和C++计算残差(y和模型输出之间的平方差和最佳参数的总和)。结果是巨大的,对于对参数变化非常敏感的模型,其差异高达10^3。这些差异是否可以被用来处理Python和C++的不同方法,或者其他的错误是什么?一旦优化完成,残差计算就是一个简单的计算,如果不是在精度问题上,我想知道问题会在哪里。在
非常感谢您的任何建议或参考。在<>编辑->我可以很容易地显示Python代码生成数据和计算平方残差的总和,但不是C++代码,因为计算是通过解释器执行的。谢谢你的评论。在P1 = 5.21
P2 = 0.22
X_= list(range(0,100,1))
X=[float(x)/float(10) for x in X_]
Y = [P1*numpy.exp(-1*P2*x) for x in X]
##plt.plot(X,Y)
##plt.show()
##for j in range(len(Y)):
## Y[j]+=rg.normal(0,0.01)
#build some input files
X1f = open('F:WORKSOLVEURALGOCODEPYTHON_datasetsexponential1X.txt', 'w')
for i in range(len(X)):
X1f.write(str(X[i])+'n')
X1f.close()
Yf = open('F:WORKSOLVEURALGOCODEPYTHON_DataSetsexponential1Y.txt', 'w')
for i in range(len(Y)):
Yf.write(str(Y[i])+'n')
Yf.close()
def func_exp_1(param, x1, y):
p1, p2 = param
res = sum((y_i - p1*numpy.exp(-1*p2*x))**2 for x1_i, y_i in zip(x1, y))
return res
print func_exp_1([5.2132,0.2202],x1,y)
最后
以上就是心灵美小海豚为你收集整理的python精度为什么那么差_Python/C++精度差的全部内容,希望文章能够帮你解决python精度为什么那么差_Python/C++精度差所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复