Wolfram mathematica Mathematica 8中带等式约束的函数极小化

Wolfram mathematica Mathematica 8中带等式约束的函数极小化,wolfram-mathematica,mathematica-8,Wolfram Mathematica,Mathematica 8,在Mathematica 8中使用具有简单等式的约束时,最小化不起作用。例如 FindMinimum[{x^2 + y^2, y == 1}, {x, y}] 在Mathematica 6中工作正常,但在版本8中出现错误。其他人能证实(或解释)这一点吗?看起来使用约束修复其中一个参数会混淆版本8。放置xy==1是可以的,还有任何不等式 有什么简单的解决办法吗?我尝试过改变方法,运气不好。我希望保留参数列表中的所有参数,但使用简单约束保留其中一些参数,而不是从列表中删除参数名称。我在版本6中有

在Mathematica 8中使用具有简单等式的约束时,最小化不起作用。例如

FindMinimum[{x^2 + y^2,  y == 1}, {x, y}]
在Mathematica 6中工作正常,但在版本8中出现错误。其他人能证实(或解释)这一点吗?看起来使用约束修复其中一个参数会混淆版本8。放置
xy==1
是可以的,还有任何不等式


有什么简单的解决办法吗?我尝试过改变
方法
,运气不好。我希望保留参数列表中的所有参数,但使用简单约束保留其中一些参数,而不是从列表中删除参数名称。我在版本6中有一个工作代码,在版本8中不再工作。

您的语法似乎不正确:

FindMinimum[{x^2 + y^2,  y == 1}, {x, y}]
它要求以
y
值开始
x
。这对我来说没什么意义

也许您正在尝试执行以下操作:

Minimize[{x^2 + y^2, y == 1}, {x, y}]
输出:{1,{x->0,y->1}
显然你的语法是有效的。考虑<代码>最小化/代码>,如上面所示,是一个可行的解决问题的方法。

<代码>中[ 31 ]:= n最小化({x^ 2 +y^ 2,y= 1 },{x,y})
In[31]:= NMinimize[{x^2 + y^2, y == 1}, {x, y}]

Out[31]= {1., {x -> -3.20865*10^-9, y -> 1.}}

In[32]:= FindMinimum[{x^2 + y^2, 1 - 10^-10 <= y <= 1 + 10^-10}, {x, y}]

Out[32]= {1., {x -> 0., y -> 1.}}
Out[31]={1.,{x->-3.20865*10^-9,y->1} 在[32]:=findminium[{x^2+y^2,1-10^-10 1.} 然而,我想知道如何强迫mma继续搜索,即使它遇到了无限的表达式?有人能分享你的想法吗


谢谢^ ^

另一个解决方法是使用版本9

In[1]:= FindMinimum[{x^2 + y^2, y == 1}, {x, y}]
Out[1]= {1., {x -> 0., y -> 1.}}
也就是说,您在上面展示的是一个bug,它已经在将来的版本中修复了自己

丹尼尔·利奇布劳
Wolfram Research

文档表明他的语法是合理的。下面是一个例子:findminium[{x+y,x+2y>=3&&x>=0&&y>=0&&y[Element]Integers},{x,y}]@卡西尼:让我惊讶的是你是对的!我从来没有这样使用过
findminium
。我仍然不知道它是否有意义。我猜这里还有另一个问题,但我没有时间去寻找它。我同样感到惊讶;从语法着色来看,Mathematica前端似乎也感到惊讶(注意绿色代表x,蓝色代表y的有趣组合)。我试图做一个“最简单的例子”。实际上,我使用的是带起点的符号,但这并没有改变一个事实,即用于6的代码在8中被破坏。我将检查最小化是否是一个很好的替换,谢谢你的提示。我越来越怀疑这是Mathematica 8中的一个错误。@Boocko,作为参考,我使用Mathematica 7,并且我也会遇到错误和错误谢谢你,Daniel Lichtblau。你能帮我测试一下版本9中的优化代码吗?a =((x 50)^ 2(y - 50)^ 2)^(1/2)+e;f=SiN[a] /a+1;n最小化({ f,0),你建议V9发布在那附近吗?
In[1]:= FindMinimum[{x^2 + y^2, y == 1}, {x, y}]
Out[1]= {1., {x -> 0., y -> 1.}}