用 mathematica 求多元函数的极值,为何有的不成功
(1) 当 \( a, b, c\) 均非负但不全为零时,求\( \displaystyle \frac{a}{2a+b+c}+\frac{b}{2b+a+c}+\frac{c}{2c+a+b} \) 的最小值。(2) 当 \( a, b, c\) 均非负但不全为零时,求\( \displaystyle \frac{a}{2a+b+c}+\frac{b}{2b+a+c}+\frac{c}{2c+a+b}-\frac{ab+bc+ca}{a^2+b^2+c^2} \) 的最小值。
用 mathematica 做,对于 (1):
Minimize[{a/(2 a + b + c) + b/(2 b + a + c) + c/(2 c + b + a), a >= 0,
b >= 0, c > 0}, {a, b, c}]
可得到最小值是 \( \frac{1}{2} \)。
但是用同样方法做 (2),就出不了结果了。这是因为软件还不够强大?有没有改进的方法,让软件能够胜任? 你为什么不能用数值解呢?
数值解精确到一千位,然后用rootapproximate函数反推精确解 既然是对称形式,可以消对称减少一个变量
a/(2 a+b+c)+b/(2 b+a+c)+c/(2 c+a+b)-(a b+b c+c a)/(a^2+b^2+c^2)/.{a->u c,b->v c}//Factor/@#&//Minimize[{#,u>=0,v>=0},{u,v}]&
菜鸟既看不懂一行mathematica代码也只能用数值解 a/(2 a+b+c)+b/(2 b+a+c)+c/(2 c+a+b)-(a b+b c+c a)/(a^2+b^2+c^2)/.{a->u c,b->v c}//Factor/@#&//Minimize[{#,u>=0,v>=0},{u,v}]&//{#[],{a->u c,b->v c}/.#[]}&
这样能还原中间变量 zeroieme 发表于 2018-7-20 18:26
既然是对称形式,可以消对称减少一个变量
谢谢! 菜鸟还须慢慢发呆一阵子。 TSC999 发表于 2018-7-22 09:11
谢谢! 菜鸟还须慢慢发呆一阵子。
Clear["Global`*"];(*Clear all variables*)
NMinimize[{a/(2*a+b+c)+b/(2*b+a+c)+c/(2*c+b+a)-(a*b+b*c+c*a)/(a^2+b^2+c^2),a>=0,b>=0,c>=0},{a,b,c},
AccuracyGoal->800,PrecisionGoal->800,WorkingPrecision->1200]
最小值-0.25,但是点似乎不唯一,a=b=c的时候取到 Clear["Global`*"];(*Clear all variables*)
b=a;
c=a;
ff=a/(2*a+b+c)+b/(2*b+a+c)+c/(2*c+b+a)-(a*b+b*c+c*a)/(a^2+b^2+c^2)
这下你发现ff=-1/4
有无穷多组解答,
所以可以用数值解先测试一下结果,最后才追求符号解 本帖最后由 zeroieme 于 2018-7-23 16:30 编辑
TSC999 发表于 2018-7-22 09:11
谢谢! 菜鸟还须慢慢发呆一阵子。
说错了,可约去一变量的理由应当是每个分式的分子分母是齐次多项式,而不是对称形式。
页:
[1]