EulerKepler 发表于 2023-10-4 15:32:24

求最小值为什么运行不出来?

在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] \]
运行几个小时却还在运行中?

EulerKepler 发表于 2023-10-4 15:36:13

这个可以
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}]

lihpb00 发表于 2023-10-5 20:17:49

上下两行不是一样的吗?

Jack315 发表于 2023-10-6 08:14:39

改用 NMinimize 命令试试。

EulerKepler 发表于 2023-10-7 10:03:52

lihpb00 发表于 2023-10-5 20:17
上下两行不是一样的吗?

大致一样,唯一就是b和c的位置有点差别。我也奇怪,程序长时间运行没有结果,不知发现了什么情况,请问有办法诊断和调试吗?

nyy 发表于 2023-10-7 10:44:27

第二个求解结果

\[\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

northwolves 发表于 2023-10-7 16:34:50

x=FindMinimum[{(c-a) Sqrt+(c-b) Sqrt,(a+c) (b+c)==-1&&a<=b<=c},{a,b,c},WorkingPrecision->50]

FindMinimum也很快。

EulerKepler 发表于 2023-10-9 19:16:25

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 ...

只把<改成<=没有用,是不是我计算机配置太差?

EulerKepler 发表于 2023-10-9 19:17:09

northwolves 发表于 2023-10-7 16:34
FindMinimum也很快。

FindMinimum这个可以,只是变成结果是小数,不再是无理数的形式了。

northwolves 发表于 2023-10-9 21:00:10

本帖最后由 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
查看完整版本: 求最小值为什么运行不出来?