最小二乘拟合

拟合函数

function C = lspoly(X,Y,M)
%This funciton implements the Least Squares Polynomial
%By abcat at 2014.5.7
%Input -X is the 1*n abscissa vector
% -Y is the 1*n ordinate vecotr
% -M is the degree of the Least-Squares Polynomial
%Output -C is the coefficient list for the polynomial
n=length(X);
B=zeros(1:M+1);
F=zeros(n:M+1);
%File the columns of F with the powers of x
for k=1:M+1
F(:,k)=X‘.^(k-1);
end
%Solve the linear system
A=F‘*F;
B=F‘*Y‘;
C=A\B
C=flipud(C);

主程序

%输入数据
x = [3.46 3.36 3.30 3.19 3.10 3.00 2.92 2.83 2.75 2.68];
y = [9.4141 9.0832 8.8945 8.5350 8.1286 7.7160 7.3556 6.9819 6.6267 6.2953];
%最小二乘拟合,参数分别是横、纵轴数据,拟合次数
c=lspoly(x,y,2);
y1=polyval(c,x);
%绘图
plot(x,y1)
hold on
plot(x,y,‘ro‘)
legend(‘Curve Fitting‘,‘Experimental Data‘)
grid on
xlabel(‘Abscissa Vector‘)
ylabel(‘Ordinate Vector‘)

时间: 2024-10-11 16:13:02

最小二乘拟合的相关文章

halcon之最小二乘拟合直线

如果不了解最小二乘算法 请先阅读: Least squares的算法细节原理https://en.wikipedia.org/wiki/Least_squares 通常在halcon中拟合直线会用houghline或者 fitline.本文提供一种新的选择,用halcon的矩阵操作实现最小二乘拟合直线 首先随机生成一组数据 Mx:=[100:10:500] tuple_length(Mx,len) tuple_gen_const(len,5,r) Ma:=2 Mb:=40 tuple_rand(

最小二乘拟合(转)

在物理实验中经常要观测两个有函数关系的物理量.根据两个量的许多组观测数据来确定它们的函数曲线,这就是实验数据处理中的曲线拟合问题.这类问题通常有两种情况:一种是两个观测量x与y之间的函数形式已知,但一些参数未知,需要确定未知参数的最佳估计值:另一种是x与y之间的函数形式还不知道,需要找出它们之间的经验公式.后一种情况常假设x与y之间的关系是一个待定的多项式,多项式系数就是待定的未知参数,从而可采用类似于前一种情况的处理方法. 一.最小二乘法原理 在两个观测量中,往往总有一个量精度比另一个高得多,

非线性函数的最小二乘拟合——兼论Jupyter notebook中使用公式 [原创]

突然有个想法,利用机器学习的基本方法——线性回归方法,来学习一阶RC电路的阶跃响应,从而得到RC电路的结构特征——时间常数τ(即R*C).回答无疑是肯定的,但问题是怎样通过最小二乘法.正规方程,以更多的采样点数来降低信号采集噪声对τ估计值的影响.另外,由于最近在捣鼓Jupyter和numpy这些东西,正好尝试不用matlab而用Jupyter试试看.结果是意外的好用,尤其是在Jupyter脚本中插入LaTeX格式的公式的功能,真是太方便了!尝试了直接把纸上手写的公式转换到Jupyter脚本中的常

(十)最小二乘拟合二元直线

1 #encoding=utf-8 2 from matplotlib import pyplot as plt 3 import numpy as np 4 from mpl_toolkits.mplot3d import Axes3D 5 # 生成画布 6 fig = plt.figure(); 7 ax = Axes3D(fig); 8 9 point=[[2,3,48],[4,5,50],[5,7,51],[8,9,55],[9,12,56]]; 10 plt.xlabel("X1&qu

最小二乘拟合(scipy实现)

原文地址:https://www.cnblogs.com/hqczsh/p/11297669.html

基于EM的多直线拟合实现及思考

作者:桂. 时间:2017-03-22  06:13:50 链接:http://www.cnblogs.com/xingshansi/p/6597796.html 声明:欢迎被转载,不过记得注明出处哦~ 前言 分布拟合与曲线拟合系列本想简单梳理,却啰嗦的没完没了.本文主要介绍:多直线的拟合,多曲线可以依次类推.全文主要包括: 1)背景介绍 2)理论推导 3)代码实现 4)关于拟合的思考 内容多有借鉴他人,最后一并附上链接. 一.背景介绍 对于单个直线,可以借助MLE或者最小二乘进行求参,对于多条

最小二乘法拟合非线性函数及其Matlab/Excel 实现(转)

1.最小二乘原理 Matlab直接实现最小二乘法的示例: close x = 1:1:100; a = -1.5; b = -10; y = a*log(x)+b; yrand = y + 0.5*rand(1,size(y,2)); %%最小二乘拟合 xf=log(x); yf=yrand; xfa = [ones(1,size(xf,2));xf] w = inv(xfa*xfa')*xfa*yf';%直接拟合得到的结果 参考资料: 1.http://blog.csdn.net/lotus_

最小二乘法拟合圆

有一系列的数据点 {xi,yi}.我们知道这些数据点近似的落在一个圆上.依据这些数据预计这个圆的參数就是一个非常有意义的问题.今天就来讲讲怎样来做圆的拟合.圆拟合的方法有非常多种,最小二乘法属于比較简单的一种. 今天就先将这样的. 我们知道圆方程能够写为: (x?xc)2+(y?yc)2=R2 通常的最小二乘拟合要求距离的平方和最小.也就是 f=∑((xi?xc)2+(yi?yc)2??????????????????√?R)2 最小. 这个算起来会非常麻烦. 也得不到解析解. 所以我们退而求其

OpenCV 学习(直线拟合)

OpenCV 学习(直线拟合) Hough 变换可以提取图像中的直线.但是提取的直线的精度不高.而很多场合下,我们需要精确的估计直线的参数,这时就需要进行直线拟合. 直线拟合的方法很多,比如一元线性回归就是一种最简单的直线拟合方法.但是这种方法不适合用于提取图像中的直线.因为这种算法假设每个数据点的X 坐标是准确的,Y 坐标是带有高斯噪声的.可实际上,图像中的每个数据点的XY 坐标都是带有噪声的. 下面就来讲讲适用于提取图像中直线的直线拟合算法. 一个点 (xi,yi) 到直线的距离用 ri 来