收藏 分销(赏)

数据插值及拟合.doc

上传人:仙人****88 文档编号:7855116 上传时间:2025-01-22 格式:DOC 页数:7 大小:85.50KB 下载积分:10 金币
下载 相关 举报
数据插值及拟合.doc_第1页
第1页 / 共7页
数据插值及拟合.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
用MATLAB作线性最小二乘拟合 % 数据点 x=[1,2,4,7,9,12,13,15,17]; f=[1.5,3.9,6,11.7,12.6,18.8,20.3,20.6,21.1]; % 设定 axis([0,18, 1,22]) xlabel('x') ylabel('f') % 插值点 y=1:0.1:17; % 画出已知数据点、最近邻点插值、三次曲线拟合的图形并比较 figure(1) plot(x,f,'o') gtext('已知数据点') hold on; pause bb1=interp1(x,f,y,'nearest') plot(y,bb1) gtext('最近邻点插值') hold on; pause a=polyfit(x,f,3) aa=polyval(a,y) plot(y,aa,':') gtext('三次曲线拟合') hold off; pause % 画出已知数据点、直线插值、三次曲线拟合的图形并比较 figure(2) plot(x,f,'o') gtext('已知数据点') hold on; pause bb1=interp1(x,f,y,'linest') plot(y,bb1) gtext('直线插值') hold on; pause a=polyfit(x,f,3) aa=polyval(a,y) plot(y,aa,':') gtext('三次曲线拟合') hold off; pause % 画出已知数据点、样条插值、三次曲线拟合的图形并比较 figure(3) plot(x,f,'o') gtext('已知数据点') hold on; pause bb1=interp1(x,f,y,'spline') plot(y,bb1) gtext('样条插值') hold on; pause a=polyfit(x,f,3) aa=polyval(a,y) plot(y,aa,':') gtext('三次曲线拟合') hold off; pause 解超定方程的方法 x=0:0.1:1; y=[-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.30,11.2]; R=[(x.^2)',x',ones(11,1)] A=R\y' plot(x,y,'o',x,R*A,':') legend('实际值','拟合值','Location','best') 用多项式拟合的命令 x=0:0.1:1; y=[-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.30,11.2]; A=polyfit(x,y,2) z=polyval(A,x); plot(x,y,'k+',x,z,'r') legend('实际值','拟合值','Location','best') 两个求非线性最小二乘拟合的函数:lsqcurvefit、lsqnonlin。 举例求解 用电压V=10伏的电池给电容器充电,电容器上t时刻的电压为 ,其中V0是电容器的初始电压,是充电常数。试由下面一组t,V数据确定V0, 。 分别应用非线性最小二乘拟合以及非线性回归命令求解,并作比较,体会统计回归与拟合方法的区别。 t (秒) 0.5 1 2 3 4 5 7 9 V (伏) 6.36 6.48 7.26 8.22 8.66 8.99 9.43 9.63 1.用非线性最小二乘拟合求解: 编写M-文件 curvefun1.m function f=curvefun1(x,tdata) f=10-(10-x(1))*exp(-tdata./x(2)) 输入命令: tdata=[0.5 1 2 3 4 5 7 9]; vdata=[6.36 6.48 7.26 8.22 8.66 8.99 9.43 9.63]; x0=[0.2,0.05]; x=lsqcurvefit ('curvefun1',x0,tdata,vdata) f= curvefun1(x,tdata) 求得运算结果: x = 5.5577 3.5002 f = 6.1490 6.6616 7.4913 8.1147 8.5832 8.9353 9.3987 9.6604 V0=5.5577 =3.5002 2.用非线性回归命令求解: 建立m-文件volum.m如下: function yhat=volum(beta,x) yhat=10-(10-beta(1))*exp(-x./beta(2)); 输入命令为: x=[ 0.5 1 2 3 4 5 7 9] y=[6.36 6.48 7.26 8.22 8.66 8.99 9.43 9.63]; beta0=[1, 2]'; [beta,r,J]=nlinfit(x',y','volum',beta0); beta 求得运算结果: beta = 5.5577 3.5002 V0=5.5577 =3.5002 与用非线性最小二乘拟合求解结果一样。 区别: 统计回归可以判断拟合的效果,用统计回归可以分析可靠性,而拟合只是对数据点的拟合,不能用数据说明拟合的可靠性,只能从图形来判别。 非线性回归以及预测图 x=2:16; y=[6.42 8.20 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.80 10.60 10.90 10.76]; beta0=[8 2]'; [beta,r,J]=nlinfit(x',y','volum',beta0); [YY,delta]=nlpredci('volum',x',beta,r ,J); plot(x,y,'k+',x,YY,'r',x,YY+delta,'b:',x,YY-delta,'b:')
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服