c++ 三次多项式拟合_数学建模常用算法——插值与拟合(二)

c++ 三次多项式拟合_数学建模常用算法——插值与拟合(二)_第1张图片

复习一下:

拟合:已知有限个数据点,求近似函数,不要求过已知数据点,只要求在某种意义下它在这些点上的总偏差最小。

拟合算法

曲线拟合问题的提法是,已知一组(二维)数据,即平面上的 n 个点(xi , yi ) ,i = 1,2,L,n xi 互不相同,寻求一个函数(曲线) y = f (x) ,使 f (x) 在某种准则下与所有数据点最为接近,即曲线拟合得最好。

线性最小二乘法

拟合平方和最小, 称为最小二乘准则。线性最小二乘法是解决曲线拟合最常用的方法。

人们常用的曲线有:

直线 y = a1*x+a2

多项式 y = a1*x^m+...+am*x+am+1

双曲线(一支)y = a1/x+a2

指数曲线 y = a1*e^a2*x

对于指数曲线,拟合前需作变量代换,化为对 a1,a2 的线性函数。

%% 最小二乘法的 Matlab 实现

c++ 三次多项式拟合_数学建模常用算法——插值与拟合(二)_第2张图片
图1 线性最小二乘拟合示意图

多项式拟合方法

% 多项式拟合方法

c++ 三次多项式拟合_数学建模常用算法——插值与拟合(二)_第3张图片
图2 1~4次多项式的拟合结果,一般m取2,3,不宜太高

最小二乘优化法

在无约束最优化问题中,有些重要的特殊情形,比如目标函数由若干个函数的平方和构成。

我们把极小化这类目标函数的问题称为最小二乘优化问题。

在处理最小二乘优化问题时, Matlab 提供了一些强大的函数。

用于求解最小二乘优化问题的函数有:

lsqlin、lsqcurvefit、 lsqnonlin、 lsqnonneg

下面将一一介绍:

lsqlin 有约束线性最小二乘

c++ 三次多项式拟合_数学建模常用算法——插值与拟合(二)_第4张图片
% 函数lsqlin 约束线性最小二乘

lsqcurvefit 非线性曲线拟合

c++ 三次多项式拟合_数学建模常用算法——插值与拟合(二)_第5张图片
% 函数  lsqcurvefit 非线性曲线拟合

lsqnonlin 非线性最小二乘

7b27fbeb25fceec62e84c4a692bdafcc.png
% 函数  lsqnonlin 非线性最小二乘

lsqnonneg 非负线性最小二乘

d6e9ae6640c9d43999293ff3cb1eac01.png
% 函数  lsqnonneg 非负线性最小二乘

你可能感兴趣的:(c++,三次多项式拟合,matlab二次函数拟合求函数,matlab拟合曲线并输出公式)