三次样条函数三弯矩算法.docx

三次样条函数三弯矩算法.docx

ID:49438626

大小:56.08 KB

页数:7页

时间:2020-03-01

三次样条函数三弯矩算法.docx_第1页
三次样条函数三弯矩算法.docx_第2页
三次样条函数三弯矩算法.docx_第3页
三次样条函数三弯矩算法.docx_第4页
三次样条函数三弯矩算法.docx_第5页
资源描述:

《三次样条函数三弯矩算法.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、摘要求函数在给定区间上的定积分,在微积分学中已给出了许多计算方法,但是,在实际问题计算中,往往仅给出函数在一些离散点的值,它的解析表达式没有明显的给出,或者,虽然给出解析表达式,但却很难求得其原函数。这时我们可以通过数值方法求出函数积分的近似值。在用近似值代替真实值时,遇到的问题就是近似值的代数精度是否足够。当代数精度不足够时,很显然提高插值函数的次数是一种方法,但是考虑到数值计算的稳定性,当次数过高时,会出现龙格现象,用增大n的方法来提高数值积代数精度是不可取的。正如我们所知道的分段线性插值,逼近程度好,但光滑性差。分段三次Hermite插值,逼近程度好,光滑性也有所

2、提高,但是需要增加更多的条件,不太实用。因此,我们将介绍一种结合二者的优点的插值方法——三次样条插值。本实验将介绍三次样条插值的三弯矩算法。关键词:龙格现象三弯矩算法代数精度分段三次Hermite插值61、实验目的1)通过本次实验体会并学习三次样条插值的优点。2)通过对三次样条插值进行编程实现,提高自己的编程能力。3)用实验报告的形式展现,提高自己在写论文方面的能力。2、算法流程如果已知函数在节点a=x0

3、称Sx是三次样条插值函数。Sx的具体形式为:其中Si(x)在xn-1,xn上是三次多项式Six=aix3+bix2+cix+di由插值条件Sxi=yi,i=0,1,2,…,n,得n+1个条件。边界条件一:S'x0=y0',S'xn=yn'边界条件二:S''x0=y0'',S''xn=yn''边界条件三:假定函数y=f(x)是以b-a为周期的周期函数,这时要求S(x)也是周期函数,即Sx0+0=S(xn-0)S'x0+0=S'xn-0S''x0+0=S''xn+06针对三种边界条件的求解方法的不同,可以分为三转角算法和三弯矩算法,本实验将介绍和学习三转角算法。三弯矩算法:

4、在每个子区间xn-1,xn,因为Sx是三次多项式,所以S''x是一次多项式,假设节点xi处S''xi=Mi,i=0,1,2,⋯,n则在xn-1,xn上Si''x=x-xixi-1-xiMi-1+x-xi-1xi-xi-1Mi=xi-xhiMi-1+x-xi-1hiMi对上式积分两次得Six=Mi-1(xi-x)36hi+Mi(x-xi-1)36hi+Cixi-x+Di(x-xi-1)其中Ci和Di的值为任意常数,由端点值可以求得。显然只要确定出Mi(i=0,1,2,⋯,n)就能求出Six,进而得到三次样条函数S(x)。关于Mi,我们利用样条函数在节点xi处一阶导数连续来

5、确定。3、算法实例已知函数y=f(x)的如下表的数据i0123xi1245yi1342求满足自然边界条件S''x0=S''x3=0的f(3)的近似值解:根据题意可知,函数在区间两端的二阶导数,因此可知应该用三弯矩算法来实现,具体程序如下:#include"stdio.h"#defineN4voidmain(){inti,k;floatX,s,y0,yn;floata[N][N+1],h[N],u[N],v[N],g[N],m[N],p[N],q[N],w[N];printf("pleaseinputX:");//X为未知数的大小scanf("%f",&X);6print

6、f("pleaseinputx:");//输入x的大小for(i=0;i

7、a[i-1][1])/h[i];}printf("t(1)已知边界条件1");printf("t(2)已知边界条件2");printf("请选择边界条件序号:");scanf("%d",&k);if(k==1){printf("请输入y0和yn的一阶导:");//输入边界条件一scanf("%f%f",&m[0],&m[N-1]);p[0]=0;//用追赶法求解m[N]q[0]=0;g[1]=g[1]-v[1]*m[0];g[N-2]=g[N-2]-u[N-2]*m[N-1];for(i=1;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。