gpt4 book ai didi

python - 你如何评估 python 中的导数?

转载 作者:太空狗 更新时间:2023-10-30 00:53:45 24 4
gpt4 key购买 nike

我是 python 的初学者。我最近了解了 Sympy 及其符号操作功能,尤其是微分功能。我正在尝试以最简单的方式执行以下操作:

  1. 定义 f(x,y) = x^2 + xy^2。
  2. 关于 x 对 f 求微分。所以 f'(x,y) = 2x + xy^2。
  3. 计算导数,例如 f'(1,1) = 2 + 1 = 3。

我知道如何执行 1 和 2。问题是,当我尝试在步骤 3 中计算导数时,出现错误,提示 python 无法计算导数。这是一个最小的工作示例:

import sympy as sym
import math


def f(x,y):
return x**2 + x*y**2


x, y = sym.symbols('x y')

def fprime(x,y):
return sym.diff(f(x,y),x)

print(fprime(x,y)) #This works.

print(fprime(1,1))

我希望最后一行打印 3。它不打印任何内容,并显示“无法计算 1 的一阶导数”。

最佳答案

您的函数 fprime 不是导数。它是一个返回导数的函数(作为 Sympy 表达式)。要评估它,您可以使用 .subs 将值插入此表达式:

>>> fprime(x, y).evalf(subs={x: 1, y: 1})
3.00000000000000

如果您希望 fprime 实际上是导数,您应该将导数表达式直接分配给 fprime,而不是将其包装在函数中。然后你可以直接evalf它:

>>> fprime = sym.diff(f(x,y),x)
>>> fprime.evalf(subs={x: 1, y: 1})
3.00000000000000

关于python - 你如何评估 python 中的导数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44269943/

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