曲线拟合

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例:电阻和温度的关系数据如下
• • • • • • • • • 求60度时的电阻. 温度 20.5 32.7 51.0 73.0 95.7 电阻 765 826 873 942 1032 >> T=[20.5 32.7 51 73 95.7]; >> R=[765 826 873 942 1032]; >> a=polyfit(T,R,1); >> y=poly2str(a,'t') y= 3.3987 t + 702.0968
fitoptions fittype cflibhelp
disp
get set
数据拟合函数表
excludedata
smooth confint differentiate
指定不参与拟合的数据
平滑响应数据
计算拟合系数估计值的置信区间边界
对于拟合结果求微分
integrate
predint datastates feval plot
• • • •
[y,delta]=polyval(p,x,s) 产生置信区间y±delta。如果误差结果服从 标准正态分布,则实测数据落在y±delta区 间内的概率至少为50%。
• • • •
例 >> x=[0 0.0385 0.0963 0.1925 0.2888 0.385]; >> y=[0.042 0.104 0.186 0.338 0.479 0.612]; >> [p,s,mu]=polyfit(x,y,5)
• 最简单的插值方法是先根据基准数据,调用 MATLAB的绘图命令获得数据的图形表现,然 后估计所需点处的值。
6.8.1分段插值
• 算法分析:所谓分段插值就是通过插值点用折 线或低次曲线连接起来逼近原曲线。 • MATLAB实现 可调用内部函数。
– 命令1 interp1 格式1 yi = interp1(x,y,xi,’method’) 功能 :输入参数为原始数据点(x,y),xi为指定插 值点的横坐标,yi是在xi指定位置计算出的插值结果。
•[p,s,mu]=polyfit(x,y,n) •返回多项式的系数,mu是一个二维向量 [u1,u2],u1=mean(x),u2=std(x),对数据进行预处理 x=(x-u1)/u2 例: x=1:20; y=sqrt(x)+sin(x); p=polyfit(x,y,5) [p,S]=polyfit(x,y,5) Plot(x,y,’o’,x,polyval(p,x),’-’)
• >> x1=[17:2:29]; • >> x=[x1 x1]; • >> y=[20.48 25.13 26.15 30.0 26.1 20.3 19.35 24.35 28.11 26.3 31.4 26.92 25.7 21.3]; • >> plot(x,y,'r+')
32
30
28
26
• 算例: >> years=1950:10:1990; >> service=10:10:30; >> wage = [150.697 199.592 187.625 179.323 195.072 250.287 203.212 179.092 322.767 226.505 153.706 426.730 249.633 120.281 598.243]; >> w = interp2(service,years,wage,15,1975) w= 190.6288
32
30
28
26
24
22
20
18 16
18
20
22
24
26
28
30
数据拟合函数表
cfit
fit
产生拟合的目标
用库模型、自定义模型、平滑样条或 内插方法来拟合数据 产生或修改拟合选项 产生目标的拟合形式 显示一些信息,包括库模型、三次样 条和内插方法等。 显示曲线拟合工具的信息 返回拟合曲线的属性 对于拟合曲线显示属性值
曲线拟合方法
• Matlab提供曲线拟合方法:
• 可以函数的形式,使用命令对数据进行拟 合。 • Matlab系统设计polyfit函数采用最小二乘法 原理对给定的数据组进行多项式的曲线拟 合,最后给出拟合的多项式的系数。
1.多项式拟合函数
•(1)Polyfit函数 •P=polyfit(x,y,n) •用最小二乘法对数据进行拟合,返回n次多项式的系数 向量P,并用降序排列的向量表示,长度为n+1.
24
22
20
18 16
18
20
22
24
26
28
30
• • • • • • • • •
>> a=polyfit(x,y,2) a= -0.2003 8.9782 -72.2150 >> poly2str(a,'x') ans = -0.20031 x^2 + 8.9782 x - 72.215 >> x1=17:0.1:29; >> y1=-0.20031*x1.^2+8.9782*x1-72.215; >> hold on;plot(x1,y1,'b')
•输出结果为: •p = • Columns 1 ቤተ መጻሕፍቲ ባይዱhrough 5 • 0.0193 -0.0110 -0.0430 0.0073 0.2449 • Column 6 • 0.2961 •说明拟合的多项式为:
0.0193x 5 0.0110x 4 0.043x 3 0.0073x 2 0.2449x 0.2961
对于拟合结果求积分
对于新的观察量计算预测区间的边界
返回数据的描述统计量
估计一个拟合结果结果或拟合类型
画出数据点、拟合线、预测区间、异 常值点和残差
6.8 插值和样条(非参数拟合)
有时我们对拟合参数的提取或解释不感兴趣,只想得到一个平滑的 通过各数据点的曲线,这种拟合曲线的形式称之为非参数拟合。 • 非参数拟合的方法包括 • (1)插值法Interpolants • (2)平滑样条内插法Smoothing spline • 在多项式曲线拟合并不要求拟合曲线通过这些测量数据点。 而插值是在原始数据点之间按照一定的关系插入新的数据点,以 便更准确的分析数据的变化规律。他是在假定所给的基准数据完 全正确的情况下,研究如何“平滑”的估算出“基准数据”之间 其它函数值。
• • • • • • • • • •
>> y=polyval(a,T) %计算多项式在某一点处的值 y= 1.0e+003 * 0.7718 0.8132 0.8754 0.9502 1.0274 >> plot(T,R,'k+',T,y,'r*') >> hold on >> plot(T,y,'b') >> polyval(a,60) ans = 906.0212
x=[1 3 4 5 6 7 8 9 10]; y=[10 5 4 2 1 1 2 3 4]; [p,s]=polyfit(x,y,4); y1=polyval(p,x); plot(x,y,'go',x,y1,'b--')
10 9 8 7 6 5 4 3 2 1
1
2
3
4
5
6
7
8
9
10
>> poly2str(p,'t') ans = -0.0049945 t^4 + 0.11461 t^3 0.61143 t^2 - 1.1005 t + 11.5499
5.5 5 4.5 4 3.5 3 2.5 2 1.5 1 0 2 4 6 8 10 12 14 16
18
20
• 例: >> x=[1.1,2.3,3.9,5.1]; >> y=[3.887,4.276,4.651,2.117]; >> a=polyfit(x,y,length(x)-1) a= -0.2015 1.4385 -2.7477 5.4370 >> poly2sym(a) ans = -403/2000*x^3+2877/2000*x^2-27477/10000*x+5437/1000
s=
R: [6x6 double] df: 0 normr: 2.3684e-016 mu = 0.1669 0.1499
自由度为 0 标准偏差为 2.3684e-016
例:根据表中数据进行4阶多项式拟合
X 1 3 4 4 5 2 6 1 7 1 8 2 9 3 10 4 F(x) 10 5
>> >> >> >> >>
p( x) p1x p2 x
n
n 1
pn x pn1
• [p,s]=polyfit(x,y,n) • 返回多项式系数向量p和矩阵s。 s与polyval函数一起用 时,可以得到预测值的误差估计。如数据y的误差服从 方差为常数的独立正态分布,polyval函数将生成一个误 差范围,其中包含至少50%的预测值.
1050
1000
950
900
850
800
750 20
30
40
50
60
70
80
90
100
• 例:已知年龄和运动能力的一组数据,试确定 二者的关系(根据图形指定次数)
• 年龄 17 19 21 23 25 27 29 • 第一人20.48 25.13 26.15 30.0 26.1 20.3 19.35 • 第二人24.35 28.11 26.3 31.4 26.92 25.7 21.3
y 0.2015x3 1.4385x2 2.7477x 5.4370
(2)Polyval函数
• • • • • 利用该函数进行多项式曲线拟合评价 y=polyval(p,x) 返回n阶多项式在x处的值,x可以是一个矩 阵或者是一个向量,向量p是n+1个以降序 排列的多项式的系数。
• 例:已知的数据点来自函数
根据生成的数据进行插值处理,得出较平滑的曲线 直接生成数据。 >> x=0:.12:1; >> y=(x.^2-3*x+5).*exp(-5*x).*sin(x); >> plot(x,y,x,y,'o')
>> temp=[300,400,500,600]'; >> beta=1000*[3.33,2.50,2.00,1.67]'; >> alpha=10000*[0.2128,0.3605,0.5324,0.7190]'; >> ti=[321,400,571]'; >> propty=interp1(temp,[beta,alpha],ti); %propty=interp1(temp,*beta,alpha+,ti ,’linear’); >> [ti,propty] 例 对于temp,beta 、 ans = alpha分别有两组数据与 1.0e+003 * 之对应,用分段线性插值 0.3210 3.1557 2.4382 法计算当t=321, 440, 571 0.4000 2.5000 3.6050 时beta 、alpha的值。 0.5710 1.7657 6.6489
– 命令2 interp2
• 功能 二维数据内插值(表格查找) :是对两个变量的函数 z=f(x,y)进行插值。 • 格式 ZI = interp2(x,y,z,xi,yi,’method’) • 功能:输入参数为原始数据点(x,y,z);x,y为两个独 立向量,z为矩阵,是由x,y确定的点上的值。 • Z(i,:)=f(x,y(i))和Z(:,i)=f(x(i),y) • method计算二维插值: ’linear’:双线性插值算法(缺省算法); ’nearest’:最临近插值; ’spline’:三次样条插值; ’cubic’:双三次插值。
Method:用于指定插值的方法,linear:线性插值(默认方 法)。Cubic三次多项插值。Spline:三次样条插值。Nearst: 最近邻插值。
• 例
>> year=1900:10:2010; >> product=[75.995,91.972,105.711,123.203,131.669,... 150.697,179.323,203.212,226.505,249.633,256.344,267.893]; >> p1995 = interp1(year,product,1995) p1995 = 252.9885 >> x = 1900:10:2010; >> y = interp1(year,product,x,'cubic'); >> plot(year,product,'o',x,y)
6.7 曲线拟合
曲线拟合定义
• • • • • • • • 在实际工程应用和科学实践中,经常需要寻求 两个(或多个)变量间的关系,而实际去只能 通过观测得到一些离散的数据点。针对这些分 散的数据点,运用某种拟合方法生成一条连续 的曲线,这个过程称为曲线拟合。 曲线拟合可分为: (1)参数拟合 ---- 最小二乘法 (2)非参数拟合 ---- 插值法
相关文档
最新文档