我是靠谱客的博主 心灵美小海豚,最近开发中收集的这篇文章主要介绍python精度为什么那么差_Python/C++精度差,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

优化后,在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++精度差所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部