最小二乘法及其应用
2015-12-10 10:47
218 查看
1 实验目的
了解最小二乘法的基本原理;了解超定方程组的最小二乘解法;
使用最小二乘法解决实际问题;
2 实验内容
由化学实验得到某物质浓度与时间的关系如下:求浓度与时间的二次拟合函数。
求解浓度与时间的二次拟合函数是关于3个参数的最小二乘问题,可采用的方法有QR分解法、SVD分解法和正规方程法。在本实验中,正规方程被用来求解浓度与时间的最小二乘问题。其中正规方程为
θ=(XTX)−1XTy
其中 θ 为参数,即二次函数的系数,X 为数据矩阵,即时间 t 对应的二次函数所构建的数据矩阵,y 为浓度向量。
3 实验程序
正规方程函数如下所示:function [theta, Y] = normalEq(t, y) %正规方程求最小二乘解 % 输入: t = 时间向量 % y = 浓度向量 % 输出:theta = 第 0 次 to 第 n 的多项式系数 % Y = theta 系数下 t 对于的浓度值 X = [ones(size(t)) t t.^2]; % [0 1 2] 次 theta = pinv(X'*X)*X'*y; % 正规方程 Y = X*theta; % 拟合的浓度值
实验主函数如下所示:
function main4() %实验四的主函数 t = 1:16; y = [4 6.4 8 8.8 9.22 9.50 9.70 9.86 10 10.2 ... 10.32 10.42 10.50 10.55 10.58 10.60]; theta = normalEq(t', y'); t1 = linspace(1, 16, 50); y1 = polyval(theta(length(theta) : -1 : 1), t1); %% 作图 plot(t1, y1) hold on plot(t, y, 'ro') hold on xlabel('时间 (t)'); ylabel('浓度') hold off
4 实验结果分析
最小二乘结果的误差为 2.2152。
5 实验结论
针对最小二乘问题,正规方程提供了一种有效的求解方法。通过正规方程我们拟合得到了二次函数,但显然二次函数对实验数据的拟合效果并不是很好,尤其是在随时间增大时,浓度值明显趋向饱和,而二次函数趋向降低,因此对该问题有必要选择对数函数 y=a+blnx 作为拟合的猜想。
相关文章推荐
- 解析在main函数之前调用函数以及对设计的作用详解
- java和matlab画多边形闭合折线图示例讲解
- C#调用Matlab生成的dll方法的详细说明
- 从java中调用matlab详细介绍
- 稀疏自动编码器 (Sparse Autoencoder)
- VC++与Matlab混合编程的快速实现
- Matlab 矩阵运算
- matlab与opencv部分函数的对照
- matlab神经网络工具箱创建神经网络
- Matlab
- MATLAB 入门教程
- matlab函数_连通区域
- MATLAB中函数模式和命令模式的区别
- MATLAB 添加自定义的模块到simulink库浏览器
- MATLAB for Mac使编辑器支持中文
- [转]matlab中plot用法
- 初学数模-MATLAB Quick Start! Part I
- 初学数模-MATLAB Quick Start! Part II
- matlab程序优化以及eclipse与github的结合
- matlab中的rand函数(用于产生随机数)