Optimization Mathematica:如何找到以指数为参数的表达式的最大值

Optimization Mathematica:如何找到以指数为参数的表达式的最大值,optimization,statistics,wolfram-mathematica,probability,Optimization,Statistics,Wolfram Mathematica,Probability,我在用Mathematica 8找到一个表达式最大值的解析解。当我使用Maximize命令试图找到解决方案时,它只是重复我输入的内容,这意味着Mathematica不知道如何做。我已经把问题缩小到这一点:似乎如果有一个指数是一个参数,那么最大化就不起作用了。这里有一个例子。这是伯努利试验的似然函数,其中a和b是成功和失败 Maximize[{t^a*(1 - t)^b, {t >= 0, t <= 1, a > 0, b > 0}}, {t}] 最大化[{t^a*(1-

我在用Mathematica 8找到一个表达式最大值的解析解。当我使用Maximize命令试图找到解决方案时,它只是重复我输入的内容,这意味着Mathematica不知道如何做。我已经把问题缩小到这一点:似乎如果有一个指数是一个参数,那么最大化就不起作用了。这里有一个例子。这是伯努利试验的似然函数,其中a和b是成功和失败

Maximize[{t^a*(1 - t)^b, {t >= 0, t <= 1, a > 0, b > 0}}, {t}]
最大化[{t^a*(1-t)^b,{t>=0,t0,b>0},{t}]
在这种情况下,我希望得到的解决方案是
a/(a+b)
。如果我提供像3和2这样的常量,而不是
a
b
,那么它就会找到解决方案


是否有其他方法指定表达式或约束,以便Mathematica可以找到指数为参数的表达式的最大值?我觉得我缺少了一些东西,因为这太简单了。

我一直在玩它,即移动条件、更改表达式形式、删除条件,但我也无法使
最大化
。但是,这可以直接解决,如下所示

Solve[ D[ t^a (1 - t)^b, t ] == 0, t]
Reduce[ D[ t^a (1 - t)^b, t ] == 0, t]
正如你所说,它给出了,
{{t->a/(a+b)}
。有时可以通过提供解决方案空间的更完整图片来帮助理解为什么像
Maximize
这样的函数会出现错误行为。它的调用类似于
Solve
,如下所示

Solve[ D[ t^a (1 - t)^b, t ] == 0, t]
Reduce[ D[ t^a (1 - t)^b, t ] == 0, t]
给予

((-1 + t) t != 0 && a == 0 && b == 0) || 
 (a + b != 0 && a b != 0 && t == a/(a + b)) || 
 (Re[b] > 1 && t == 1) || 
 (Re[a] > 1 && t == 0)

在这种情况下,这并没有多大帮助。

Mathematica中的最大化函数,应用于指数函数,只有当你对所有参数(在你的例子中是a、b和t)进行最大化时才有效。现在,你只需要最大化t,这是行不通的

考虑这个简单的例子(使用Mathematica 8.0):


Maximize[{Exp[a+b],a使用您的方法,我尝试向Reduce命令添加约束,Mathematica基本上挂起了。我认为这些约束应该通过消除无用的路径来帮助它,但可能不起作用。
Reduce[{D[t^a*(1-t)^b,t]==0,t>=0,t0,b>0,D[t^a*(1-t)^b,{t,2}]<0},t]
@Sam,不要将它们放在列表中,而是用
&&
将它们分开,例如,这就是我的
Reduce[D[t^a(1-t)^b,t]==0&&a>0&&b>0&&0@Sam,而且,正如您所看到的,这些条件并不是严格必需的,因为您所寻找的解决方案已经存在于列表中。添加这些条件只提供了边界上的点。非常感谢您的帮助。有趣的是,即使我们有Mathemat这样的工具,微积分仍然可以派上用场ica@Sam不客气。微积分也是一种工具,所以有几种不同的工具是值得的。显然Mma无法解决这个更简单的
Maximize[{t^a*(1-t),00},t]
@belisarius,这很奇怪,因为它很容易通过一阶导数方法解决。@rcollyer Yeap。我认为分析方法和代数方法之间仍然存在差距。如果你展示了这些命令的结果,这将更能说明问题。如果你感觉特别好,如果a和b可以任意选择,那就太好了是的,但它们是常数。不幸的是,它不适用于t。