gpt4 book ai didi

discrete-mathematics - 使用离散方法计算导数

转载 作者:行者123 更新时间:2023-12-04 02:41:37 27 4
gpt4 key购买 nike

我正在寻找一种使用离散和快速方法计算导数的方法。由于现在我不知道我拥有的方程类型,我正在寻找类似于我们可以为积分找到的离散方法,例如欧拉方法。

最佳答案

我认为您正在寻找以点计算的导数。
如果是这种情况,这里有一个简单的方法来做到这一点。你需要知道一点的导数,比如 .它由 h->0 的差商的极限给出:

difference quotient

您实际上需要实现限制功能。那么你:

  • 定义一个epsilon,设置得越小越精确,越大越快
  • 计算起始h的差商,假设h=0.01,存入 f1
  • 现在在一个 DO-WHILE 循环中:

    1-将 h 除以 2(或除以 10,重要的是使它更小)
    2- 用新的 h 值再次计算差商,将其存储在 中f2
    3-套差异 = abs(f2-f1)
    4- 分配 f1 = f2
    5- 从第 1 点开始重复 而(差异> epsilon)
  • 您最终可以返回 f1(或 f2)作为 f'(a)
  • 的值

    记住:
    您假设函数在 中是可微的 .
    由于您的计算机可以处理的有限十进制数字的错误,您将得到的每个结果都将是错误的,这是无法逃避的。

    python中的示例:
    def derive(f, a, h=0.01, epsilon = 1e-7):
    f1 = (f(a+h)-f(a))/h
    while True: # DO-WHILE
    h /= 2.
    f2 = (f(a+h)-f(a))/h
    diff = abs(f2-f1)
    f1 = f2
    if diff<epsilon: break
    return f2

    print "derivatives in x=0"
    print "x^2: \t\t %.6f" % derive(lambda x: x**2,0)
    print "x:\t\t %.6f" % derive(lambda x: x,0)
    print "(x-1)^2:\t %.6f" % derive(lambda x: (x-1)**2,0)

    print "\n\nReal values:"
    print derive(lambda x: x**2,0)
    print derive(lambda x: x,0)
    print derive(lambda x: (x-1)**2,0)

    输出:
    derivatives in x=0
    x^2: 0.000000
    x: 1.000000
    (x-1)^2: -2.000000


    Real values:
    7.62939453125e-08
    1.0
    -1.99999992328

    我第一次得到“精确”值,因为只使用了结果的前 6 位数字,注意我使用了 1e-7 作为 epsilon。在此之后打印了真正的计算值,它们显然在数学上是错误的。选择多小的 epsilon 取决于您希望结果的精确程度。

    关于discrete-mathematics - 使用离散方法计算导数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/627055/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com