操纵sympy表达式树

时间:2019-07-05 17:27:22

标签: python-3.x sympy

可以说,我们有一个sympy函数cos(x)。每个功能都可以 由树呈现,例如就像这里的图片https://reference.wolfram.com/language/tutorial/ExpressionsAsTrees.html

我想在此表达式树的每个节点中插入一个参数,这意味着

cos(x) -> a*cos(b*x) 

对于更复杂的表达,它应该看起来像

(exp(x)+cos(x)*x)/(x) -> h*(b*exp(a*x)+f*(c*cos(d*x)*e*x))/(j*x)

其中a,b,c,d,e,f,g,h,j是我要拟合的参数。

一个有用的信息来源可以是“走树”一章中的https://docs.sympy.org/latest/tutorial/manipulation.html。我试图更换部分 expr.args 元组,但这是不可能的。

这是表达式:

from simply import symbols, exp, cos
x, y = symbols('x y')
expr = (exp(x)+cos(x)*y)/(x)

1 个答案:

答案 0 :(得分:1)

这可能会让您入门:

_TFProfRoot (--/# total params)
  FeatureExtractor (--/# params)
  ...
  WeightSharedConvolutionalBoxPredictor (--/# params)
  ...