编程语言
首页 > 编程语言> > python – 在Sympy中,什么相当于Mathematica的符号最小化函数?

python – 在Sympy中,什么相当于Mathematica的符号最小化函数?

作者:互联网

Mathematica有一个二次(也可能是其他)函数的符号求解器,例如:

Minimize[2 x^2 - y x + 5, {x}]

将产生以下解决方案:

{1/8 (40-y^2),{x->y/4}}

SymPy或衍生库是否支持此功能?或者我必须自己实施?

非常感谢您的意见!

解决方法:

我不确定这种方法的一般性,但以下代码:

import sympy
from sympy.solvers import solve

x = sympy.var('x')
y = sympy.var('y')

f = 2*x**2 - y*x + 5

r = solve(f.diff(x), x)
f = f.subs(x, r[0])

print(f)    
print(r)

输出:

-y**2/8 + 5
[y/4]

第一行输出(-y ** 2/8 5)相当于Mathematica的1/8(40-y ^ 2),只是以不同方式排序.

第二行([y / 4])类似于Mathematica的{x-> y / 4}(求解返回根列表)

我们的想法是,我们首先将f的偏导数相对于x,然后将其替换为原始函数.

标签:python,sympy,minimization
来源: https://codeday.me/bug/20190710/1425360.html