matlab—回归与内插(完结)

栏目: 编程工具 · 发布时间: 7年前

内容简介:假设当前有一组身高数据,与其对应的有一组体重数据,我们要分析两者之间是否有某种关联,这时就需要用到曲线拟合函数这里介绍两个函数,一个是画散点图的函数

polyfit()

假设当前有一组身高数据,与其对应的有一组体重数据,我们要分析两者之间是否有某种关联,这时就需要用到曲线拟合函数 polyfit ,其调用格式为: fit=polyfit(xdata,ydata,n) ,其中 n 表示多项式的最高阶数, xdataydata 为将要拟合的数据,输出的参数 fit 为 n+1 个系数,一般情况 polyfitpolyval 一起使用,进行绘图

x = [-1.2 -0.5 0.3 0.9 1.0 2.6 3.0 3.5];
y = [-15.6 -8.5 2.2 4.5 6.6 8.2 8.9 10.0];
fit = polyfit(x,y,7);
xfit = x(1):0.1:x(end);
yfit = polyval(fit,xfit);
plot(x,y,'ro',xfit,yfit);

matlab—回归与内插(完结)

scatter() & corrcoef()

这里介绍两个函数,一个是画散点图的函数 scatter ,其调用格式为: scatter(xdata,ydata)

另一个是求出x-y之间线性系数大小的函数 corrcoef ,其调用格式为: corrcoef(xdata,ydata) ,这里要说明一点, corrcoef 函数返回的是一个2*2的矩阵,(1,1)和(2,2)分别是 x-xy-y 的相关系数,必定是 1,(1,2)和(2,1)分别是 x-yy-x 的相关系数,必定相等

x = [-1.2 -0.5 0.3 0.9 1.0 2.6 3.0 3.5];
y = [-15.6 -8.5 2.2 4.5 6.6 8.2 8.9 10.0];
scatter(x,y);
corrcoef(x,y)

matlab—回归与内插(完结)

regress()

Regress 函数的作用也是做数据拟合,只不过它所呈现的信息更多,其调用格式为: [b,bint,r,rint,stats] = regress(y,x,alpha)

  • y:多元拟合的变量值的向量
  • x 多元拟合的自变量的值的矩阵
  • alpha:显著性水平,缺省的时候为 0.05
  • b:回归得到的自变量系数
  • bint:b 的 95% 的置信区间矩阵
  • r:残差向量
  • rint:区间矩阵

插值

拟合与插值不同的地方在于,拟合出的函数曲线不一定会经过所有的点,只能说大概呈现一个趋势,而插值一定会经过所有的数据点

插值的作用:比如我们已知 t=1 时a=2,t=2 时a=3,那么 t=1.5 时a = 多少呢?所以插值就是帮助我们求某处的数据值

其调用格式为: yi=interp1(x,y,xi) ,其中,x,y 是我们已知的数据值,我们现在要求,经过一系列(x,y)点的曲线在 xi 时对应的 yi 值

语法形式 说明
y=interp1(x,Y,xi) 由已知点集 (x,Y) 插值计算 xi 上的函数值
y=interp1(x,Y,xi) 相当于 x=1:length(Y) 的 interp(x,Y,xi)
y=interp1(x,Y,xi,method)

用指定插值方法计算插值点 xi 上的函数值

y=interp1(x,Y,xi,method,'extrap') | 对 xi 中超出已知点集的插值点用指定插值方法计算函数值

y=interp1(x,Y,xi,method,'extrap',extrapval) | 用指定方法插值 xi 上的函数值,超出已知点集处函数值取 extrapval

y=interp1(x,Y,xi,method,'pp') |

用指定方法插值,但返回结果为分段多项式

Method 方法描述
Nearest 最邻近插值: 插值点处函数值与插值点最邻近的已知点函数值相等
liner 分段线性插值:插值点处函数值由连接其最邻近的两侧点的线性函数预测。Matlab 中 interp1 的默认方法
spline 样条插值:默认为三次样条插值。可用 spline 函数替代
pchip 三次 Hermite 多项式插值,可用 pchip 函数替代
Nearest
Spline
 Cubic
x = 0 : 2 * pi;
y = sin(x);
xx = 0 : 0.5 : 2 * pi;
%interp1对sin函数进行分段线性插值,调用interp1的时候,默认的是分段线性插值
y1 = interp1(x,y,xx);
subplot(2,2,1);plot(x,y,'o',xx,y1,'r');
title('分段线性插值')

%临近插值
y2 = interp1(x,y,xx,'nearnest');
subplot(2,2,2);plot(x,y,'o',xx,y2,'r');
title('邻近插值')

%球面线性插值
y3 = interp1(x,y,xx,'spline');
subplot(2,2,3);plot(x,y,'o',xx,y3,'r');
title('球面线性插值')

%三次多项式插值
y4 = interp1(x,y,xx,'PCHIP');
subplot(2,2,4);plot(x,y,'o',xx,y4,'r');
title('三次多项式插值')

matlab—回归与内插(完结)

插值不止可以用于平面,还可以用于三维图,函数是 interp2 ,参数及方法类似, zi = interp2(x,y,z,xi,yi,method) ,有需要的可以去Google


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

分布式服务架构:原理、设计与实战

分布式服务架构:原理、设计与实战

李艳鹏、杨彪 / 电子工业出版社 / 2017-8 / 89.00

《分布式服务架构:原理、设计与实战》全面介绍了分布式服务架构的原理与设计,并结合作者在实施微服务架构过程中的实践经验,总结了保障线上服务健康、可靠的最佳方案,是一本架构级、实战型的重量级著作。 《分布式服务架构:原理、设计与实战》以分布式服务架构的设计与实现为主线,由浅入深地介绍了分布式服务架构的方方面面,主要包括理论和实践两部分。理论上,首先介绍了服务架构的背景,以及从服务化架构到微服务架......一起来看看 《分布式服务架构:原理、设计与实战》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换