如何将数学表达式转化为与Mathematica符号最小化功能等效的长尾关键词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计333个文字,预计阅读时间需要2分钟。
Mathematica 提供了一个二次函数符号求解器,例如使用 Minimize 函数求解二次函数最小值问题,如:Minimize[2x^2 - yx + 5, {x}]。此外,还提供了解决二次方程的符号求解器,如:Solve[2 + x^2 - y + 5==0, x]。将生成以下解方案。
Mathematica有一个二次(也可能是其他)函数的符号求解器,例如:Minimize[2x^2-yx+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,然后将其替换为原始函数.
本文共计333个文字,预计阅读时间需要2分钟。
Mathematica 提供了一个二次函数符号求解器,例如使用 Minimize 函数求解二次函数最小值问题,如:Minimize[2x^2 - yx + 5, {x}]。此外,还提供了解决二次方程的符号求解器,如:Solve[2 + x^2 - y + 5==0, x]。将生成以下解方案。
Mathematica有一个二次(也可能是其他)函数的符号求解器,例如:Minimize[2x^2-yx+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,然后将其替换为原始函数.

