欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python计算和差积商_Python与处理计算的区别

发布时间:2024/9/20 python 38 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python计算和差积商_Python与处理计算的区别 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

我目前正在进行一些数值传热计算,这需要一个很好的互补误差函数(erfc)的近似。其中一个传热方程由exp(s^2)和erfc(s)的乘积组成,这意味着(对于较大的s值)一个非常大的数乘以一个非常小的数。因此,电流变流控制的精度需要相当高。否则,对大量s的计算将是不稳定的。在

由于处理not的数学函数(例如sqrt()、exp()和pow())不能取双倍数,所以我使用float,这给了我对于大值s的稳定性问题。对于大值,我的意思是大约4到5。例如,4.5的erfc应该是1.97*10^(-10)。在

…现在来回答问题。在

1)是否可以在处理的数学函数(例如平方根、exp和幂)中使用双精度来获得互补误差函数值的更精确表示?在

2)据我所知,Python也在使用float,而不是double,这意味着(至少在我看来)Processing和Python对于互补错误函数应该得到相同的结果。然而,事实并非如此。Python对错误函数的逼近比处理更精确。怎么会这样?在

下面显示了Python和互补误差函数近似的处理版本。在

Python:from math import sqrt

from math import pi

from math import exp

n=1000 #number of intervals

b=float(1) #integration end

h=b/n #Interval width

leftRiemann=0

for s in range(0, n):

leftRiemann=leftRiemann+h*2/sqrt(pi)*exp(-((s*h)**2))

rightRiemann=0

for s in range(1, n+1):

rightRiemann=rightRiemann+h*2/sqrt(pi)*exp(-((s*h)**2))

trapez=0.5*leftRiemann+0.5*rightRiemann

centrePoint=0

for s in range(1, n+1):

centrePoint = centrePoint+h*2/sqrt(pi)*exp(-((h*(s-0.5))**2))

erfc=1 - (1.0/3*trapez+2.0/3*centrePoint)

print erfc

正在处理:

^{pr2}$

Python:erfc(1)=0.15729920705

处理:erfc(1)=0.15729982

表值:erfc(1)=0.157299

总结

以上是生活随笔为你收集整理的python计算和差积商_Python与处理计算的区别的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。