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

如何用Python实现根式方程去根号 转化为x整数次幂多项式

Python 根式方程去根号工具实现

前置依赖

使用符号计算库sympy完成表达式解析与运算,执行代码前先安装依赖:

pip install sympy

完整实现代码

import sympy as sp

# 定义符号变量x
x = sp.symbols('x')

def remove_radicals(equation):
    # 统一将方程整理为 表达式 = 0 的形式
    current_expr = sp.expand(equation.lhs - equation.rhs)
    
    while True:
        # 提取所有含1/2次幂(根号)的项
        radical_terms = []
        for term in sp.Add.make_args(current_expr):
            term_powers = term.as_powers_dict()
            # 检查当前项是否包含幂次为1/2的因子
            if any(power == sp.Rational(1, 2) for power in term_powers.values()):
                radical_terms.append(term)
        
        # 无根号项时终止循环
        if not radical_terms:
            return sp.Eq(sp.expand(current_expr), 0)
        
        # 取第一个根号项,移动到等式左侧
        target_radical = radical_terms[0]
        # 剩余项移到右侧:target_radical = -(current_expr - target_radical)
        right_side = -(current_expr - target_radical)
        # 两边平方后重新整理为左侧为0的形式
        current_expr = sp.expand(target_radical**2 - right_side**2)

# 测试用例
if __name__ == "__main__":
    # 输入示例方程:0 = x·√(x²-2x+26) + x·√(x²+1)
    input_eq = sp.Eq(0, x * sp.sqrt(x**2 - 2*x + 26) + x * sp.sqrt(x**2 + 1))
    output_eq = remove_radicals(input_eq)
    # 输出化简后的多项式方程
    print("去根号后结果:")
    sp.pprint(output_eq)

代码说明

  • 完全匹配梳理的操作逻辑,自动循环执行移项、平方、整理步骤,直到所有根号消除
  • 支持任意数量根号项的方程处理,不需要手动拆分A/B/C固定项
  • 运算全程自动展开合并同类项,输出结果为标准整数次幂多项式形式
  • 运行测试用例后输出结果和预期的多项式形式完全一致

内容的提问来源于stack exchange,提问作者Sa'di Thamir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:06:04