ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:102.71KB ,
资源ID:4372287      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4372287.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(三次样条拟合范例.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

三次样条拟合范例.docx

1、三次样条拟合范例1设计目的、要求 对龙格函数在区间-1,1上取的等距节点,分别作多项式插值、三次样条插值和三次曲线拟合,画出及各逼近函数的图形,比较各结果。2设计原理(1) 多项式插值:利用拉格朗日多项式插值的方法,其主要原理是拉格朗日多项式,即:表示待插值函数的个节点,其中;(2) 三次样条插值:三次样条插值有三种方法,在本例中,我们选择第一边界条件下的样条插值,即两端一阶导数已知的插值方法: (3)三次曲线拟合:本题中采用最小二乘法的三次多项式拟合。最小二乘拟合是利用已知的数据得出一条直线或者曲线,使之在坐标系上与已知数据之间的距离的平方和最小。在本题中,n= 10,故有11个点,以这11

2、个点的和值为已知数据,进行三次多项式拟合,设该多项式为,该拟合曲线只需的值最小即可。3采用软件、设备 计算机、matlab软件4设计内容1、 多项式插值:在区间上取的等距节点,带入拉格朗日插值多项式中,求出各个节点的插值,并利用matlab软件建立m函数,画出其图形。在matlab中建立一个lagrange.m文件,里面代码如下:%lagrange 函数function y=lagrange(x0,y0,x)n=length(x0);m=length(x);for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j=k p=p*(z-x0(

3、j)/(x0(k)-x0(j); end end s=p*y0(k)+s; end y(i)=s;end建立一个polynomial.m文件,用于多项式插值的实现,代码如下:%lagrange插值x=-1:0.2:1;y=1./(1+25*x.2);x0=-1:0.02:1;y0=lagrange(x,y,x0);y1=1./(1+25*x0.2);plot(x0,y0,-r)%插值曲线hold on%原曲线plot(x0,y1,-b)运行duoxiangshi.m文件,得到如下图形:2、 三次样条插值:所谓三次样条插值多项式是一种分段函数,它在节点分成的每个小区间上是3次多项式,其在此区间上

4、的表达式如下:因此,只要确定了的值,就确定了整个表达式,的计算方法如下:令:则满足如下个方程:对于第一种边界条件下有 如果令那么解就可以为 求函数的二阶导数: syms x f=sym(1/(1+25*x2) f =1/(1+25*x2) diff(f) ans = -(50*x)/(25*x2 + 1)2将函数的两个端点,代入上面的式子中:f(-1)= 0.0740f(1)=-0.0740 求出从-1到1的n=10的等距节点,对应的x,y值 对应m文件代码如下:for x=-1:0.2:1 y=1/(1+25*x2)endy =得出x=-1 -0.8 -0.6 -0.4 -0.2 0 0.2

5、 0.4 0.6 0.8 1y=0.0385 0.0588 0.1 0.2 0.5 1 0.5 0.2 0.1 0.0588 0.0385 编写m文件Three_Spline.mx=linspace(-1,1,11);y=1./(1+25*x.2);m,p=scyt1(x,y,0.0740,-0.0740);hold onx0=-1:0.01:1;y0=1./(1+25*x0.2);plot(x0,y0,-b)得到如下图像:.其中蓝色曲线为原图,红色曲线为拟合后的图像。3、 三次曲线拟合:这里我们使用最小二乘法的3次拟合建立一个Three_fitting .m文件,代码如下:%主要代码x=-1

6、 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1;y=0.0385 0.0588 0.1 0.2 0.5 1 0.5 0.2 0.1 0.0588 0.0385;a=polyfit(x,y,3);x1=-1:0.01:1;y1=a(4)+a(3)*x1+a(2)*x1.2+a(1)*x1.3;x0=-1:0.01:1;y0=1./(1+25*x0.2)%原曲线plot(x0,y0,-r)hold on%三次拟合曲线plot(x1,y1,-b)上图中,蓝色部分为三次拟合曲线,红色部分为原曲线6结果分析拉格朗日插值的优点是对于某一区域,不限于被估计点周围,公式简单易

7、实施。一般认为n的次数越高,逼近的精度就越好,但在本题中,对龙格函数,中间部分插值效果比较好,而对于两端,插值结果是非常不理想的,即龙格现象。样条函数可以给出光滑的插值曲线,从本题中就能体现出来。从以上图形可以看出,三次样条插值的图形是比较逼近于原图的,收敛性相对而言是非常好的,但在本题中,仅将原区间分成10个等距区间,因此,逼近效果还不是特别理想,当我们将n增大时,插值后的曲线越逼近于原曲线。总的来说,三次样条插值的稳定性比较好,收敛性比较强。在这三种方法中,三次曲线拟合的效果是最差的,所得的图形与原曲线差距甚远。最小二乘法中,并不要求拟合后的曲线经过所有已知的点,只需要拟合多项式上的点在某

8、种标准上与定点之间的差距最小即可,因此与原曲线的逼近程度是最差的。最小二乘法的多项式拟合只适用于多项式,而本题中的函数并不是一个多项式,因此,不建议使用最小二乘法拟合。参考文献:1 李庆扬 王能超等.数值分析M.清华大学出版社2 吴振远.科学计算实验指导书 基于MATLAB数值分析M. 中国地质大学出版社3 宋叶志. MATLAB数值分析与应用M. 机械工业出版社 , 2009.07附录三次样条插值主要代码:function m,p=scyt1(x,y,df0,dfn)n=length(x);r=ones(n-1,1);u=ones(n-1,1);d=ones(n,1);r(1)=1;d(1)

9、=6*(y(2)-y(1)/(x(2)-x(1)-df0)/(x(2)-x(1);u(n-1)=1;d(n)=6*(dfn-(y(n)-y(n-1)/(x(n)-x(n-1)/(x(n)-x(n-1);for k=2:n-1 u(k-1)=(x(k)-x(k-1)/(x(k+1)-x(k-1); r(k)=(x(k+1)-x(k)/(x(k+1)-x(k-1); d(k)=6*(y(k+1)-y(k)/(x(k+1)-x(k)-(y(k)-y(k-1)/(x(k)-x(k-1)/(x(k+1)-x(k-1);endA=eye(n,n)*2;for k=1:n-1 A(k,k+1)=r(k);

10、A(k+1,k)=u(k);endm=Ad;ft=d(1);syms tfor k=1:n-1 %求s(x)即插值多项式 p(k,1)=m(k)/(6*(x(k+1)-x(k); p(k,2)=m(k+1)/(6*(x(k+1)-x(k); p(k,3)=(y(k)-m(k)*(x(k+1)-x(k)2/6)/(x(k+1)-x(k); p(k,4)=(y(k+1)-m(k+1)*(x(k+1)-x(k)2/6)/(x(k+1)-x(k); sx(k)=p(k,1)*(x(k+1)-t)3+p(k,2)*(t-x(k)3+p(k,3)*(x(k+1)-t)+p(k,4)*(t-x(k);endkmax=1000;xt=linspace(x(1),x(n),kmax);for i=1:n-1 %出点xt对应的y值 for k=1:kmax if x(i)=xt(k)&xt(k)=x(i+1) fx(k)=subs(sx(i),xt(k); endendendplot(xt,fx,r); xlabel(x); ylabel(y); title(f);text(x(fix(n/2),y(fix(n/2),f)hold onplot(x,y,*)hold off

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1