python – 评估1 / tanh(x) – 1 / x表示非常小的x
发布时间:2020-12-20 11:59:23 所属栏目:Python 来源:网络整理
导读:我需要计算数量 1/tanh(x) - 1/x 对于x 0,其中x可以非常小而且非常大. 渐渐地对于小x,我们有 1/tanh(x) - 1/x - x / 3 对于大x 1/tanh(x) - 1/x - 1 无论如何,在计算表达式时,已经从10 ^ -7和更小的舍入误差导致表达式被评估为0: import numpyimport matplo
我需要计算数量
1/tanh(x) - 1/x 对于x> 0,其中x可以非常小而且非常大. 渐渐地对于小x,我们有 1/tanh(x) - 1/x -> x / 3 对于大x 1/tanh(x) - 1/x -> 1 无论如何,在计算表达式时,已经从10 ^ -7和更小的舍入误差导致表达式被评估为0: import numpy import matplotlib.pyplot as plt x = numpy.array([2**k for k in range(-30,30)]) y = 1.0 / numpy.tanh(x) - 1.0 / x plt.loglog(x,y) plt.show() 解决方法
对于非常小的x,可以使用
the Taylor expansion of
1/tanh(x) - 1/x around 0 ,
y = x/3.0 - x**3 / 45.0 + 2.0/945.0 * x**5 误差为O(x ** 7),因此如果选择10 ^ -5作为断点,相对和绝对误差将远低于机器精度. import numpy import matplotlib.pyplot as plt x = numpy.array([2**k for k in range(-50,30)]) y0 = 1.0 / numpy.tanh(x) - 1.0 / x y1 = x/3.0 - x**3 / 45.0 + 2.0/945.0 * x**5 y = numpy.where(x > 1.0e-5,y0,y1) plt.loglog(x,y) plt.show() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Python批量将word转html,并将html内容发布至网站。
- day55——django引入、小型django(socket包装的服务器)
- 如何将Python版本升级到3.7?
- 详解Python中for循环的使用
- 史上最全的OpenCV入门教程!这篇够你学习半个月了!万字长文
- python – 哪个inotify事件表示大文件操作的完成?
- python – Numpy-从2D数组获取邻居矩阵
- python – 在replaceWith()不起作用后的find()(使用Beautif
- 使用cKDTree()时的Python中的MemoryError.Query_ball_tree
- linux下python3连接mysql数据库问题