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

e73d16fbd04c

image.png

拟合算法

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

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

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

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

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

math?formula=k%E5%92%8Cb

e73d16fbd04c

image.png

数学表达:

e73d16fbd04c

image.png

则L为损失函数/残差平方和

易求得

e73d16fbd04c

image.png

MATLAB函数求拟合函数

形状像一次线性函数的:

先做散点图,把现有的数据画出来

然后如果形状类似一次线性函数,那么先假设

math?formula=y%3Dkx%2Bb形式的函数。

利用已知的x,y求出k和b,然后画图把两个数据都展示出来

再求出SSE误差平方和,判断是否可以

%% 求拟合函数

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作图。

多选择几个模式比较

多项式逼近选择维度看看

作出表格,写出结论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值