【问题标题】:defining derivative function through sympy通过 sympy 定义导函数
【发布时间】:2017-05-31 11:49:40
【问题描述】:

diff 适用于多项式,但 diff(sin(x),x) 会给出错误消息。 当我从代码中删除“从数学导入 *”时,diff(sin(x),x) 起作用了。为什么?三角函数符号微分导致“数学”崩溃怎么办?

【问题讨论】:

  • 确保 diff 等 Sympy 函数的参数是 Sympy 对象。特别是sin应该是sin的Sympy版本,即正确的用法是sympy.diff(sympy.sin(x))。为避免此类问题,最好不要使用 import * 导入模块
  • 谢谢!尚未了解 sin 的 sympy 版本和 sin 的数学版本之间的区别。但知道存在差异有助于理解这次崩溃。

标签: math diff sympy


【解决方案1】:

SymPy 函数仅适用于 SymPy 函数。

math 模块中的函数是数值函数。他们只知道如何使用数字参数(浮点数或整数)。如果你给他们一个像x 这样的符号表达式,他们将不知道该怎么做。这是因为只有 SymPy 函数知道如何保持不求值。

建议不要使用import *,除非您以交互方式工作,即使那样,也最多从一个模块开始。 SymPy 函数和表达式不会与来自 math 或 numpy 等模块的数字函数混合。

相反,您可以运行

import sympy as sym

并使用sym.sin 等等。

此外,一般来说,在使用 SymPy 时根本不需要使用 math 模块,因为在 math 模块中实现的所有内容也在 SymPy 中实现。

【讨论】:

    猜你喜欢
    • 2014-09-10
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多