三次样条拟合典型实例.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三次样条拟合典型实例

1设计目的、要求 对龙格函数在区间[-1,1]上取的等距节点,分别作多项式插值、三次样条插值和三次曲线拟合,画出及各逼近函数的图形,比较各结果。 2设计原理 多项式插值:利用拉格朗日多项式插值的方法,其主要原理是拉格朗日多项式,即: 表示待插值函数的个节点, ,其中; 三次样条插值:三次样条插值有三种方法,在本例中,我们选择第一边界条件下的样条插值,即两端一阶导数已知的插值方法: (3)三次曲线拟合:本题中采用最小二乘法的三次多项式拟合。最小二乘拟合是利用已知的数据得出一条直线或者曲线,使之在坐标系上与已知数据之间的距离的平方和最小和值为已知数据,进行三次多项式拟合,设该多项式为,该拟合曲线只需的值最小即可。 3采用软件、设备 计算机、matlab软件 4设计内容 多项式插值: 在区间上取的等距节点,带入拉格朗日插值多项式中,求出各个节点的插值,并利用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(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文件,得到如下图形: 三次样条插值: 所谓三次样条插值多项式是一种分段函数,它在节点分成的每个小区间上是3次多项式,其在此区间上的表达式如下: 因此,只要确定了的值,就确定了整个表达式,的计算方法如下: 令: 则满足如下个方程: 对于第一种边界条件下有 如果令那么解就可以为 求函数的二阶导数: syms x f=sym(1/(1+25*x^2)) f = 1/(1+25*x^2) diff(f) ans = -(50*x)/(25*x^2 + 1)^2 将函数的两个端点,代入上面的式子中: f’(-1)= 0.0740 f’(1)=-0.0740 求出从-1到1的n=10的等距节点,对应的x,y值 对应m文件代码如下: for x=-1:0.2:1 y=1/(1+25*x^2) end y = 得出 x=-1 -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 编写m文件Three_Spline.m x=linspace(-1,1,11); y=1./(1+25*x.^2); [m,p]=scyt1(x,y,0.0740,-0.0740); hold on x0=-1:0.01:1; y0=1./(1+25*x0.^2); plot(x0,y0,--b) 得到如下图像: . 其中蓝色曲线为原图,红色曲线为拟合后的图像。 三次曲线拟合: 这里我们使用最小二乘法的3次拟合 建立一个Three_fitting .m文件,代码如下: %主要代码 x=[-1 -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) 上图中,蓝色部分为三次拟合曲线,红色部分为原

文档评论(0)

zhanghc + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档