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

SymPy中如何将代数式转换为Uₙ、Vₙ标准组合形式

SymPy表达式转Uₙ/Vₙ组合实现代码

你可以直接使用下面整合后的代码,同时支持Uₙ和Vₙ的自动识别转换:

from sympy import *
# 定义基础符号
x = symbols('x')
t = symbols('t') # 临时代换变量,避免和原x冲突
# 定义Uₙ、Vₙ的显式计算函数
def u(n):
    return x**n + 1/x**n
def v(n):
    return x**n - 1/x**n
# 表达式转Uₙ/Vₙ形式的核心转换函数
def expr_to_uv(expr):
    # 代换x=e^t,将幂次转换为双曲函数形式
    expr_sub = expr.subs(x, exp(t)).simplify()
    # 替换双曲函数为U、V符号函数
    expr_uv = expr_sub.replace(cosh, lambda k: Function('u')(k)/2) \
                    .replace(sinh, lambda k: Function('v')(k)/2) \
                    .simplify()
    # 替换临时变量t为1消除冗余变量
    return expr_uv.subs(t, 1)

使用示例

你可以直接传入任意由Uₙ/Vₙ计算得到的表达式,即可自动转换为U/V的组合形式:

# 测试示例1:计算(U₁)^3
res1 = (u(1))**3
print(expr_to_uv(res1)) # 输出:u(3) + 3*u(1)

# 测试示例2:计算(U₁ * V₁)
res2 = u(1)*v(1)
print(expr_to_uv(res2)) # 输出:v(2)

# 测试示例3:计算(V₁)^2
res3 = (v(1))**2
print(expr_to_uv(res3)) # 输出:u(2) - 2

如果需要输出带下标的显示效果,可以配合SymPy的LaTeX渲染功能使用,在Jupyter环境中会直接显示为Uₙ、Vₙ的格式。

内容的提问来源于stack exchange,提问作者Gayanath Chandrasena

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:54:01