求最小值为什么运行不出来?
在mathematica里面,为什么这个求最小值运行大概10分钟\[ \text{Minimize}\left[\left\{(b-a) \sqrt{a^2+2 a b+b^2+1}+(c-b) \sqrt{b^2+2 b c+c^2+1},(a+b) (b+c)=-1\land a<b\land b<c\right\},\{a,b,c\}\right] \]
可以得到结果
\[\left\{\frac{3 \sqrt{3}}{2},\left\{a\to -\frac{1}{2 \left(\sqrt{2}-\frac{1}{\sqrt{2}}\right)},b\to -\frac{1}{\sqrt{2}},c\to \sqrt{2}\right\}\right\}\]
而
\[ \text{Minimize}\left[\left\{(c-a) \sqrt{a^2+2 a c+c^2+1}+(c-b) \sqrt{b^2+2 b c+c^2+1},(a+c) (b+c)=-1\land a<b\land b<c\right\},\{a,b,c\}\right] \]
运行几个小时却还在运行中?
这个可以
Minimize[{(-a + b) Sqrt + (-b + c) Sqrt, (a + b) (b + c) == -1 && a < b &&b < c}, {a, b, c}]
这个不行
Minimize[{(-a + c) Sqrt + (-b + c) Sqrt[ 1 + b^2 + 2 b c + c^2], (a + c) (b + c) == -1 && a < b && b < c}, {a, b, c}]
上下两行不是一样的吗? 改用 NMinimize 命令试试。 lihpb00 发表于 2023-10-5 20:17
上下两行不是一样的吗?
大致一样,唯一就是b和c的位置有点差别。我也奇怪,程序长时间运行没有结果,不知发现了什么情况,请问有办法诊断和调试吗? 第二个求解结果
\[\left\{\frac{3 \sqrt{3}}{2},\left\{a\to -\sqrt{2},b\to \frac{1}{\sqrt{2}},c\to \frac{1}{\sqrt{2}}\right\}\right\}\]
建议你把其中的a<b b<c修改成a<=b b<=c x=FindMinimum[{(c-a) Sqrt+(c-b) Sqrt,(a+c) (b+c)==-1&&a<=b<=c},{a,b,c},WorkingPrecision->50]
FindMinimum也很快。 nyy 发表于 2023-10-7 10:44
第二个求解结果
\[\left\{\frac{3 \sqrt{3}}{2},\left\{a\to -\sqrt{2},b\to \frac{1}{\sqrt{2}},c\to \fr ...
只把<改成<=没有用,是不是我计算机配置太差? northwolves 发表于 2023-10-7 16:34
FindMinimum也很快。
FindMinimum这个可以,只是变成结果是小数,不再是无理数的形式了。 本帖最后由 northwolves 于 2023-10-9 22:18 编辑
x=FindMinimum[{(c-a) Sqrt+(c-b) Sqrt,(a+c) (b+c)==-1&&a<=b<=c},{a,b,c},WorkingPrecision->20]
{2.5980762013711028316,{a->-1.4142135606850823049,b->0.70710678472156829333,c->0.70710678134554538765}}
目测b=c or a+b+c=0,添加到条件之中:
Minimize[{(c-a) Sqrt+(c-b) Sqrt,(a+c) (b+c)==-1&&a<=b<=c&&b=c},{a,b,c}]
Minimize[{(c-a) Sqrt+(c-b) Sqrt,(a+c) (b+c)==-1&&a<=b<=c&&b+c+a==0},{a,b,c}]
秒出
$\{\frac{3 \sqrt{3}}{2},\{a\to -\sqrt{2},b\to \frac{1}{\sqrt{2}},c\to \frac{1}{\sqrt{2}}\}\}$
页:
[1]
2