Mathematica有一个二次(也可能是其他)函数的符号求解器,例如:Minimize[2x^2-yx+5,{x}] Mathematica有一个二次(也可能是其他)函数的符号求解器,例如: Minimize[2 x^2 - y x + 5, {x}] 将产生以下解决方案
Mathematica有一个二次(也可能是其他)函数的符号求解器,例如:
Minimize[2 x^2 - y x + 5, {x}]
将产生以下解决方案:
{1/8 (40-y^2),{x->y/4}}
SymPy或衍生库是否支持此功能?或者我必须自己实施?
非常感谢您的意见!
解决方法:
我不确定这种方法的一般性,但以下代码:
import sympyfrom sympy.solvers import solvex = sympy.var('x')y = sympy.var('y')f = 2*x**2 - y*x + 5r = 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,然后将其替换为原始函数.
【本文由:高防服务器ip http://www.558idc.com/gfip.html 复制请保留原URL】