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

如何通过SymPy操作将(1/x)^a / x^2简化为x^(-2-a)?

SymPy表达式简化:将(1/x)^a / x²转化为x^(-2-a)的正确方法

我需要把表达式(1/x)^a / x^2简化为数学上等价的x^(-2-a),但尝试了SymPy的simplify、expand_power_exp等多个函数都没得到预期结果,测试代码如下:

import sympy as sym
expr = sym.sympify("(1/x)^a / x^2")
print(sym.simplify(expr))
print(sym.expand_power_exp(expr))
print(sym.expand_power_base(expr, force=True))
print(sym.powsimp(expr, force=True))
print(sym.collect(expr, "x"))
print(sym.ratsimp(expr))
# 所有输出均为(1/x)**a/x**2

正确简化步骤

需要结合powdenest和powsimp两个函数,强制展开底数并合并同底数幂:

import sympy as sym
expr = sym.sympify("(1/x)^a / x^2")
# 强制展开(1/x)^a为x^(-a)
step1 = sym.powdenest(expr, force=True)
# 合并x^(-a)和x^(-2)为x^(-a-2)
result = sym.powsimp(step1, force=True)
print(result)  # 输出x**(-a - 2)

或者合并为一行代码:

result = sym.powsimp(sym.powdenest(expr, force=True), force=True)

原理说明

SymPy默认对带有符号指数(比如这里的a)的底数展开会比较保守,powdenest(force=True)可以强制将(1/x)^a这类形式转化为x^(-a);之后powsimp会自动合并同底数的幂运算,将x^(-a) / x^2转化为x^(-a-2)。

内容的提问来源于stack exchange,提问作者Carlos Pinzón

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 01:37:35