首页 > 解决方案 > Sympy多元函数分析

问题描述

我有一些表达expr需要分析

c, l = symbols('c l', real=True, positive=True)
w = symbols('w', real=True)

expr = (w ** 2) / ((2 * c * l * w**4) - 3 * w**2 + (2/(c*l)))
expr

输出:

           2         
          w          
─────────────────────
       4      2    2 
2⋅c⋅l⋅w  - 3⋅w  + ───
                  c⋅l

我想分析这个函数 wrt w。更具体地说,我想找到应该出现的表达式的最大值

      1  
w = ─────
    √c⋅√l

当导数为零时,我尝试解决它:

solve(diff(expr, w))

输出:

⎡⎧    1  ⎫        ⎤
⎢⎪c: ────⎪, {w: 0}⎥
⎢⎨      2⎬        ⎥
⎢⎪   l⋅w ⎪        ⎥
⎣⎩       ⎭        ⎦

我不确定如何使用上面的输出并将其表示为land的函数c。我会比较喜欢

 2    1 
w  = ───
     c⋅l

有没有更标准的分析expr方法w

标签: sympy

解决方案


您需要知道solve要解决哪个符号:

In [144]: solve(expr.diff(w), w)
Out[144]: 
⎡    -1      1  ⎤
⎢0, ─────, ─────⎥
⎣   √c⋅√l  √c⋅√l⎦

推荐阅读