曲线拟合的最小二乘法matlab举例
### 曲线拟合的最小二乘法MATLAB举例 #### 一、曲线拟合的最小二乘法原理 在数据分析领域,**曲线拟合**是一种常用的技术,它旨在找到一条能够最好地“匹配”一组数据点的曲线或函数。这种方法在科学、工程以及商业分析等领域都有广泛的应用。其中,**最小二乘法**是最常用的曲线拟合方法之一。 对于给定的一组离散数据点 \((x_i, y_i)\),\(i = 1, 2, ..., n\),我们希望通过一个函数 \(f(x; \theta)\) 来近似这些数据点,其中 \(\theta\) 表示该函数的参数。最小二乘法的基本思想是寻找一组参数 \(\theta^*\),使得所有数据点到函数 \(f(x; \theta^*)\) 的距离(通常是指垂直距离)的平方和最小。数学上可以表示为: \[ \theta^* = \arg\min_\theta \sum_{i=1}^{n}(y_i - f(x_i; \theta))^2 \] 当函数 \(f(x; \theta)\) 是关于参数 \(\theta\) 的线性函数时,这个问题可以通过解析的方法求解,即通过解所谓的“法方程”来确定最优参数 \(\theta^*\)。法方程是一组线性方程,其解即为最优参数。 例如,假设我们希望使用一个多项式 \(p(x) = \theta_0 + \theta_1 x + \theta_2 x^2 + \cdots + \theta_m x^m\) 来拟合一组数据点,则法方程可以表示为: \[ \begin{align*} \mathbf{A}^\top\mathbf{A}\theta &= \mathbf{A}^\top\mathbf{y}\\ \text{其中,}&\\ \mathbf{A} &= \begin{bmatrix} 1 & x_1 & x_1^2 & \cdots & x_1^m \\ 1 & x_2 & x_2^2 & \cdots & x_2^m \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_n & x_n^2 & \cdots & x_n^m \\ \end{bmatrix},\quad \theta &= \begin{bmatrix} \theta_0 \\ \theta_1 \\ \vdots \\ \theta_m \end{bmatrix},\quad \mathbf{y} = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix} \end{align*} \] 其中 \(\mathbf{A}\) 是一个 \(n \times (m+1)\) 的矩阵,\(\mathbf{y}\) 是包含观测值 \(y_i\) 的 \(n \times 1\) 向量。 #### 二、数值实例 下面给出了乌鲁木齐地区一个月内每天早晨7:00左右的温度数据。我们的目标是使用不同的多项式阶次对这些数据进行拟合,并比较不同拟合模型的表现。 **温度数据表**: | 天数 | 温度 | |------|------| | 1 | 9 | | 2 | 10 | | ... | ... | | 30 | 1 | **Matlab程序代码**: ```matlab x = [1:1:30]; % x轴的数据 y = [9, 10, 11, 12, 13, 14, 13, 12, 11, 9, 10, 11, 12, 13, 14, 12, 11, 10, 9, 8, 7, 8, 9, 11, 9, 7, 6, 5, 3, 1]; % y轴的数据 a1 = polyfit(x, y, 3); % 三次多项式拟合 a2 = polyfit(x, y, 9); % 九次多项式拟合 a3 = polyfit(x, y, 15); % 十五次多项式拟合 b1 = polyval(a1, x); b2 = polyval(a2, x); b3 = polyval(a3, x); r1 = sum((y - b1).^2); % 三次多项式的误差平方和 r2 = sum((y - b2).^2); % 九次多项式的误差平方和 r3 = sum((y - b3).^2); % 十五次多项式的误差平方和 plot(x, y, '*'); % 原始数据点 hold on; plot(x, b1, 'r'); % 三次多项式拟合曲线 plot(x, b2, 'g'); % 九次多项式拟合曲线 plot(x, b3, 'b:o'); % 十五次多项式拟合曲线 legend('原始数据', '三次多项式', '九次多项式', '十五次多项式'); ``` **数值结果**: - 三次多项式拟合的误差平方和 \(r1 = 67.6659\) - 九次多项式拟合的误差平方和 \(r2 = 20.1060\) - 十五次多项式拟合的误差平方和 \(r3 = 3.7952\) **结论**: 从上述结果可以看出,随着拟合多项式的阶次增加,误差平方和逐渐减小。然而,这并不意味着更高的阶次就一定是最佳选择。例如,十五次多项式虽然误差平方和最小,但它可能过于复杂,导致过拟合现象——即模型过于依赖于训练数据中的噪声,而不是数据的真实趋势。因此,在实际应用中,我们需要根据具体情况权衡模型复杂度和拟合效果,选择合适的阶次。通常会采用交叉验证等技术来评估模型的泛化能力,从而避免过拟合的问题。
- 粉丝: 0
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
- 1
- 2
前往页