首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >区间内正差分的数值逼近

区间内正差分的数值逼近
EN

Stack Overflow用户
提问于 2020-09-10 02:02:08
回答 1查看 255关注 0票数 0

在不使用numpy的情况下,如何使用python进行数值有限差分计算?例如,我想在一定的区间内数值地找到多个函数值,一阶和二阶导数的步长为0.05。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-10 06:05:50

你为什么不想用Numpy呢?它是一个很好的库,并且非常快速地进行数值计算,因为它是用C编写的(这通常比纯Python更快)。

如果您想知道这些方法是如何工作的,以及它们在代码中的外观,下面是一些示例代码:

代码语言:javascript
复制
def linspace(a, b, step):
    if a > b:
        # see if going backwards?
        if step < 0:
            return linspace(b, a, -1*step)[::-1]
        # step isn't negative so no points
        return []
    pt = a
    res = [pt]
    while pt <= b:
            pt += step
            res.append(pt)
    return res

def forward(data, step):
    if not data:
        return []
    res = []
    i = 0
    while i+1 < len(data):
        delta = (data[i+1] - data[i])/step
        res.append(delta)
        i += 1
    return res

# example usage
size = 0.1
ts = linspace(0, 1, size)
y = [t*t for t in ts]
dydt = forward(y, size)
d2ydt2 = forward(dydt, size)

注:,这将仍然使用普通浮点数,因此仍然会出现奇怪的舍入错误,因为有些数字没有精确的二进制十进制表示。

另一个要检查的库是模数学,它有许多很酷的数学函数,比如集成和特殊函数,它允许您指定需要多少精度。当然,使用100位的精度会比普通浮标慢得多,但它仍然是一个非常酷的库!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63821793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档