数值计算课程设计-拟合方法与拟合函数的选取(共14页)

上传人:20022****wzdgj 文档编号:46403119 上传时间:2021-12-13 格式:DOC 页数:15 大小:317.50KB
收藏 版权申诉 举报 下载
数值计算课程设计-拟合方法与拟合函数的选取(共14页)_第1页
第1页 / 共15页
数值计算课程设计-拟合方法与拟合函数的选取(共14页)_第2页
第2页 / 共15页
数值计算课程设计-拟合方法与拟合函数的选取(共14页)_第3页
第3页 / 共15页
资源描述:

《数值计算课程设计-拟合方法与拟合函数的选取(共14页)》由会员分享,可在线阅读,更多相关《数值计算课程设计-拟合方法与拟合函数的选取(共14页)(15页珍藏版)》请在装配图网上搜索。

1、精选优质文档-----倾情为你奉上 题目:拟合方法与拟合函数的选取 班级: 数101班 数102班 数101班 指导教师: 谭高山 提交日期:2013年5月 13日 专心---专注---专业 目录 一、拟合问题的提出……………………………………………….1 二、拟合准则……………………………………………………….1 三、拟

2、合函数的选取..…………………………………………….1 四、函数拟合实.………………………………………………….2 4.1 多项式拟合……………………………………………………2 4.2 指数与复合函数拟合.....………………………………………4 4.3 分段拟合………………………………………………………7 五、总结…………………………………………………………..12 六、参考文献……………………………………………….…….12 一、 拟合问题的提出 在很多科学实验中,我们通过测量或观察等方法获得一组看上去杂乱无

3、章的数据,为了找出这些数据之间的某种规律和联系,即寻找一个较简单的函数曲线,使之在一定准则下最接近这些数据点,以便突显各数据点的先后变化趋势,由此便产生了曲线拟合的概念。 曲线拟合在实际中有着很广泛的实用价值。因为我们所获取的实验数据本身往往带有测量误差,难免会出现个别数据误差过大的现象。相比于插值法,曲线拟合时,不要求曲线严格地经过每一个数据点,这样就能有效降低个别数据对整体数据规律的干扰作用;另外,实验数据往往很多,插值法会比较繁杂,拟合方法则更实际更高效。 2、 拟合准则 在曲线拟合中,有几种不同的误差准则: 1.最大误差: 2.

4、 平均误差 3. 均方根误差 4. 误差平方和 通过求误差的最小值,可得该准则下的最佳拟合曲线。由于误差平方和容易进行最小化计算,故而我们通常采用该标准,称之为最小二乘准则。以下课程实验都是在最小二乘准则下实现的。 三、拟合函数的选取 曲线拟合时,首要也最关键的一步就是选取恰当的拟合函数。对于一组给定的数据,我们可以先做出其散点图,判断应该采用什么样的曲线来作拟合,然后在直观判断的基础上,选取多组曲线分别作拟合,然后比较,看哪条曲线的最小二乘指标最小,也即拟合的最好。 一般来说,选取多项式作为拟合曲线,是简单且常用的。MATLAB中有现成的多项式拟合程序,调

5、用格式为f=polyfit(x,y,n),其中输入参数x,y为要拟合的数据,n为拟合多项式的系数,输出参数f为拟合多项式的系数向量。 对于稍微复杂一点的拟合曲线,我们可以先通过线性变换将之转换成简单的线性函数,接着再用多项式拟合的命令f=polyfit(x,y,n)来实现函数的拟合。下面表格列举两个线性变换的例子: 原函数y 化为线性函数Y=AX+B型 变量与常量的变化 4、 函数拟合实例 4.1多项式拟合 例1.给定一组数据点 如下表: -1.5 -0.7 0 0.5 1.9 2.2

6、 2.9 3.8 4.2 7.52 3.98 2.99 3.57 10.18 12.73 19.81 31.90 38.24 首先,我们在MATLAB中输入程序 >> x=[-1.5 -0.7 0 0.5 1.9 2.2 2.9 3.8 4.2];y=[7.52 3.98 2.99 3.57 10.18 12.73 19.81 31.90 38.24]; plot(x,y,'b*'),xlabel('x'),ylabel('y') title('表中数据点(xi,yi)的散点图'

7、;) 运行后得表中数据的散点图如下(图中*表示数据点的坐标): 因为数据散点图的变化趋势与二次多项式很接近,所以可选用二次多项式作为拟合曲线,设f(x)=ax^2+bx+c。编程: >> x=[-1.5 -0.7 0 0.5 1.9 2.2 2.9 3.8 4.2];y=[7.52 3.98 2.99 3.57 10.18 12.73 19.81 31.90 38.24]; f=polyfit(x,y,2);a=f(1),b=f(2),c=f(3) X=-1.5:0.01:4.2;Y=polyval(f,X);f=polyval(f,x); fy=abs(f

8、-y);E=sum((fy.^2)) plot(x,y,'r*',X,Y,'b-'),xlabel('x'),ylabel('y') title('拟合直线与数据点结合图') 运行后得: a = 1.9974; b =0.0021; c = 3.0188; E = 0.0097 生成如下图形: 即拟合多项式为:f=1.9974x^2+0.0021x+3.0188; 误差很小,只有0.0097. 4.2 指数与复合函数拟合 例2.给出实验数据点如下表: xi 2.7 0

9、.1 2.3 1.6 0.7 1.4 0.3 yi 2.64 11.04 3.21 4.03 7.10 4.58 9.37 在MATLAB中输入程序: >> x=[2.7 0.1 2.3 1.6 0.7 1.4 0.3];y=[2.64 11.04 3.21 4.03 7.10 4.58 9.37]; >> plot(x,y,'b*'),axis([0,3,0,12]) 得散点图: 据图,我们取两种拟合函数分别为 和 : (1) 设 ,在MATLAB中输入程序

10、>> x=[2.7 0.1 2.3 1.6 0.7 1.4 0.3];y=[2.64 11.04 3.21 4.03 7.10 4.58 9.37]; Y=log(y);f=polyfit(x,Y,1);A=f(2);B=f(1);a=exp(A),b=-B X=0:0.01:3;Y=a*exp(-b.*X);f=a*exp(-b.*x); plot(x,y,'r*',X,Y,'b-'),xlabel('x'),ylabel('y') legend('数据点 (xi,yi)','拟合曲线

11、Y=f(x)') title('数据点(xi,yi)和拟合曲线Y=f(x)的图形') fy=abs(f-y);E1=sum((fy.^2)) 得: a =10.7441; b =0.5460; E1 = 1.3072. (2) 设 ,在MATLAB中输入程序 x=[2.7 0.1 2.3 1.6 0.7 1.4 0.3];y=[2.64 11.04 3.21 4.03 7.10 4.58 9.37]; Y=1./y;f=polyfit(x,Y,1);a=f(1),b=f(2) X=0:

12、0.01:3;Y=1./(a.*X+b);f=1./(a.*x+b); plot(x,y,'r*',X,Y,'b-'),xlabel('x'),ylabel('y') Legend('数据点(xi,yi)','拟合曲线Y=f(x)') Title('数据点(xi,yi)和拟合曲线Y=f(x)的图形') Fy=abs(f-y);E2=sum((fy.^2)) 得: a =0.1089; b =0.0720; E2 =0.0097. 因为E1〉E2,显然第二种

13、拟合曲线的误差较小,拟合效果更佳。 4.3 分段拟合 实际中的很多科学实验数据,其拟合函数都比较稍显复杂,下面我们来列举一例。 例3. 革螨在不同浓度的甲酚皂液的平均致死时间如下表显示: X甲酚皂液的浓度(%) Y革螨的平均死亡时间(min) 0.100 50.4 0.150 41.2 0.175 33.6 0.200 19.0 0.300 11.6 0.400 10.6 0.500 8.4 0.600 6.8 0.700 6.2 1.000 4.8 5.000 2.2 10.000 1.2 用MATLAB作散点图:

14、 分析上图可知,曲线的两端都含有渐近线,故全段拟合曲线中一定含有指数项。 >> x=[0.100 0.150 0.175 0.200 0.300 0.400 0.500 0.600 0.700 1.000 5.000 10.000]; y=[50.4 41.2 33.6 19.0 11.6 10.6 8.4 6.8 6.2 4.8 2.2 1.2]; Y=log(y);f=polyfit(x,Y,1);A=f(2);B=f(1);a=exp(A),b=-B X=0:0.01:10;Y=a*exp(-b.*X);f=a*exp(-b.*x); plot(x,y,

15、9;r*',X,Y,'b-'),xlabel('x'),ylabel('y') legend('数据点 (xi,yi)','拟合曲线Y=f(x)') title('数据点(xi,yi)和拟合曲线Y=f(x)的图形') fy=abs(f-y);E1=sum((fy.^2)) 得:a =15.6609; b =0.2978; E1 =2.4705e+003 即拟合函数为: 显然,拟合效果不佳。进一步分析可以看出,前9个点有一条渐近线,而后

16、3个点有一条渐近线。可将要拟合的曲线分为二段,前9个点为前段,后3个点为后段。我们可以分别对前9个点和后3个点进行直线化。以x为横坐标,lny 为纵坐标,做散点图plot(x,log(y),'b*')得 可以看出后三个点明显呈直线趋势,我们先对后三个点进行直线化。拟合的方法和前面相同,在MATLAB中输入 x=[1.000 5.000 10.000]; y=[ 4.8 2.2 1.2]; Y=log(y);f=polyfit(x,Y,1);A=f(2);B=f(1);a=exp(A),b=-B 得:a =5.2635;b =0.1527;即

17、 从图3发现前9个点仍呈曲线趋势,需要进一步线性化。具体步骤如下:利用(4)求得前9个点处的函数值y’,再把实际数据中的前9个值减去y’。即得y”=y-y’,然后取其对数值ln(y”),用MATLAB作出这些点图象,在MATLAB下不需要一个个去求,只要在命令窗口输入如下命令: >> x=[0.100 0.150 0.175 0.200 0.300 0.400 0.500 0.600 0.700]; y=[50.4 41.2 33.6 19.0 11.6 10.6 8.4 6.8 6.2]; plot(x,log(y-(5.2635.*exp(-0.1527*x))

18、,'b*') 得: 可以发现这9个点成一定的曲线趋势,利用x和 y的值可建立起直线回归方程。只要在MATLAB下用同样的方法再次求指数拟合 >> x=[0.100 0.150 0.175 0.200 0.300 0.400 0.500 0.600 0.700]; y=[50.4 41.2 33.6 19.0 11.6 10.6 8.4 6.8 6.2]; Y=log(y-(5.2635.*exp(-0.1527.*x)));f=polyfit(x,Y,1);A=f(2);B=f(1);a=exp(A),b=-B 得a = 62.55659;b = 5

19、.7270;即 由于前段各点在后段直线的上方,故最终的拟合函数应为y=(4)+(5), 即 在MATLAB中做出散点和拟合曲线 >> x=[0.100 0.150 0.175 0.200 0.300 0.400 0.500 0.600 0.700 1.000 5.000 10.000]; y=[50.4 41.2 33.6 19.0 11.6 10.6 8.4 6.8 6.2 4.8 2.2 1.2]; X=0:0.01:10;Y=5.2635.*exp(-0.1527.*X)+62.55659.*exp(-5.7270.*X); 得下图: 显然,所求拟合函数令人满意。 五、总结 函数拟合是一种实用性很强的数学方法,例如,可以用来寻求血药浓度变化规律,用来测定弹簧弹力与伸长量之间的关系等等,总之它涉及生活学习的方方面面。另外,在实例分析中,我们通常都能先根据逻辑方法确定数据之间遵循的函数类型,所以很多时候只需确定一种拟合函数即可。值得注意的是,要学会通过不同途径去尽量减少函数拟合的误差。 六、参考文献 1.《数值分析》第七版,Richard L.Burden,J.Douglas Faires,高等教育出版社。 2.《数值分析及其MATLAB实现》,任玉杰著,高等教育出版社。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!