第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx

上传人:b****1 文档编号:361764 上传时间:2023-04-28 格式:DOCX 页数:22 大小:214.06KB
下载 相关 举报
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第1页
第1页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第2页
第2页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第3页
第3页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第4页
第4页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第5页
第5页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第6页
第6页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第7页
第7页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第8页
第8页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第9页
第9页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第10页
第10页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第11页
第11页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第12页
第12页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第13页
第13页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第14页
第14页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第15页
第15页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第16页
第16页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第17页
第17页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第18页
第18页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第19页
第19页 / 共22页
第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx

《第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx(22页珍藏版)》请在冰点文库上搜索。

第七讲 MATLAB在插值与逼近中的应用Word文档下载推荐.docx

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

1.5Lagrange插值

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=1.0;

forj=1:

ifj~=i

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

end

p=p+l*y0(i);

end

y=p;

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

x

0.10

0.15

0.25

0.30

ln(x)

0.

x0=[0.100.150.250.3];

y0=[0.0.0.0.];

y=lagrange(x0,y0,0.2)

y=

0.6667

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

0.4

0.5

0.6

0.7

0.8

-0.

x0=[0.4:

0.1:

0.8];

y0=[-0.-0.-0.-0.-0.];

y=lagrange(x0,y0,0.54)

y=-0.

y=log(0.54)

y=-0.3817

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

1.6.1高次插值的Runge现象

对于函数

x=[-5:

1:

5];

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

x0=[-5:

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

y1=lagrange(x,y,x0);

plot(x0,y1,'

--or'

holdon

plot(x0,y0,'

-b'

clf

x1=[-5:

0];

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

x2=[0:

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

x3=[-5:

x4=[0:

y3=lagrange(x1,y1,x3);

y4=lagrange(x2,y2,x4);

plot(x3,y3,'

or'

x4,y4,'

+r'

1.7MATLAB插值函数

插值函数及其功能

函数

功能描述

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'

v5cubic'

-thecubicinterpolationfromMATLAB5,whichdoesnot

extrapolateanduses'

ifXisnotequallyspaced.

x=0:

8;

y=sin(x);

xi=0:

ni=interp1(x,y,xi,'

);

li=interp1(x,y,xi,'

si=interp1(x,y,xi,'

ci=interp1(x,y,xi,'

cublic'

plot(x,y,'

o'

xi,ni,'

ms'

xi,li,'

b*'

xi,ci,'

k+'

xi,si,'

r-'

legend('

原数据'

'

1.8样条曲线的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端点处的一阶导数和二阶导数相等

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

1.9最小二乘拟合

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

小于某一误差限ε

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

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

1.0

1.5

2.0

2.5

3.0

y

1.75

2.45

3.81

4.80

7.00

8.60

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

x=[0.51.01.52.02.53.0];

y=[1.752.453.814.807.008.60];

a=polyfit(x,y,2)

f=poly2str(a,'

x'

x1=[0.5:

0.05:

3.0];

y1=a(3)+a

(2)*x1+a

(1)*x1.^2;

plot(x,y,'

*'

holdon

plot(x1,y1,'

-r'

a=

0.56140.82871.1560

f=

0.56143x^2+0.82871x+1.156

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

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

xi

19

25

31

38

44

yi

19.0

32.3

49.0

73.3

97.8

x=[1925313844];

y=[19.032.349.073.397.8];

x1=x.^2

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

]

ab=x1\y'

x0=[19:

0.2:

44];

y0=ab

(1)+ab

(2)*x0.^2;

clf

plot(x0,y0,'

x1=36162596114441936

x1=1361

1625

1961

11444

11936

ab=0.9726

0.0500

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=0.12*exp(-0.213*x)+0.54*exp(-0.17*x).*sin(1.23*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'

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

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

Optimizationterminatedsuccessfully:

RelativefunctionvaluechangingbylessthanOPTIONS.TolFun

0.11970.21250.54040.17021.2300

resnorm=

7.1637e-007

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

0.0544

15

0.1842

20

0.4605

0.9630

30

1.6957

50

6.1546

70

10.8857

100

15.9936

150

20.5153

200

22.6506

250

23.7810

298

24.4509

400

25.4557

500

26.1675

600

26.7537

700

27.2979

800

27.7166

1000

28.5540

1200

29.3076

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2