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

上传人:20022****wzdgj 文档编号:46403119 上传时间:2021-12-13 格式:DOC 页数:15 大小:317.50KB
返回 下载 相关 举报
数值计算课程设计-拟合方法与拟合函数的选取(共14页)_第1页
第1页 / 共15页
数值计算课程设计-拟合方法与拟合函数的选取(共14页)_第2页
第2页 / 共15页
数值计算课程设计-拟合方法与拟合函数的选取(共14页)_第3页
第3页 / 共15页
点击查看更多>>
资源描述
精选优质文档-倾情为你奉上题目:拟合方法与拟合函数的选取班级:数101班数102班数101班指导教师:谭高山 提交日期:2013年5月 13日专心-专注-专业目录一、拟合问题的提出.1二、拟合准则.1三、拟合函数的选取.1四、函数拟合实.2 4.1 多项式拟合2 4.2 指数与复合函数拟合.4 4.3 分段拟合7五、总结.12六、参考文献.12一、 拟合问题的提出在很多科学实验中,我们通过测量或观察等方法获得一组看上去杂乱无章的数据,为了找出这些数据之间的某种规律和联系,即寻找一个较简单的函数曲线,使之在一定准则下最接近这些数据点,以便突显各数据点的先后变化趋势,由此便产生了曲线拟合的概念。曲线拟合在实际中有着很广泛的实用价值。因为我们所获取的实验数据本身往往带有测量误差,难免会出现个别数据误差过大的现象。相比于插值法,曲线拟合时,不要求曲线严格地经过每一个数据点,这样就能有效降低个别数据对整体数据规律的干扰作用;另外,实验数据往往很多,插值法会比较繁杂,拟合方法则更实际更高效。2、 拟合准则 在曲线拟合中,有几种不同的误差准则:1.最大误差: 2. 平均误差3. 均方根误差4. 误差平方和通过求误差的最小值,可得该准则下的最佳拟合曲线。由于误差平方和容易进行最小化计算,故而我们通常采用该标准,称之为最小二乘准则。以下课程实验都是在最小二乘准则下实现的。三、拟合函数的选取曲线拟合时,首要也最关键的一步就是选取恰当的拟合函数。对于一组给定的数据,我们可以先做出其散点图,判断应该采用什么样的曲线来作拟合,然后在直观判断的基础上,选取多组曲线分别作拟合,然后比较,看哪条曲线的最小二乘指标最小,也即拟合的最好。一般来说,选取多项式作为拟合曲线,是简单且常用的。MATLAB中有现成的多项式拟合程序,调用格式为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.700.51.92.22.93.84.27.523.982.993.5710.1812.7319.8131.9038.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)的散点图')运行后得表中数据的散点图如下(图中*表示数据点的坐标):因为数据散点图的变化趋势与二次多项式很接近,所以可选用二次多项式作为拟合曲线,设f(x)=ax2+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-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.9974x2+0.0021x+3.0188; 误差很小,只有0.0097.4.2 指数与复合函数拟合例2.给出实验数据点如下表:xi2.70.12.31.60.71.40.3yi2.6411.043.214.037.104.589.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中输入程序>> 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=-BX=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)','拟合曲线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: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. 因为E1E2,显然第二种拟合曲线的误差较小,拟合效果更佳。4.3 分段拟合实际中的很多科学实验数据,其拟合函数都比较稍显复杂,下面我们来列举一例。例3. 革螨在不同浓度的甲酚皂液的平均致死时间如下表显示:X甲酚皂液的浓度(%)Y革螨的平均死亡时间(min)0.10050.40.15041.20.17533.60.20019.00.30011.60.40010.60.5008.40.6006.80.7006.21.0004.85.0002.210.0001.2用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;Y=log(y);f=polyfit(x,Y,1);A=f(2);B=f(1);a=exp(A),b=-BX=0:0.01:10;Y=a*exp(-b.*X);f=a*exp(-b.*x);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);E1=sum(fy.2)得:a =15.6609; b =0.2978; E1 =2.4705e+003 即拟合函数为: 显然,拟合效果不佳。进一步分析可以看出,前9个点有一条渐近线,而后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;即 从图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),'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.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实现,任玉杰著,高等教育出版社。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


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

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


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