前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matlab插值拟合(二)

matlab插值拟合(二)

作者头像
巴山学长
发布2019-07-15 14:56:49
1.4K0
发布2019-07-15 14:56:49
举报
文章被收录于专栏:巴山学长

上一篇给大家介绍了如何使用matlab拟合工具箱进行函数的插值拟合,今天介绍matlab中常用的拟合函数:polyfitfittype

1 基于最小二乘法的多项式拟合函数:polyfit

p = polyfit(x,y,n),待拟合的多项式为p(1)*x^n + p(2)*x^(n-1) +…+ p(n)*x + p(n+1),其中x是拟合数据的自变量,y是因变量,n是拟合多项式的阶数,如当n为1时,即为一次线性拟合。

例1

代码语言:javascript
复制
x = -10:0.2:10;
y = 1.25*x.^2 + 0.38*x+2;
len = length(x);
yy = y + 2*(rand(1,len)-0.5);
plot(x,yy,'.')
% 拟合得到系数
p = polyfit(x,yy,2);
% 求出拟合值
yfit = p(1)*x.^2 + p(2)*x+p(3);
hold on
plot(x,yfit,'r');
hold off
legend('原始数据','拟合值');

2 多项式拟合求值函数:polyval

y = polyval(p,x),p为采用polyfit求出的拟合系数,x为自变值,可以为单个值也可以为数组。使用该函数可以省去例1中列出表达式原型。

例2

代码语言:javascript
复制
x = -10:0.2:10;
y = 1.25*x.^2 + 0.38*x+2;
len = length(x);
yy = y + 2*(rand(1,len)-0.5);
plot(x,yy,'.')
% 拟合得到系数
p = polyfit(x,yy,2);
% 求出拟合值
yfit = polyval(p,x);
hold on
plot(x,yfit,'r');
hold off
legend('原始数据','拟合值');

3 自定义类型拟合函数:fittype

使用fittype函数可以自定义拟合函数,可以满足线性拟合和非线性拟合。调用格式如下:

aFittype = fittype(libraryModelName),其中,libraryModelName为内置库模型名称,如:

aFittype = fittype(expression),其中,expression为自定表达式,这也是最常用到的,如:

例3

代码语言:javascript
复制
x = -10:0.2:10;
y = 1.25*x.^3 + 0.38*x.^2 + 2*x + 4;
len = length(x);
yy = y + 30*(rand(1,len)-0.5);
plot(x,yy,'.')
% 定义三次曲线拟合
p = fittype('poly3');
% 获取拟合函数
yfit = fit(x',yy',p);
hold on
% 计算并绘图
plot(x,yfit(x),'r');
hold off
legend('原始数据','拟合值');

温馨提示

如果你喜欢本文,请分享朋友圈,想要获得更多信息,请持续关注我。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 巴山学长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档