matlab最小二乘法拟合原理,最小二乘法曲线拟合_原理及matlab实现
曲线拟合(curve-fitting):工程实践中,用测量到的一些离散的数据
要求所得的拟合曲{(xi,yi),i?0,1,2,...m}求一个近似的函数?(x)来拟合这组数据,
线能最好的反映数据的基本趋势(即使?(x)最好地逼近f?x?,而不必满足插值原则。因此没必要取?(xi)=yi,只要使?i??(xi)?yi尽可能地小)。
原理:
给定数据点{(xi,yi),i?0,1,2,...m}。求近似曲线?(x)。并且使得近似曲线与f?x?的偏差最小。近似曲线在该点处的偏差?i??(xi)?yi,i=1,2,...,m。
常见的曲线拟合方法:
1.使偏差绝对值之和最小
2.使偏差绝对值最大的最小
3.使偏差平方和最小
最小二乘法:
按偏差平方和最小的原则选取拟合曲线,并且采取二项式方程为拟合曲线的方法,称为最小二乘法。
推导过程:
1. 设拟合多项式为:
?(x)?a0?a1x?...?akxk
2. 各点到这条曲线的距离之和,即偏差平方和如下:
3. 问题转化为求待定系数a0...ak对等式右边求ai偏导数,因而我们得到了:
.......
4、 把这些等式化简并表示成矩阵的形式,就可以得到下面的矩阵:
5. 将这个范德蒙得矩阵化简后可得到:
6. 也就是说X*A=Y,那么A = (X'*X)-1*X'*Y,便得到了系数矩阵A,同时,我们也就得到了拟合曲线。
MATLAB实现:
MATLAB提供了polyfit()函数命令进行最小二乘曲线拟合。 调用格式:p=polyfit(x,y,n) [p,s]= polyfit(x,y,n) [p,s,mu]=polyfit(x,y,n)
x,y为数据点,n为多项式阶数,返回p为幂次从高到低的多项式系数向量p。x必须是单调的。矩阵s包括R(对x进行QR分解的三角元素)、df(自由度)、normr(残差)用于生成预测值的误差估计。
[p,s,mu]=polyfit(x,y,n)在拟合过程中,首先对x进行数据标准化处理,以在拟合中消除量纲等影响,mu包含标准化处理过程中使用的x的均值和标准差。
polyval( )为多项式曲线求值函数,调用格式: y=polyval(p,x)
[y,DELTA]=polyval(p,x,s) y=polyval(p,x)为返回对应自变量x在给定系数P的多项式的值。
[y,DELTA]=polyval(p,x,s) 使用polyfit函数的选项输出s得出误差估计Y DELTA。它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数。则Y DELTA将至少包含50%的预测值。 如下给定数据的拟合曲线: x=[0.5,1.0,1.5,2.0,2.5,3.0],
y=[1.75,2.45,3.81,4.80,7.00,8.60]。 解:MATLAB程序如下: x=[0.5,1.0,1.5,2.0,2.5,3.0];
y=[1.75,2.45,3.81,4.80,7.00,8.60]; p=polyfit(x,y,2) x1=0.5:0.05:3.0; y1=polyval(p,x1); plot(x,y,'*r',x1,y1,'-b') 运行结果如图1 计算结果为:
p =0.5614 0.8287 1.1560
即所得多项式为y=0.5614x^2+0.08287x+1.15560
9876543210.511.522.53 图1 最小二乘法曲线拟合示例
对比检验拟合的有效性:
例:在[0,π]区间上对正弦函数进行拟合,然后在[0,2π]区间画出图形,比较拟合区间和非拟合区间的图形,考察拟合的有效性。 在MATLAB中输入如下代码: clear
x=0:0.1:pi; y=sin(x);
[p,mu]=polyfit(x,y,9) x1=0:0.1:2*pi;
y1=sin(x1);%实际曲线
y2=polyval(p,x1);%根据由区间0到pi上进行拟合得到的多项式计算0到2pi上的函数值,
%需要注意的是polyval()返回的函数值在pi到2pi上并没有进行拟合
plot(x1,y2,'k*',x1,y1,'k-') 运行结果: p =
0.0000 0.0000 -0.0003 0.0002 0.0080 0.0002 -0.1668 0.0000 1.0000 0.0000
mu =
R: [10x10 double] df: 22
normr: 1.6178e-07
10.80.60.40.20-0.2-0.4-0.6-0.8-101234567MATLAB的最优化工具箱还提供了lsqcurvefit()函数命令进行最小二乘曲线拟合(Solve nonlinear curve-fitting (data-fitting) problems in least-squares sense)。
调用格式:
x = lsqcurvefit(fun,x0,xdata,ydata)
x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub)
x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options) x = lsqcurvefit(problem) [x,resnorm] = lsqcurvefit(...)
[x,resnorm,residual] = lsqcurvefit(...)
[x,resnorm,residual,exitflag] = lsqcurvefit(...)
[x,resnorm,residual,exitflag,output] = lsqcurvefit(...)
[x,resnorm,residual,exitflag,output,lambda] = lsqcurvefit(...) [x,resnorm,residual,exitflag,output,lambda,jacobian] =
matlab最小二乘法拟合原理,最小二乘法曲线拟合_原理及matlab实现相关推荐
- matlab将二值图像与原图重叠_[转载]图像处理matlab及图像融合图像镶嵌图像拼接...
在实际的对图像处理过程中,由于我们读出的图像是unit8型,而在MATLAB的矩阵运算中要求所有的运算变量为double型(双精度型).因此读出的图像数据不能直接进行相加求平均,因此必须使用一个函数将 ...
- matlab最小二乘法拟合论文,最小二乘法原理,拟合(matlab)。
最小二乘法: 原理: 用各个离差的平方和M=Σ[yi-(axi+b)]^2 (i = 1...n)最小来保证每个离差的绝对值都很小. 为求其最小值,可用函数M对a.b求偏导,并令偏导数为0. 整理得( ...
- 最小二乘法拟合二维曲线的原理及实现
已知有n个数据点: ( x 1 , y 1 ) , ( x 2 , y 2 ) , - , ( x n , y n ) (x_1, y_1), (x_2, y_2), \ldots, (x_n, y_ ...
- matlab 线性拟合polyfit_matlab最小二乘法拟合y=a*exp(-b/t),转换成线性用polyfit怎么写程序啊,有偿私聊我...
对两bai边取对数,得到dulny=rx+lna.这就变成了一个使用lny和x对zhir和lna的一个线性拟dao合.如果使专用MATLAB程序如下(假属设你的x和y都是列向量):A(:,1)=x;A ...
- matlab做三次拉格朗日插值多项式_从零开始的matlab学习笔记——(24)曲线拟合...
matlab应用--求极限,求导,求积分,解方程,函数绘图,三维图像,拟合函数....更多内容尽在个人专栏:matlab学习 才发现这个数据插值的返回值不是个函数表达式,是一系列点集,不能使用poly ...
- 数学建模最小二乘法拟合_MATLAB最小二乘法拟合曲线公式
假设 y = f(x),那么每个x应该会对应一个y.对一个未知公式的 f(x)系统,在科学实验中,常常需要测量两个变量的多组数据,然后找出他们的近似函数关系.通常,我们把这种处理数据的方法称之为经验配 ...
- python原理及代码_原理+代码|详解层次聚类及Python实现
前言 聚类分析是研究分类问题的分析方法,是洞察用户偏好和做用户画像的利器之一.聚类分析的方法非常多,能够理解经典又最基础的聚类方法 -- 层次聚类法(系统聚类) 的基本原理并将代码用于实际的业务案例是 ...
- matlab将图片旋转的代码_从零开始的matlab学习笔记——(27)图像旋转与动态图...
matlab应用--求极限,求导,求积分,解方程,函数绘图,三维图像,拟合函数....更多内容尽在个人专栏:matlab学习 昨天思考了一下,因为笔者的GUI只是刚刚入门,如果直接说的话也说不了多少东 ...
- matlab 度分秒转换成度_如何利用matlab统一处理照片亮度对比度
第一:下软件MATLAB,和插件SHINEtoolbox.安装路径最好不要有中文. 将插件复制到文件夹下见图片 注意:不用学习matlab的具体应用,会使用插件就行了,插件是已经做好的编程,仅需把插件 ...
- matlab中if语句多个_科学计算 | MATLAB程序设计基础
点击"蓝字"关注我们 科学计算 | MATLAB程序设计基础 引言 在前面的学习中,我们都是在命令行窗口逐条输入命令,然后由matlab解释执行,这种交互式的命令执行方式,操作简单 ...
最新文章
- php程序里的configini_php中配置文件操作 如config.php文件的读取修改等操作
- Alchemy环境的搭建
- mysql 5.6 gtid mha_MySQL MHA--故障切换模式(GTID模式和非GTID模式)
- batch normalization_常用的 Normalization 方法:BN、LN、IN、GN
- POJ2352-Stars【树状数组】
- 介绍我的一位同事的开源RSS阅读器
- 白裤子变粉裤子怎么办_使用裤子构建构建数据科学的monorepo
- [翻译] RDVTabBarController
- HTTP面试题 ——TCP
- SP2010开发和VS2010专家食谱--第一章节--列表和事件接收器(6)--使用列表事件接收器...
- python函数设置默认参数_深入讲解Python函数中参数的使用及默认参数的陷阱
- 省赛模拟一 又一道简单题
- perl DBI高级编程
- PDF编辑器是怎么使用的
- WEB前端面试常见的问题及答案
- 有关于取证的笔记——包含详细例题解析
- H5新增input属性值
- 安装Redhat 7.2
- xdoj系统_【战疫情】西电计科院教学在行动(6)——对话全面线上服务的万波老师...
- 2022自学kali linux学习笔记