2023-03-01 18:09阅读: 865评论: 0推荐: 0

均值不等式学习笔记

从平均数说起

我们都知道 n 个数的平均数表示为:

a1+a2+a3+ann

这种最常见的平均数被称为“算术平均数”(Arithmetic Mean)。还有一种常用的平均数为“几何平均数”(Geometric Mean),计算公式如下:

a1a2a3ann

其几何意义为:考虑一个 n 维“长方体”,各边长度用 a 数组表示,则几何平均数为“与其体积相等的 n 维正方体的边长”。

几何平均数在金融领域也十分常用,比如:初始股票有 100 元,第一个月增长了 100%200 元,第二个月跌了 50% 回到 100 元。现在计算平均增长率,如果使用算术平均数,则计算得 100%+(50%)2=25%

但通过常识我们知道答案应该为 0。朴素的计算方法为:假设平均增长率为 r,则需要满足 (1+r)(1+r)=(1+100%)(150%)。此时的 r 才是需要求的平均增长率。可以发现,这个式子事实上就是在求 (1+100%)(150%) 的几何平均数。

回到数学领域。事实上,这两种平均数是有严格的大小关系的,即均值不等式。

均值不等式

均值不等式(AM-GM Inequality)是数学中非常常用的一个公式,表示为:

a1+a2+a3+anna1a2a3ann

即,n 个数的算数平均值大于等于几何平均值。该不等式成立的条件为这 n 个数是非负数。不等式取等的充分必要条件为这 n 个数全部相等。

证明

证明有很多种,这里就拿最常见的一种证明讲解。

首先考虑只有两个数的情况。此时的证明比较容易:

(xy)20x2+y22xy0x2+y22xy

x=a1,y=a2,则有:

a1+a22a1a2a1+a22a1a2

于是两个数的均值不等式得证。

接下来,推广到 n=2k 时的证明。使用数学归纳法:

假设均值不等式在 n=k 时成立,我们证明其在 n=2k 时成立:

a1+a2+a3++a2k2ka1a2a3a2k2k

12(a1+a2++akk+ak+1+ak+2++a2kk)a1a2akkak+1ak+2a2kk

x1=a1+a2++akk,x2=ak+1+ak+2++a2kk,y1=a1a2akk,y2=ak+1ak+2a2kk,则由于假设 n=k 时成立,所以 x1y1,x2y2。又因为均值不等式在 n=2 时成立,所以:

12(x1+x2)12(y1+y2)y1y2

由于 n=2 时成立,所以可以推出 n=4,8,16 时也成立。故 n=2k 时成立。

然后我们考虑倒序证明。我们证明:若均值不等式在 n=k 时成立,则在 n=k1 时也成立。这个证明就比较容易了:

设这 k1 个数的算术平均值为 A,则加入元素 A 后形成的 k 个数的数组算术平均值不变。由于在 n=k 时成立,所以:

Aa1a2ak1Ak

两边同时取 k 次方,得:

Aka1a2ak1AAk1a1a2ak1

再同时取 k1 次根,得:Aa1a2ak1k1

于是得证。由于对于每个 n 都存在某个 k 使得 n2k,所以可以从 2k 一步步倒推,所以均值不等式对于任意 n 成立。

对于两个数的均值不等式,还有一个巧妙的无字证明如下图:

由相似或勾股定理可以得出,黄线的长度即为 a,b 的几何平均数。

应用

在应用上,有两个非常常用的转化,这里先写出来以省略后面的推导篇幅。

a1+a2+anna1a2anna1a2an(a1+a2+ann)n

即:n 个数的和大于等于 n 倍几何平均;n 个数的积小于等于算术平均的 n 次方。证明显然,只是将均值不等式移了一下项。

问题一:证明对于周长固定的矩形,正方形的面积最大。

设周长为 C,长宽为 a,b,则有 a+b=C/2。面积为 ab。由转化二可知,ab(a+b2)2=(C4)2,因此面积 ab 最大不超过 (C4)2。由取等条件可知,ab=(C4)2 当且仅当 a=b,即为正方形。

问题二:某工厂要制造一个无盖的圆柱形桶,要求容积为 32π 立方米。底面的金属每平方米 3 元,侧面的每平方米 2 元。求最小造价以及方案。

设底面半径为 r,高为 h,则要求 πr2h=32π,即 r2h=32。此时的花费为 πr23+2πrh2。由均值不等式的转化一:

πr23+2πrh2=πr23+2πrh+2πrh3πr232πrh2πrh3=3π12r4h23=3π12(r2h)23=9π

由取等条件可知,当 πr23=2πrh 时花费最小,即 h=32r

这个不等式的推导涉及到“拆项”的技巧,即第一行中把 2πrh2 拆成 2πrh+2πrh。仔细观察上面的过程可以发现,均值不等式实际上将加法转换为了乘法。虽然是否拆项在加法上没有区别,但转化到乘法就会导致次数的不同。此处是为了凑 r4h2(因为给定 rh 为常数)。

例题

题目传送门

题意:一个小球下落时间为 Ag,初始时 g=1,每次可以花费 B 的时间将 g 增加 1,问最小总时间。

考虑答案关于 g 的函数 f(g)=Ag+B(g1),由于最小值与常数无关,所以可以看成 f(g)=Ag+Bg,则由均值不等式:

f(g)=Ag+Bg=A2g+A2g+Bg3A2B43

由此可知函数最小值不会小于 3A2B43,取等条件为 A2g=Bg,即 g=(A2B)23

By EternalAlexander

#include <bits/stdc++.h>
const long double eps = 1e-10;
using ldb = long double;
using ll = long long;
ldb a,b;
long double calc(long double x) {
	return x * b + (long double) a / std::sqrt(1 + x);
}

int main() {
	std::cin >> a >> b;
	long double x = pow( a / (2 * b) , 2.0 / 3 ) - 1;
	ll x1 = x;
	long double ans = a;
	for (ll p = x1 - 10; p <= x1 + 10; ++ p) ans = std::min(ans,calc(p));
	printf("%.10Lf",ans);
	return 0;
}
posted @   曹轩鸣  阅读(865)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起