如何在Mathematica中创建任意长度向量并推导最小二乘法的算术均值?
用Mathematica实现任意长度向量下最小二乘法推导算术均值
你可以通过Table或Array函数定义任意长度为n的样本向量,实现通用版本的推导,最终得到算术均值的结论。以下是完整代码和说明:
通用版Mathematica代码
(* 1. 定义长度为n的任意样本向量X *) X = Table[Subscript[x, i], {i, n}]; (* 2. 定义误差向量:每个样本与mu的差 *) Err[mu_] := X - mu; (* 3. 定义平方误差和(SSE) *) SSE[mu_] := Total[Err[mu]^2]; (* 4. 对mu求导 *) SSE'[mu] (* 5. 解方程求使SSE最小的mu *) Solve[SSE'[mu] == 0, mu]
代码说明与输出
- 步骤1用
Table[Subscript[x, i], {i, n}]生成包含x₁, x₂, ..., xₙ的任意长度向量,n可替换为任意正整数;若偏好x1, x2,...xn的写法,也可将向量定义为X := Array[x, n],解析后为{x[1], x[2], ..., x[n]}。 - 步骤4求导后输出:
-2*Sum[-mu + Subscript[x, i], {i, n}] - 步骤5解方程后输出:
{{mu -> Sum[Subscript[x, i], {i, n}]/n}},即mu等于所有样本的算术均值,完全符合预期结论。
内容的提问来源于stack exchange,提问作者William John Holden
相关产品推荐
相关产品推荐

