均值不等式学习笔记
从平均数说起
我们都知道
这种最常见的平均数被称为“算术平均数”(Arithmetic Mean)。还有一种常用的平均数为“几何平均数”(Geometric Mean),计算公式如下:
其几何意义为:考虑一个
几何平均数在金融领域也十分常用,比如:初始股票有
但通过常识我们知道答案应该为
回到数学领域。事实上,这两种平均数是有严格的大小关系的,即均值不等式。
均值不等式
均值不等式(AM-GM Inequality)是数学中非常常用的一个公式,表示为:
即,
证明
证明有很多种,这里就拿最常见的一种证明讲解。
首先考虑只有两个数的情况。此时的证明比较容易:
令
于是两个数的均值不等式得证。
接下来,推广到
假设均值不等式在
设
由于
然后我们考虑倒序证明。我们证明:若均值不等式在
设这
两边同时取
再同时取
于是得证。由于对于每个
对于两个数的均值不等式,还有一个巧妙的无字证明如下图:
由相似或勾股定理可以得出,黄线的长度即为
应用
在应用上,有两个非常常用的转化,这里先写出来以省略后面的推导篇幅。
即:
问题一:证明对于周长固定的矩形,正方形的面积最大。
设周长为
问题二:某工厂要制造一个无盖的圆柱形桶,要求容积为
立方米。底面的金属每平方米 元,侧面的每平方米 元。求最小造价以及方案。
设底面半径为
由取等条件可知,当
这个不等式的推导涉及到“拆项”的技巧,即第一行中把
例题
题意:一个小球下落时间为
,初始时 ,每次可以花费 的时间将 增加 ,问最小总时间。
考虑答案关于
由此可知函数最小值不会小于
#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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步