如何用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
相关产品推荐
相关产品推荐

