[数学建模第四讲] 拟合算法

2020-02-05  本文已影响0人  茶酒qqq
image.png

拟合算法

差值函数:曲线一定经过给出的样本点

而拟合问题的目标是寻求一个完整的函数,使得该曲线在某种准则下与所有的数据点最为接近,即曲线的拟合度最好(最小化损失函数)

样本点个数n>30时,称为大样本,一般用拟合。

如何定义拟合的曲线和和真实曲线最接近

最小二乘法:拟合的值与真实值的差的平方和最小时的k和b

image.png

数学表达:

image.png
则L为损失函数/残差平方和 易求得 image.png

MATLAB函数求拟合函数

形状像一次线性函数的:

%% 求拟合函数
clc;clear
load data1
n=size(x,1);
xlabel('x的值')
ylabel('y的值')
k=(n * sum(x .* y) - sum(y) * sum(x))/(n * sum(x .* x) - sum(x) * sum(x))
b=(sum(x .* x) * sum(y) - sum(x) * sum(x .* y))/(n * sum(x .* x) - sum(x) * sum(x))
% k =
% 
%     2.0948
% b =
% 
%    -1.0548
    
% 画图
plot(x,y,'o');
hold on
grid on

f=@(x)k*x+b; % 匿名函数
fplot(f,[min(x),max(x)])
legend('样本数据','拟合函数','location','SouthEast')

% 评价拟合函数
y_hat=k*x+b;
SST=sum((y-mean(y)) .^ 2) % 总体平方和
SSE=sum((y-y_hat) .^ 2) % 误差平方和
SSR=sum((y_hat - mean(y)) .^ 2) % 回归平方和

R_2=SSR/SST % 拟合优度
% SST =
% 
%   156.8863
% 
% 
% SSE =
% 
%     5.7281
% 
% 
% SSR =
% 
%   151.1583
% 
% 
% R_2 =
% 
%     0.9635

第二种方法:

利用cftool作图。

上一篇 下一篇

猜你喜欢

热点阅读