wolfram-mathematica - 是否有内置的 Mathematica 函数来查找方程中的运算符而不是数字?

标签 wolfram-mathematica equation-solving

如何在 Mathematica 中最好地完成以下任务?

 In[1] := Solve[f[2,3]==5,f ∈ {Plus,Minus,Divide}]

Out[1] := Plus

最佳答案

需要的表达式语法可以转换成一组Solve表达式:

fSolve[expr_, f_ ∈ functions_List] :=
  Map[Solve[(expr /. f -> #) && f == #, f] &, functions] // Flatten

sample 用途:
In[6]:= fSolve[f[2,3] == 5, f ∈ {Plus, Subtract, Divide}]
Out[6]= {f -> Plus}

In[7]:= fSolve[f[4,2] == 2, f ∈ {Plus, Subtract, Divide}]
Out[7]= {f -> Subtract, f -> Divide}

这种方法的优点是Solve的全部功率仍然可用于更复杂的表达式,例如
In[8]:= fSolve[D[f[x], x] < f[x], f ∈ {Log, Exp}]
Out[8]= {f -> ConditionalExpression[Log, x Log[x]∈Reals && x>E^ProductLog[1]]}

In[9]:= fSolve[D[f[x], x] <= f[x], f ∈ {Log, Exp}]
Out[9]= {f -> ConditionalExpression[Log, x Log[x]∈Reals && x>=E^ProductLog[1]],
         f -> ConditionalExpression[Exp, E^x ∈ Reals]}

关于wolfram-mathematica - 是否有内置的 Mathematica 函数来查找方程中的运算符而不是数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7943198/

相关文章:

performance - Mathematica 中两个奇怪的效率问题

matrix - 为什么回代 Solve[] 的结果没有给出预期的结果?

c++ - 固定维数(N=9)、对称、半正定稠密线性系统的快速解

haskell - Haskell 中的模方程

c++ - LAPACK dgetrs 与 dgesv

wolfram-mathematica - Mathematica 中为数学书制作图形的简单编程技术/技巧?

wolfram-mathematica - 具有无序子表达式的模式

wolfram-mathematica - 在mathematica中找到两个ListLinePlot的交点

boolean - 为什么(a 和(不是 b))或(a 和 b)= a?

complex-numbers - 如何在 Maxima CAS 中求解指数方程