第七讲MATLAB在插值和逼近中的应用.docx

上传人:b****3 文档编号:5486318 上传时间:2022-12-17 格式:DOCX 页数:19 大小:235.84KB
下载 相关 举报
第七讲MATLAB在插值和逼近中的应用.docx_第1页
第1页 / 共19页
第七讲MATLAB在插值和逼近中的应用.docx_第2页
第2页 / 共19页
第七讲MATLAB在插值和逼近中的应用.docx_第3页
第3页 / 共19页
第七讲MATLAB在插值和逼近中的应用.docx_第4页
第4页 / 共19页
第七讲MATLAB在插值和逼近中的应用.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

第七讲MATLAB在插值和逼近中的应用.docx

《第七讲MATLAB在插值和逼近中的应用.docx》由会员分享,可在线阅读,更多相关《第七讲MATLAB在插值和逼近中的应用.docx(19页珍藏版)》请在冰豆网上搜索。

第七讲MATLAB在插值和逼近中的应用.docx

第七讲MATLAB在插值和逼近中的应用

第七讲MATLAB在插值与逼近中的应用

1插值与逼近

为何要逼近

数学上来讲,逼近就是在精度要求的范围内对要研究函数给出近似的函数值,乃至函数表达式。

为何咱们不直接计算要研究的函数或函值本身?

理由如下:

用给定函数表达式计算函值很困难乃至根本不可能。

如,sinx、tgx、Inx等。

由实验与测量取得的变量间对应关系常常是一函数值表(此后咱们也称为表列函数)。

但表所表示函在表某个中间位置的函数值却是无法明白的。

函数可能被隐含地概念,而事实上又不能用一个直接规律给出。

例如,由方程

ey+y+sinx=0肯定的隐含数。

计算逼近函数的值往往比计算函值本身更快。

特别地,当原来函数以无穷级数的形式给出,只能如此。

运算机存储量有限,而其计算量相对来讲却专门大,从某种意义上来讲,逼近实际上也是为了扬长避短。

如,咱们不可能将所有的sinx的值都存在运算机内,但咱们将会看到,利用琏近咱们的却能够很方便地算出任一点的函数值。

实际应用中,只要函数值符合某一个精度要求也就够了。

逼近的分类

逼近函数是为了更方便地计算函数,更简单地表达函数。

因此,常常利用一些简单函数或这些简单函数的线性组合来逼近。

通常的逼近形式有:

咱们称ф(x),i=0,1,2,…,m为逼近函数,f(x)称为逼近函数。

逼近的原则

已知函数f(x)在n+1个点xi(i=0,1,2,…,n)的函数值为f(xi)(i=0,1,2,…,n)。

要求出f(x)的逼近函数g(x),则要选定逼近基函数,肯定上式中的常数ai(i=0,1,2,…,m)。

基函数选定往往跟实际问题有关;而肯定常数ai(I=0,1,2,…,m)以保证逼近函数g(x)能更近似地表示函数f(x),则是咱们这里要解决的问题。

为此,就要第一给出一个准则,来描述“更近似”。

概念距离:

其中,p>0为一实数。

则“更近似“即指“e更小“。

因此,肯定ai(i=0,1,2,…,m)使得e取得最小即可。

e称为逼近误差。

若p=1,称为一致逼近,p=2,称为平方逼近。

从上式不难看出,就此式而言,e最好的最小值为零,现在,g(xi)=f(xi),逼近函数g(x)恰好通过所有n+1个已知点(xi,f(xi)),(i=0,1,2,…,n)。

什么叫插值

给定n+1个数据点(x0,y0),(x1,y1),…,(xn,yn),若逼近函数通过n+1个数据点,即在已知数据点上的逼近误差为零,则称逼近函数为插值函数,简称为插值。

若存在P(xi)=yi(i=0,1,…,n)

称P(x)为y=f(x)的插值函数,求插值函数P(x)的方式称为插值法。

主要算法有Lagrange插值、Newton插值、分段线性插值、Hermite插值及三次样条插值等。

Lagrange插值

1.5.1线性插值

过函数y=f(x)上的两点(x0,y0)(x1,y1)作一直线p1(x)近似地替代f(x)

即:

p1(x0)=y0p1(x1)=y1

由点斜式

1.5.2抛物插值

过函数y=f(x)上的三点(x0,y0),(x1,y1),(x2,y2)作一抛物线p2(x)近似地替代f(x)

即:

p2(x0)=y0p2(x1)=y1p2(x2)=y2

作二次式l0(x),使其知足

l0(x0)=1,l0(x1)=0,l0(x2)=0,

易推出:

同理

1.5.3Lagrange插值

设函数y=f(x)在给定的两两互异的节点x0,x1,…,xn上的函数值为y0,y1,…,yn,求作一个次数≤n的多项式

使它知足

这就是Lagrange插值多项式

1.5.4Lagrange插值的流程图

1.5.5Lagrange编程

functiony=lagrange(x0,y0,x)

%lagrangeinsert

n=length(x0);

p=0;

fori=1:

n

l=;

forj=1:

n

ifj~=i

l=l*(x-x0(j))/(x0(i)-x0(j));

end

end

p=p+l*y0(i);

end

y=p;

例给出f(x)=e-x的数值表,用lagrange插值计算的近似值

x

ln(x)

x0=[];

y0=[];

y=lagrange(x0,y0,

y=

例给出f(x)=lnx的数值表,用lagrange插值计算的近似值

x

ln(x)

x0=[:

:

];

y0=[];

y=lagrange(x0,y0,

y=

y=log

y=

分段插值(将插值区间划分小区间[xi,xi+1],在每一个小区间构造插值多项式pi(x),将每一个小区间插值多项式pi(x)拼接)

1.6.1高次插值的Runge现象

对于函数

x=[-5:

1:

5];

y=1./(1+x.^2);

x0=[-5:

:

5];

y0=1./(1+x0.^2);

y1=lagrange(x,y,x0);

plot(x0,y1,'--or')

holdon

plot(x0,y0,'-b')

clf

x1=[-5:

1:

0];

y1=1./(1+x1.^2);

x2=[0:

1:

5];

y2=1./(1+x2.^2);

x3=[-5:

:

0];

x4=[0:

:

5];

x0=[-5:

:

5];

y0=1./(1+x0.^2);

y3=lagrange(x1,y1,x3);

y4=lagrange(x2,y2,x4);

plot(x3,y3,'or',x4,y4,'+r')

holdon

plot(x0,y0,'-b')

MATLAB插值函数

插值函数及其功能

函数

功能描述

interp1

一维插值

interp2

二维插值

interp3

三维插值

interpft

一维快速傅立叶插值

interpn

N-D维插值

spline

三次样条数据插值

pchip

保形分段三次插值(分段三次Hermit插值多项式)

yi=interp1(x,y,xi,method)

methodsare:

'nearest'-nearestneighborinterpolation

'linear'-linearinterpolation

'spline'-piecewisecubicsplineinterpolation(SPLINE)

'pchip'-shape-preservingpiecewisecubicinterpolation

'cubic'-sameas'pchip'

'v5cubic'-thecubicinterpolationfromMATLAB5,whichdoesnot

extrapolateanduses'spline'ifXisnotequallyspaced.

x=0:

8;

y=sin(x);

xi=0:

:

8;

ni=interp1(x,y,xi,'nearest');

li=interp1(x,y,xi,'linear');

si=interp1(x,y,xi,'spline');

ci=interp1(x,y,xi,'cublic');

plot(x,y,'o',xi,ni,'ms',xi,li,'b*',xi,ci,'k+',xi,si,'r-')

legend('原数据','nearest','linear','cublic','spline')

样条曲线的MATLAB实现

1.8.1样条曲线在工程实践与科学中的应用

●样条曲线拟合问题:

由实验或观测取得了一批数据点,要求用一个函数近似地表明数据点间的函数关系,并画出函数的样条曲线。

●样条曲线插值问题:

由实验、观测或计算取得了若干离散点组成的点列,要求用滑腻的样条把这些离散点联结起来。

●样条曲线逼近问题:

在样条曲线形状设计中,给定了折线轮廓,要求用样条曲线逼近那个折线轮廓。

MATLAB专门提供了样条工具箱,以便能够方便地处置各类数据,生成样条曲线。

1.8.2Splinetool的利用

功能:

用一系列方式生成各类样条曲线

语法:

splinetool(x,y)(回车)按照数组x,y在图形用户界面下生成样条曲线。

splinetool(回车)启动图形用户界面

选择数据输入的方式(如选第一项Provideyouowndata)

x=linspace(0,2*pi,31)y=cos(x)

选择各类生成样条曲线的方式:

三次样条插值法,可选择各类约束条件

光滑样条法,可选择函数的阶数(4或6),可改变精度的允许值

最小二乘法,可选择函数的阶数(1到14)

样条插值法,可选择函数的阶数(1到14)

选择方式的辅助图形(通过View菜单)

显示样条函数的一阶导数曲线图

显示样条函数的二阶导数曲线图

显示误差曲线图

 

第一个点的三次导数和第二点的三次导数一样;最后一个点的三次导数和倒数第二个点一样

'complete'or'clamped'

第一类边界条件(缺省边界条件)

第二类边界条件

周期(第三类)边界条件

使最后一个点的二阶导数等于零

自然边界条件

用所给定四个点通过Lagrange插值法生成三次样条曲线

第一类边界条件:

给定函数在x0,xn端点处的一阶导数,

第二类边界条件:

给定函数在x0,xn端点处的二阶导数,

当函数在x0,xn端点处的二阶导数等于0时,称为自然边界条件,现在的样条函数称为自然样条函数

第三类边界条件:

设f(x)是周期函数,并设x0,xn是一个周期,给定函数在x0,xn端点处的一阶导数和二阶导数相等

通过菜单中各项选择,取得所需样条曲线。

最小二乘拟合

对于有限区间[a,b]上的持续函数f(x),找到一个多项式p(x),使得f(x)-p(x)的欧几里德模

 

小于某一误差限ε

1.9.1利用polyfit功能函数进行多项式拟合

例用最小二乘法拟合如下数据

x

y

假设拟合多项式为f=a0+a1*x+a2x2

x=[];

y=[];

a=polyfit(x,y,2)

f=poly2str(a,'x')

x1=[:

:

];

y1=a(3)+a

(2)*x1+a

(1)*x1.^2;

plot(x,y,'*')

holdon

plot(x1,y1,'-r')

a=

f=

x^2+x+

1.9.2利用矩阵的除法求系数,解决复杂型函数的拟合

例用最小二乘法求一个形如y=a+bx2的经验公式,使它与如下数据拟合

xi

19

25

31

38

44

yi

x=[1925313844];

y=[];

x1=x.^2

x1=[ones(5,1),x1']

ab=x1\y'

x0=[19:

:

44];

y0=ab

(1)+ab

(2)*x0.^2;

clf

plot(x,y,'o')

holdon

plot(x0,y0,'-r')

x1=36162596114441936

x1=1361

1625

1961

11444

11936

ab=

1.9.3利用MATLAB优化工具箱中lsqcurvefit函数进行非线性曲线拟合

[a,resnorm]=lsqcurvefit(,a0,x,y)

a---返回待定系数向量

resnorm---返回a处残差的平方和范数值:

sum{(fun((a,x)-y).^2}

fun---拟合函数

a0---待定系数向量初始值

x,y---原始输入输出数据向量

例x=0:

:

10;

y=*exp*x)+*exp*x).*sin*x);

%设数据知足原型为

%y(x)=a1e-a2x+a3e-a4xsin(a5x)

%其中ai为待定系数

aaa=inline('a

(1)*exp(-a

(2)*x)+a(3)*exp(-a(4)*x).*sin(a(5)*x)','a','x');

a0=[1,1,1,1,1];

[a,resnorm]=lsqcurvefit(aaa,a0,x,y)

Optimizationterminatedsuccessfully:

Relativefunctionvaluechangingbylessthan

a=

resnorm=

1.9.4利用MATLAB优化工具箱中CurveFittingToolbox进行曲线拟合

主要包括数据预处置、数据拟合和数据后处置。

曲线拟合工具箱在拟合数据时利用最小二乘法。

进行拟合需要一个能表示实验数据与理论数据之间关系的模型,模型中有一些需要肯定的系数。

拟合的目的就是要获得对这些未知系数的估计。

最小二乘法通过最小化残差的平方和来获得待定系数的估计。

式中(m+1)个为参与拟合的数据点的个数,

支持的最小二乘拟合类型包括:

*线性最小二乘;

*加权线性最小二乘;

Wi为权重因子

*稳健最小二乘:

最小二乘法的主要缺点是对异样值太敏感。

异样值对拟合结果具有专门大的影响,因为对残差取平方会将异样值的影响放大。

要使异样值的影响最小,能够用稳健最小二乘拟合数据。

工具箱提供了下面2个稳键回归方案:

最小绝对残差(LAR):

LAR方案要求残差的绝对差,而不是平方差最小的曲线。

所以,极值对拟合的影响更小。

双二次加权:

本方案使加权平方和最小,其中每一个数据点的权重与该点到拟合线的距离有关。

离拟合线更近的点权重更大,离拟合线更远的点权重更小,超出预期范围的点的权重为0。

对于大多数情形,双二次加权方案比LAR方案的效果更好,因为它不仅用一般最小二乘法找到了拟合数据的曲线,还使异样值的影响最小。

*非线性最小二乘。

工具箱提供的非线性选代算法包括:

置信域法:

默许算法,若是指定系数约束,必需利用该方式。

该方式求解复杂非线性问题的效率比其他几种算法高得多,而且它是普通Levenberg-Marquardt法的改良版本。

Levenberg-Marquardt法:

老牌的非线性迭代算法,通过了很连年的考验。

若是置信域法取得的结果不睬想,而且没有系数约束,试用本法。

Gauss-Newton法本算法比其他算法快得多,可是它假设数据残差接近0。

把该算法

放到工具箱中,主要出于教学的目的,解决实际问题时,应该把它作为最后的选择。

评价拟合的优度:

用一个或多个模型拟合数据以后,应该评价拟合的优度,即拟合的好坏情形。

评价拟合优度,第一个办法是将拟合曲线显示出来,从图上直接观察。

另外,工具箱还用下面几种指标来评价拟合的优度:

SSE:

误差平方和,误差平方和越接近0。

说明拟合越好。

R-square:

R的平方能够取0到1之间的所有值,值超接近1,拟合效果越好。

AdjustedR-square:

调整的R平方统计量能够能够是任何小于等于1的值,值超接近1表示拟合效果更好。

RMSE:

均方误差的模,RMSE的值接近O表示拟合效果专门好。

例子:

已知铜的热容实验数据,求铜的焓、熵和吉布斯自由能。

T

CP

10

15

20

25

30

50

70

100

150

200

250

298

400

500

600

700

800

1000

1200

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 国外设计风格

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1