kastin 发表于 2014-6-28 12:27:06

一个代数不等式

`a,b,c \geqslant 0`,且`a+b+c=1`,求`(2a-b)(2b-c)(2c-a)`的最大值和最小值。

能否有巧解法?欢迎大家给出新奇的解法。

kastin 发表于 2014-6-30 11:16:43

看到"由“陈计的一道代数不等式”所发出的疑问"这个帖子(http://bbs.emath.ac.cn/thread-2488-1-1.html),发现对于类似的多元轮换式的最值其实有一定内在限制的。我们这里也可以同样推广一下,找到临界值。

首先只考虑`n=3`(即三个变量)的情况,固定三个变量的和为`1`,将目标式中每一项内的系数`2`改为`k`,即:

`a,b,c \geqslant 0`,`a+b+c=1`,给定`k \geqslant 1`,求`P=(ka-b)(kb-c)(kc-a)`的最值。

由于条件和目标式是轮换式,故不是一般性可设`a\leqslant b \leqslant c`,此时`kc-a>0`已经提前满足. 根据mathe在2#的思路,该问题需要分情况讨论:
1) `ka-b>0`,`kb-c>0`,根据AG-GM不等式,`\D P \leqslant (\frac{k-1}{3})^3`,当且仅当`a=b=c`时等号成立。
2) `ka-b<0`,`kb-c<0`,此时`a=0`才能有最大值$$\begin{align*}P = (b-ka)(c-kb)(kc-a) &\leqslant b(c-kb+a)(kc-a+(k+1)a)\\ & = kb(1-(k+1)b)(1-b)=f(b)\end{align*}$$考虑`0\leqslant b <1`时,`f(b)`的极值情况。令`f'(b)=0`,求出两个根$$b_1=\frac{-\sqrt{k^2+k+1}+k+2}{3 (k+1)}, \quad b_2=\frac{\sqrt{k^2+k+1}+k+2}{3 (k+1)} $$分别代入`f''(b)`,有$$f''(b)|_{b=b_1}=-2 k \sqrt{k^2+k+1}<0(极大值位置),\quad f''(b)|_{b=b_2}=2 k \sqrt{k^2+k+1}>0(极小值位置).$$考虑到`k \geqslant 1`时,`\D b_1\leqslant \frac{1}{6} \left(3-\sqrt{3}\right)<1`,`\D b_2\leqslant \frac{1}{6} \left(3+\sqrt{3}\right)<1 `,故极值点可取到。于是,
当`a=0`,`b=b_1`,`c=1-b_1`时,`P`的极大值为$$\frac{k \left(\sqrt{k^2+k+1}+1\right)^2}{(\sqrt{k^2+k+1}-k) \left(\sqrt{k^2+k+1}+k+2\right)^3}$$或者分母有理化,化为$$
-\frac{k \left(-\sqrt{k^2+k+1}+k-1\right) \left(-\sqrt{k^2+k+1}+k+2\right) \left(\sqrt{k^2+k+1}+2 k+1\right)}{27 (k+1)^2}$$
当`a=0`,`b=b_2`,`c=1-b_2`时,P的极小值为$$\frac{\left(k \left(\sqrt{k^2+k+1}-1\right)\right)^2}{\left(\sqrt{k^2+k+1}+k\right) \left(-\sqrt{k^2+k+1}+k+2\right)^3}$$或者分母有理化为$$-\frac{k \left(-\sqrt{k^2+k+1}+2 k+1\right) \left(\sqrt{k^2+k+1}+k-1\right) \left(\sqrt{k^2+k+1}+k+2\right)}{27 (k+1)^2}$$
3) 仅有`ka-b<0`或者`kb-c<0`,此时`P<0`,`P`只能取得最小值,根据mathe推断,只有`ka-b<0`且`a=0`时`P`的绝对值最大,故才有最小值。分析过程与2)一模一样。

综上,`P`的最大值为$$\max\left\{\frac{k \left(\sqrt{k^2+k+1}+1\right)^2}{\left(\sqrt{k^2+k+1}-k\right) \left(\sqrt{k^2+k+1}+k+2\right)^3}, \frac{(k-1)^3}{27}\right\}$$最小值为$$\frac{\left(k \left(\sqrt{k^2+k+1}-1\right)\right)^2}{\left(\sqrt{k^2+k+1}+k\right) \left(-\sqrt{k^2+k+1}+k+2\right)^3}$$易知`\D k\geqslant \frac{3+\sqrt{5}}{2}\approx2.618033988749895 `时,`P`的最大值为`\D \frac{(k-1)^3}{27}`,否则是前者。

很明显,1 楼中是在`k=2`时的特例,而`2<2.618`,所以
当`a=0`,`\D b=\frac{4-\sqrt{7}}{9}`,`\D c=\frac{5+\sqrt{7}}{9}`时,`P`的最大值为`\D \frac{4(7\sqrt{7}-10)}{243} (\approx 0.14025117987575533)`;
当`a=0`,`\D b=\frac{ 4+\sqrt{7}}{9}`,`\D c=\frac{5-\sqrt{7}}{9}`时,`P`的最小值为`\D -\frac{4}{243}\left(10+7 \sqrt{7}\right)(\approx -0.46946928687164013)`


若将`a,b,c`的和改成`S`,那么是否可以继续按照上述分析下去?进一步,如果`n=4,5,...`上述临界值也会随之改变,不知会有怎样的变动。目前对于`k=2,S=1,n>3`的情况,mathe跟帖有详述。

mathe 发表于 2014-6-28 13:09:41

显然, 当$2a>=b,2b>=c,2c>=a$时最大值在$a=b=c$时取到$1/27$
而三个数不妨设a最小,余下情况只有$2a<b$的情况,分别需要讨论三个乘数中两个或一个负数情况,都显然a=0时取到最值,所以这时b=1-c
代入得到c的三次方程,在导数为0时取极值,正好可以得出全局最大和最小值。

cn8888 发表于 2014-6-28 15:29:51

用拉格朗日乘子法可以得到结果,
定义域是三维空间的一个三角形,
然后依次对边界,中心区域使用拉格朗日乘子法.

cn8888 发表于 2014-6-28 15:31:45

Clear["Global`*"];(*Clear all variables*)
Print["最大值,精确解,数值化,数值求解"]
Maximize[{(2*a-b)(2*b-c)(2*c-a),a+b+c==1&&a>=0&&b>=0&&c>=0},{a,b,c}]
N@Maximize[{(2*a-b)(2*b-c)(2*c-a),a+b+c==1&&a>=0&&b>=0&&c>=0},{a,b,c}]
NMaximize[{(2*a-b)(2*b-c)(2*c-a),a+b+c==1&&a>=0&&b>=0&&c>=0},{a,b,c}]
Print["最小值,精确解,数值化,数值求解"]
Minimize[{(2*a-b)(2*b-c)(2*c-a),a+b+c==1&&a>=0&&b>=0&&c>=0},{a,b,c}]
N@Minimize[{(2*a-b)(2*b-c)(2*c-a),a+b+c==1&&a>=0&&b>=0&&c>=0},{a,b,c}]
NMinimize[{(2*a-b)(2*b-c)(2*c-a),a+b+c==1&&a>=0&&b>=0&&c>=0},{a,b,c}]
运算结果是
During evaluation of In:= 最大值,精确解,数值化,数值求解

Out= {-(4/243) (10 - 7 Sqrt), {a -> 1 + 1/9 (-4 + Sqrt),
b -> 0, c -> 1/9 (4 - Sqrt)}}

Out= {0.140251, {a -> 0.849528, b -> 0., c -> 0.150472}}

Out= {0.037037, {a -> 0.333333, b -> 0.333333, c -> 0.333333}}

During evaluation of In:= 最小值,精确解,数值化,数值求解

Out= {4/243 (-10 - 7 Sqrt), {a -> 1 + 1/9 (-4 - Sqrt),
b -> 0, c -> 1/9 (4 + Sqrt)}}

Out= {-0.469469, {a -> 0.261583, b -> 0., c -> 0.738417}}

Out= {-0.469469, {a -> 0.261583, b -> 7.12924*10^-9,
c -> 0.738417}}
运算结果很失望,mathematica的最大值居然不一样

cn8888 发表于 2014-6-28 15:32:12

充分证明机器永远是机器

cn8888 发表于 2014-6-28 15:36:13

使用lingo11求解,
max=(2*a-b)*(2*b-c)*(2*c-a);
a+b+c=1;
Global optimal solution found.
Objective value:                           0.1402512
Objective bound:                           0.1402512
Infeasibilities:                              0.000000
Extended solver steps:                              47
Total solver iterations:                        2136


                     Variable         Value      Reduced Cost
                              A       0.1504721            0.000000
                              B       0.8495279            0.000000
                              C      0.000000            2.367449

                            Row    Slack or Surplus      Dual Price
                              1       0.1402512            1.000000
                              2      0.000000         0.4207535
最小值
min=(2*a-b)*(2*b-c)*(2*c-a);
a+b+c=1;
Global optimal solution found.
Objective value:                            -0.4694693
Objective bound:                            -0.4694700
Infeasibilities:                              0.000000
Extended solver steps:                              32
Total solver iterations:                        2558


                     Variable         Value      Reduced Cost
                              A      0.000000            3.577326
                              B       0.7384168            0.000000
                              C       0.2615832          -0.2296517E-07

                            Row    Slack or Surplus      Dual Price
                              1      -0.4694693         -1.000000

cn8888 发表于 2014-6-28 15:52:22

为了方便复制,
源代码贴出来
Clear["Global`*"];(*Clear all variables*)
(*很显然定义域是三维空间的一个三角形,先用拉格朗日乘子法计算中心区域的可能的最值*)
fun=(2*a-b)(2*b-c)(2*c-a)+x*(a+b+c-1)
fa=D
fb=D
fc=D
fx=D
sol1=Solve[{fa==0,fb==0,fc==0,fx==0},{a,b,c,x}]
Print["显示三角形内部的最值"]
sol11=fun/.sol1
Print["数值化"]
N@sol11


(*不失一般性,求出c=0的这条边上的最值,a=0,b=0的边是对称的*)
c=0
fun=(2*a-b)(2*b-c)(2*c-a)+x*(a+b+c-1)
fa=D
fb=D
fx=D
sol2=Solve[{fa==0,fb==0,fx==0},{a,b,x}]
Print["显示边上的最值"]
sol22=fun/.sol2
Print["数值化"]
N@sol22


使用拉格朗日乘子法的最终求解结果
In:= Clear["Global`*"];(*Clear all \
variables*)(*很显然定义域是三维空间的一个三角形,先用拉格朗日乘子法计算中心区域的可能的最值*)fun = (2*a -
   b) (2*b - c) (2*c - a) + x*(a + b + c - 1)
fa = D
fb = D
fc = D
fx = D
sol1 = Solve[{fa == 0, fb == 0, fc == 0, fx == 0}, {a, b, c, x}]
Print["显示三角形内部的最值"]
sol11 = fun /. sol1
Print["数值化"]
N@sol11


(*不失一般性,求出c=0的这条边上的最值,a=0,b=0的边是对称的*)
c = 0
fun = (2*a - b) (2*b - c) (2*c - a) + x*(a + b + c - 1)
fa = D
fb = D
fx = D
sol2 = Solve[{fa == 0, fb == 0, fx == 0}, {a, b, x}]
Print["显示边上的最值"]
sol22 = fun /. sol2
Print["数值化"]
N@sol22


Out= (2 a - b) (2 b - c) (-a + 2 c) + (-1 + a + b + c) x

Out= -(2 a - b) (2 b - c) + 2 (2 b - c) (-a + 2 c) + x

Out= 2 (2 a - b) (-a + 2 c) - (2 b - c) (-a + 2 c) + x

Out= 2 (2 a - b) (2 b - c) - (2 a - b) (-a + 2 c) + x

Out= -1 + a + b + c

Out= {{x -> -(1/9), b -> 1/3, c -> 1/3, a -> 1/3}, {x -> 0,
b -> 1/7, c -> 2/7, a -> 4/7}, {x -> 0, b -> 2/7, c -> 4/7,
a -> 1/7}, {x -> 0, b -> 4/7, c -> 1/7, a -> 2/7}}

During evaluation of In:= 显示三角形内部的最值

Out= {1/27, 0, 0, 0}

During evaluation of In:= 数值化

Out= {0.037037, 0., 0., 0.}

Out= 0

Out= -2 a (2 a - b) b + (-1 + a + b) x

Out= -4 a b - 2 (2 a - b) b + x

Out= -2 a (2 a - b) + 2 a b + x

Out= -1 + a + b

Out= {{x -> 4/81 (10 - 7 Sqrt), a -> 1/9 (4 - Sqrt),
b -> 1/9 (5 + Sqrt)}, {x -> 4/81 (10 + 7 Sqrt),
a -> 1/9 (4 + Sqrt), b -> 1/9 (5 - Sqrt)}}

During evaluation of In:= 显示边上的最值

Out= {-(2/
    81) (4 - Sqrt) (5 + Sqrt) (1/9 (-5 - Sqrt) +
   2/9 (4 - Sqrt)) +
4/81 (10 - 7 Sqrt) (-1 + 1/9 (4 - Sqrt) + 1/9 (5 + Sqrt)),
4/81 (10 + 7 Sqrt) (-1 + 1/9 (5 - Sqrt) + 1/9 (4 + Sqrt)) -
2/81 (5 - Sqrt) (4 + Sqrt) (1/9 (-5 + Sqrt) +
   2/9 (4 + Sqrt))}

During evaluation of In:= 数值化

Out= {0.140251, -0.469469}

cn8888 发表于 2014-6-28 16:17:47

我感觉这个是出题目的人给出的一个陷阱,然别人用拉格朗日乘子法搞,
但是最大值与最小值都在三角形的边界上得到

cn8888 发表于 2014-6-28 16:26:40

陈计的一道代数不等式
http://bbs.emath.ac.cn/thread-164-1-1.html

这个也不是在对称的情况下求得最值的

cn8888 发表于 2014-6-28 16:33:56

(2*a - b) (2*b - c) (2*c - d) (2*d - a)
在a b c d都非负以及a+b+c+d=1的情况下
的最值,谁能求一下???????????????
页: [1] 2 3 4 5 6 7 8
查看完整版本: 一个代数不等式