【问题标题】:Is it possible to display all of the functions that SymPy tries during `simplify()`?是否可以显示 SymPy 在 `simplify()` 期间尝试的所有功能?
【发布时间】:2023-03-20 12:56:01
【问题描述】:

SymPy docs 声明如下:

SymPy 有几十个函数来执行各种简化。还有一个称为 simple() 的通用函数,它试图以一种智能的方式应用所有这些函数以得出最简单的表达式形式。

我正在使用 SymPy 作为帮助我重新学习数学的工具,所以如果我可以查看 SymPy 尝试的所有函数,那将非常有用。

是否可以显示 SymPy 在simplify() 期间尝试的所有功能?我该怎么做?

【问题讨论】:

    标签: python sympy symbolic-math


    【解决方案1】:

    simplify 的来源是here。据其介绍,SymPy 尝试了以下操作,其中大部分操作都记录在simplify module docs 中(您链接的页面来自 SymPy 教程,不详述。)

    cancel(expr)
    _mexpand(expr).cancel()
    together(expr, deep=True)
    factor_terms(expr, sign=False)
    hyperexpand(expr)
    piecewise_fold(expr)
    besselsimp(expr)
    trigsimp(expr, deep=True)
    expand_log(expr, deep=True)
    logcombine(expr)
    combsimp(expr)
    sum_simplify(expr)
    product_simplify(expr)
    quantity_simplify(expr)
    powsimp(expr, combine='exp', deep=True)
    powsimp(expr)
    expand_power_exp(expand_mul(expr)))
    exptrigsimp(expr)
    

    要直接尝试这些,请导入

    from sympy import *
    from sympy.simplify.simplify import sum_simplify, product_simplify
    from sympy.core.function import _mexpand
    

    但是,simplify 并不是一一尝试这些方法:它们中的大多数仅在表达式匹配某些模式时使用,其中一些是组合使用的。

    【讨论】:

    • 谢谢。我希望我可以做一些事情,比如提高日志级别以查看运行中的逻辑,但这是一个很长的目标。
    猜你喜欢
    • 2017-05-31
    • 1970-01-01
    • 2021-07-16
    • 2017-11-12
    • 2011-06-23
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多