You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SymPy求xⁿ的n阶导数未得阶乘结果,如何解决?

SymPy求xⁿ的n阶导数实现方法

你的代码无法得到sp.factorial(n)的原因是没有给符号n添加正整数约束,SymPy无法自动识别n的取值范围来化简导数表达式。

修正后的代码

import sympy as sp

# 定义符号,为n添加正整数约束
x = sp.symbols('x')
n = sp.Symbol('n', integer=True, positive=True)

f = x**n
# 计算n阶导数并化简
nth_derivative = sp.simplify(f.diff((x, n)))
print(nth_derivative)  # 输出 factorial(n)

原理说明

xⁿ的n阶导数展开为:

n*(n-1)(n-2)...*1 = n!

SymPy只有在明确n是正整数时,才会将这个连乘积化简为factorial(n)。如果仅定义n为整数(不限制正),SymPy会保留更通用的Gamma函数形式gamma(n+1)(因为Gamma函数是阶乘的延拓,gamma(n+1)=factorial(n)对正整数n成立)。

内容的提问来源于stack exchange,提问作者lukas kiss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 20:22:04