求证平方和函数$f(x)=\sum_{i=1}^n(x-a_i)^2$取最小值时x为算术平均数的方法
嘿,这里有几种不同的证明思路,说不定能给你新的启发,咱们一个个来看:
这是最直观的分析学路子,适合已经接触过导数的场景:
- 先把函数展开成标准二次函数形式:
f(x) = Σ(x - a_i)² = nx² - 2(Σa_i)x + Σa_i² - 对x求一阶导数,找临界点:
f’(x) = 2nx - 2Σa_i - 令导数等于0,解出的x就是算术平均数:
2nx - 2Σa_i = 0 ⇒ x = (a₁+a₂+...+aₙ)/n - 验证这是最小值点:二阶导数
f''(x)=2n,因为n是正整数,二阶导数恒正,说明这个临界点是极小值点;又因为原函数是开口向上的二次函数,所以这个极小值点就是整个定义域的最小值点。
纯代数操作,不用微积分也能把道理说透:
先把函数展开成二次函数:f(x) = nx² - 2(Σa_i)x + Σa_i²
接下来给这个式子配方,拆成完全平方加常数项:
f(x) = n[x² - 2*(Σa_i/n)*x] + Σa_i² = n[(x - Σa_i/n)² - (Σa_i/n)²] + Σa_i² = n(x - μ)² + Σa_i² - (Σa_i)²/n
这里的μ=(Σa_i)/n就是算术平均数。
因为n是正整数,(x-μ)²永远是非负的,所以只有当x=μ时,平方项为0,f(x)才能取到最小的常数项Σa_i² - (Σa_i)²/n。
换个角度,从距离平方和的意义来理解:
把每个a_i看成数轴上的一个点,f(x)其实就是点x到这n个点的距离平方和。结合统计学里的方差概念,推导会更直观:
已知方差Var(a_i) = (1/n)Σ(a_i - μ)²,把Σ(x - a_i)²展开变形:
Σ(x - a_i)² = Σ[(x - μ) + (μ - a_i)]² = Σ(x-μ)² + 2(x-μ)Σ(μ - a_i) + Σ(μ - a_i)²
因为Σ(μ - a_i) = nμ - Σa_i = 0,式子直接简化为:Σ(x - a_i)² = n(x - μ)² + nVar(a_i)
显然n(x-μ)²是非负的,只有当x=μ时,这一项为0,平方和就取到了最小值nVar(a_i)。
从几何上看,μ就是这n个点的“重心”,不管是一维数轴还是高维空间,重心都是使到各点距离平方和最小的点,这是个很自然的结论。
还有个极简的验证思路,不用复杂定理,纯展开就能证明:
假设μ是算术平均数,我们可以证明对任意实数x,都有Σ(x - a_i)² ≥ Σ(μ - a_i)²:
展开左边:Σ(x - a_i)² = Σ[(μ + (x - μ)) - a_i]² = Σ[(μ - a_i) + (x - μ)]²= Σ(μ - a_i)² + 2(x - μ)Σ(μ - a_i) + n(x - μ)²
因为Σ(μ - a_i)=0,左边就等于Σ(μ - a_i)² + n(x - μ)²,而n(x - μ)²≥0,所以Σ(x - a_i)² ≥ Σ(μ - a_i)²,等号当且仅当x=μ时成立。
内容的提问来源于stack exchange,提问作者Angel Politis

