MATLAB拟合关系总结,MATLAB回归、插值、逼近、拟合总结

本文详细介绍了MATLAB中的回归、插值、逼近和拟合的区别,以及各自的方法和应用。通过多个实例,如拉格朗日插值、分段线性插值、三次样条插值等,展示了如何在MATLAB中实现这些技术。此外,还探讨了最小二乘法在曲线拟合中的应用。
摘要由CSDN通过智能技术生成

一、回归、插值、逼近、拟合的区别

1、回归一般指线性回归,是求最小二乘解的过程。在求回归前,已经假设所有型值点同时满足某一曲线方程,计算只要求出该方程的系数

2、多项式插值:用一个多项式来近似代替数据列表函数,并要求多项式通过列表函数中给定的数据点。(插值曲线要经过型值点。)

3、多项式逼近:为复杂函数寻找近似替代多项式函数,其误差在某种度量意义下最小。(逼近只要求曲线接近型值点,符合型值点趋势。)

4、多项式拟合:在插值问题中考虑给定数据点的误差,只要求在用多项式近似代替列表函数时,其误差在某种度量意义下最小。

注意:

表列函数:给定n+1个不同的数据点(x0,y0),(x1,y1)...,(xn,yn),称由这组数据表示的函数为表列函数。

逼近函数:求一函数,使得按某一标准,这一函数y=f(x)能最好地反映这一组数据即逼近这一表列函数,这一函数y=f(x)称为逼近函数

插值函数:根据不同的标准,可以给出各种各样的函数,如使要求的函数y=f(x)在以上的n+1个数据点出的函数值与相应数据点的纵坐标相等,即yi=f(x1)(i=0,1,2....n) 这种函数逼近问题称为插值问题,称函数y=f(x)为数据点的插值函数,xi称为插值点。

插值和拟合都是函数逼近或者数值逼近的重要组成部分

他们的共同点都是通过已知一些离散点集M上的约束,求取一个定义 在连续集合S(M包含于S)的未知连续函数,从而达到获取整体规律的目的,即通过'窥几斑'来达到'知全豹'。

简单的讲,所谓拟合是指已知某函数的若干离散函数值{f1,f2,…,fn},通 过调整该函数中若干待定系数f(λ1, λ2,…,λ3), 使得该函数与已知点集的 差别(最小二乘意义)最小。如果待定函数是线性,就叫线性拟合或者线性回归(主要在统计中),否则叫作非线性拟合或者非线性回归。表 达式也可以是分段函数,这种情况下叫作样条拟合。而插值是指已知某函数的在若干离散点上的函数值或者导数信息,通过求解该函数中待定形式的插值函数以及待定系数,使得该函数在给 定离散点上满足约束。插值函数又叫作基函数,如果该基函数定义在整个定义域上,叫作全域基,否则叫作分域基。如果约束条件中只有函数值的约束,叫作Lagrange插值,否则叫作Hermite插值。

从几何意义上将,拟合是给定了空间中的一些点,找到一个已知形式未知参数的连续曲面来最大限度地逼近这些点;而插值是找到一个(或几个分片光滑的)连续曲面来穿过这些点。

二、经典插值方法1、拉格朗日插值

function y=lagrange(x0,y0,x) %拉格朗日插值函数 %n 个节点数据以数组 x0, y0 输入(注意 Matlat 的数组下标从1开始), %m 个插值点以数组 x 输入,输出数组 y 为 m 个插值 n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s; end

应用实例:x0=1:1:20;y0=x0.^2-20*x0-5;x=1:0.1:20;z=lagrange(x0,y0,x);plot(x,z,':',x0,y0,'ko');

175877613_1_20191118113056553

2、分段线性插值

MATLAB现成的插值函数为interp1,其调用格式为:  yi= interp1(x,y,xi,'method')

其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量, 'method'表示采用的插值方法,包括:

'method':是最近项插值;                                                              'linear':线性插值;(默认)

'spline':逐段3次样条插值; (下面的三次样条插值会用到)                 'cubic':保凹凸性3次插值

'pchip':分段三次Hermite 插值。

例如:在一天24小时内,从零点开始每间隔2小时测得的环境温度数据分别为

12,9,9,1,0,18 ,24,28,27,25,20,18,15,13,

推测中午12点(即13点)时的温度.

x=0:2:24; y=[12,9,9,10,18,24,28,27,25,20,18,15,13]; x1=0:0.5:24; y1=interp1(x,y,x1,'linear'); plot(x,y,'bo',x1,y1,'r:');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值