matlab 曲线拟合.docx

上传人:b****6 文档编号:8053151 上传时间:2023-05-12 格式:DOCX 页数:14 大小:22.23KB
下载 相关 举报
matlab 曲线拟合.docx_第1页
第1页 / 共14页
matlab 曲线拟合.docx_第2页
第2页 / 共14页
matlab 曲线拟合.docx_第3页
第3页 / 共14页
matlab 曲线拟合.docx_第4页
第4页 / 共14页
matlab 曲线拟合.docx_第5页
第5页 / 共14页
matlab 曲线拟合.docx_第6页
第6页 / 共14页
matlab 曲线拟合.docx_第7页
第7页 / 共14页
matlab 曲线拟合.docx_第8页
第8页 / 共14页
matlab 曲线拟合.docx_第9页
第9页 / 共14页
matlab 曲线拟合.docx_第10页
第10页 / 共14页
matlab 曲线拟合.docx_第11页
第11页 / 共14页
matlab 曲线拟合.docx_第12页
第12页 / 共14页
matlab 曲线拟合.docx_第13页
第13页 / 共14页
matlab 曲线拟合.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

matlab 曲线拟合.docx

《matlab 曲线拟合.docx》由会员分享,可在线阅读,更多相关《matlab 曲线拟合.docx(14页珍藏版)》请在冰点文库上搜索。

matlab 曲线拟合.docx

matlab曲线拟合

MATLAB插值、拟合与编程[转]

科学计算  2009-04-0708:

28  阅读313   评论1 

字号:

大大 中中 小小

相关知识

在生产和科学实验中,自变量与因变量间的函数关系有时不能写出解析表达式,而只能得到函数在若干点的函数值或导数值,或者表达式过于复杂而需要较大的计算量。

当要求知道其它点的函数值时,需要估计函数值在该点的值。

为了完成这样的任务,需要构造一个比较简单的函数,使函数在观测点的值等于已知的值,或使函数在该点的导数值等于已知的值,寻找这样的函数有很多方法。

根据测量数据的类型有以下两类处理观测数据的方法。

(1)测量值是准确的,没有误差,一般用插值。

(2)测量值与真实值有误差,一般用曲线拟合。

在MATLAB中,无论是插值还是拟合,都有相应的函数来处理。

一、插       值

1、一维插值:

已知离散点上的数据集,即已知在点集X=上的函数值Y=,构造一个解析函数(其图形为一曲线)通过这些点,并能够求出这些点之间的值,这一过程称为一维插值。

MATLAB命令:

yi=interp1(X,Y,xi,method)

该命令用指定的算法找出一个一元函数,然后以给出处的值。

xi可以是一个标量,也可以是一个向量,是向量时,必须单调,method可以下列方法之一:

‘nearest’:

最近邻点插值,直接完成计算;         

‘spline’:

三次样条函数插值;

‘linear’:

线性插值(缺省方式),直接完成计算;   

‘cubic’:

三次函数插值;

对于[min{xi},max{xi}]外的值,MATLAB使用外推的方法计算数值。

例1:

已知某产品从1900年到2010年每隔10年的产量为:

75.995,91.972,105.711,123.203,131.699,150.697,179.323,203.212,226.505,249.633,256.344,267.893,计算出1995年的产量,用三次样条插值的方法,画出每隔一年的插值曲线图形,同时将原始的数据画在同一图上。

解:

程序如下

year=1900:

10:

2010;

product=[75.995,91.972,105.711,123.203,131.699,150.697,179.323,203.212,226.505,249.633,256.344,267.893]

p1995=interp1(year,product,1995)

x=1900:

2010;

y=interp1(year,product,x,'cubic');

plot(year,product,'o',x,y);

计算结果为:

p1995=252.9885。

 

 

2、二维插值

已知离散点上的数据集,即已知在点集上的函数值,构造一个解析函数(其图形为一曲面)通过这些点,并能够求出这些已知点以外的点的函数值,这一过程称为二维插值。

MATLAB函数:

Zi=interp2(X,Y,Z,Xi,Yi,method)

该命令用指定的算法找出一个二元函数,然后以给出处的值。

返回数据矩阵,Xi,Yi是向量,且必须单调,和meshgrid(Xi,Yi)是同类型的。

method可以下列方法之一:

‘nearest’:

最近邻点插值,直接完成计算;        

‘spline’:

三次样条函数插值;

‘linear’:

线性插值(缺省方式),直接完成计算;   

‘cubic’:

三次函数插值;

例2:

已知1950年到1990年间每隔10年,服务年限从10年到30年每隔10年的劳动报酬表如下:

 表:

某企业工作人员的月平均工资(元)

服务年限

年份

10

20

30

1950

150.697

169.592

187.652

1960

179.323

195.072

250.287

1970

203.212

239.092

322.767

1980

226.505

273.706

426.730

1990

249.633

370.281

598.243

试计算1975年时,15年工龄的工作人员平均工资。

解:

程序如下:

years=1950:

10:

1990;

service=10:

10:

30;

wage=[150.697169.592187.652

     179.323195.072250.287

     203.212239.092322.767

     226.505273.706426.730

249.633370.281598.243];

mesh(service,years,wage) %绘原始数据图

w=interp2(service,years,wage,15,1975); %求点(15,1975)处的值

计算结果为:

235.6288

例3:

设有数据x=1,2,3,4,5,6,y=1,2,3,4,在由x,y构成的网格上,数据为:

12,10,11,11,13,15

16,22,28,35,27,20

18,21,26,32,28,25

20,25,30,33,32,20

求通过这些点的插值曲面。

解:

程序为:

x=1:

6;

y=1:

4;

t=[12,10,11,11,13,15

  16,22,28,35,27,20

  18,21,26,32,28,25;

  20,25,30,33,32,20]

subplot(1,2,1)

mesh(x,y,t)

x1=1:

0.1:

6;

y1=1:

0.1:

4;

[x2,y2]=meshgrid(x1,y1);

t1=interp2(x,y,t,x2,y2,'cubic');

subplot(1,2,2)

mesh(x1,y1,t1);

结果如右图。

 

作业:

已知某处山区地形选点测量坐标数据为:

x=00.511.522.533.544.55

y=00.511.522.533.544.555.56

海拔高度数据为:

z=8990878592919693908782

9296989995918986848284

9698959290888584838185

8081828995969392898686

8285879899969788858283

8285899495939291868488

8892939495898786838192

9296979896939584828184

8585818280808185909395

8486819899989796958487

8081858283848790958688

8082818485868382818082

8788899899979698949287

1、 画出原始数据图;

2、 画出加密后的地貌图,并在图中标出原始数据

 

 

 

 

二、拟合

曲线拟合

已知离散点上的数据集,即已知在点集上的函数值,构造一个解析函数(其图形为一曲线)使在原离散点上尽可能接近给定的值,这一过程称为曲线拟合。

最常用的曲线拟合方法是最小二乘法,该方法是寻找函数使得最小。

MATLAB函数:

p=polyfit(x,y,n)

[p,s]=polyfit(x,y,n)

说明:

x,y为数据点,n为多项式阶数,返回p为幂次从高到低的多项式系数向量p。

x必须是单调的。

矩阵s用于生成预测值的误差估计。

(见下一函数polyval)

多项式曲线求值函数:

polyval()

调用格式:

y=polyval(p,x)

[y,DELTA]=polyval(p,x,s)

说明:

y=polyval(p,x)为返回对应自变量x在给定系数P的多项式的值。

[y,DELTA]=polyval(p,x,s)使用polyfit函数的选项输出s得出误差估计YDELTA。

它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数。

则YDELTA将至少包含50%的预测值。

例5:

求如下给定数据的拟合曲线,x=[0.5,1.0,1.5,2.0,2.5,3.0],

y=[1.75,2.45,3.81,4.80,7.00,8.60]。

解:

MATLAB程序如下:

x=[0.5,1.0,1.5,2.0,2.5,3.0];

y=[1.75,2.45,3.81,4.80,7.00,8.60];

p=polyfit(x,y,2)

x1=0.5:

0.05:

3.0;

y1=polyval(p,x1);

plot(x,y,'*r',x1,y1,'-b')

计算结果为:

p=0.5614 0.8287 1.1560

此结果表示拟合函数为:

,用此函数拟合数据的效果如图所示。

 

例2:

由离散数据

x

0

.1

.2

.3

.4

.5

.6

.7

.8

.9

1

y

.3

.5

1

1.4

1.6

1.9

.6

.4

.8

1.5

2

拟合出多项式。

程序:

x=0:

.1:

1;

y=[.3.511.41.61.9.6.4.81.52]

n=3;

p=polyfit(x,y,n)

xi=linspace(0,1,100);

z=polyval(p,xi);%多项式求值

plot(x,y,’o’,xi,z,’k:

’,x,y,’b’)

legend(‘原始数据’,’3阶曲线’)

结果:

p=

16.7832-25.745910.9802-0.0035

多项式为:

16.7832x3-25.7459x2+10.9802x-0.0035

曲线拟合图形:

也可由函数给出数据。

例3:

x=1:

20,y=x+3*sin(x)

程序:

x=1:

20;

y=x+3*sin(x);

p=polyfit(x,y,6)

xi=linspace(1,20,100);

z=polyval(p,xi);%¶àÏîʽÇóÖµº¯Êý

plot(x,y,'o',xi,z,'k:

',x,y,'b')

结果:

p=

0.0000-0.00210.0505-0.59713.6472-9.729511.3304

再用10阶多项式拟合

程序:

x=1:

20;

y=x+3*sin(x);

p=polyfit(x,y,10)

xi=linspace(1,20,100);

z=polyval(p,xi);

plot(x,y,'o',xi,z,'k:

',x,y,'b')

结果:

p=

Columns1through7

0.0000-0.00000.0004-0.01140.1814-1.806511.2360

Columns8through11

-42.086188.5907-92.815540.267

可用不同阶的多项式来拟合数据,但也不是阶数越高拟合的越好。

作业:

1.已知x=[0.1,0.8,1.3,1.9,2.5,3.1],y=[1.2,1.6,2.7,2.0,1.3,0.5],利用其中的部分数据,分别用线性函数插值,3次函数插值,求x=2.0处的值。

2.已知二元函数在点集上的值为,其中,左上角位置表示,右下角位置表示,求该数据集的插值曲面。

3.已知x=[1.2,1.8,2.1,2.4,2.6,3.0,3.3],y=[4.85,5.2,5.6,6.2,6.5,7.0,7.5],求对x,y分别进行4,5,6阶多项式拟合的系数,并画出相应的图形。

4.学习函数interp3(X,Y,Z,V,X1,Y1,Z1,method),对MATLAB提供的flow数据实现三维插值。

多数情况都是用多项式曲线拟合函数polyfit进行拟合,如果是直线的话,n取1。

p=polyfit(x,y,n)

[p,S]=polyfit(x,y,n)

[p,S,mu]=polyfit(x,y,

拟合度或拟合率R^2=(SSy-RSS)/SSy,SSy为目标变数的离均差平方和,RSS为离回归平方和(残差平方和)。

【求助】求助matlab高手,请问如何用matlab拟合曲线

作者:

fn09  发布日期:

2008-09-08

电缆深度        双程时间(um)

大井平台起算        固定基准面(海拔1100m)起算

770        728.66

790        741.26

810        753.85

830        766.45

850        779.04

870        791.64

890        804.23

910        816.83

930        829.42

950        841.93

970.0000293        854.37

990.0000293        866.38

1009.999968        878.30

1030.000029        890.21

1050.000029        902.13

1070.000029        914.04

1090.000029        926.94

1110.000029        940.31

1130.000029        953.69

1150.000029        967.06

1170.000029        980.44

1190.000029        993.82

1210.000029        1007.43

1230.000029        1021.82

1250.000029        1036.22

1270.000029        1050.45

1290.000029        1064.13

1310.000029        1077.70

1330.000029        1090.09

1350.000029        1102.48

1370.000029        1114.87

1390.000029        1128.13

1410.000029        1141.87

1430.000029        1155.61

1450.000029        1169.35

1470.000029        1183.09

1490.000029        1196.34

1510.000029        1209.10

1530.000029        1221.85

1550.000029        1233.90

1570.000029        1245.22

1590.000151        1256.54

1610.000029        1267.86

1630.000029        1279.19

1650.000029        1290.64

1670.000029        1302.13

1689.999907        1313.59

1710.000151        1325.04

1730.000029        1336.49

1750.000029        1347.94

1770.000029        1359.39

1790.000029        1370.84

1810.000151        1382.29

1830.000029        1393.74

1850.000029        1405.19

1870.000029        1416.52

1890.000029        1427.32

1909.999907        1438.12

1930.000151        1448.91

1950.000029        1458.38

1970.000029        1467.41

1990.000029        1475.72

2009.999907        1483.58

2030.000151        1491.43

2050.000029        1499.28

2070.000029        1507.13

2090.000029        1514.99

2110.000029        1523.37

2130.000029        1531.74

2150.000029        1540.11

2170.000029        1548.49

2190.000029        1556.72

2210.000029        1564.61

2230.000029        1572.50

2250.000029        1580.39

2270.000029        1588.72

2290.000029        1597.61

2310.000029        1606.50

2330.000029        1615.40

2350.000029        1624.29

2370.000029        1633.18

2390.000029        1643.02

2410.000029        1654.13

2430.000029        1665.24

2450.000029        1676.36

2470.000029        1687.80

2490.000029        1699.26

2510.000029        1710.72

2530.000029        1722.22

2550.000029        1733.71

2570.000029        1745.20

2590.000029        1756.17

2610.000029        1766.70

2630.000029        1777.23

2650.000029        1787.76

2670.000029        1797.75

2690.000029        1806.22

2710.000029        1814.69

2730.000029        1823.16

2750.000029        1831.62

2770.000029        1840.82

2790.000029        1850.63

2810.000029        1860.45

2830.000029        1870.26

2850.000029        1880.08

2870.000029        1889.89

2890.000029        1900.02

2910.000029        1910.17

2930.000029        1920.31

2950.000029        1930.45

2970.000029        1940.60

2990.000029        1950.74

3010.000029        1960.89

3030.000029        1971.03

3050.000029        1981.17

3070.000029        1988.82

3090.000029        1996.32

3110.000029        2003.82

3130.000029        2011.32

3150.000029        2018.82

3170.000029        2026.32

3190.000029        2033.85

3210.000029        2041.77

3230.000029        2049.68

3250.000029        2057.

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

当前位置:首页 > 求职职场 > 简历

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

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