>num;intn=num-1;double*x=newdouble[num];double*y=new"> >num;intn=num-1;double*x=newdouble[num];double*y=new" />
三次样条插值算法

三次样条插值算法

ID:40721916

大小:35.50 KB

页数:3页

时间:2019-08-06

三次样条插值算法_第1页
三次样条插值算法_第2页
三次样条插值算法_第3页
资源描述:

《三次样条插值算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、//三次样条插值算法#includevoidmain(){cout<<"输入节点个数:";intnum;cin>>num;intn=num-1;double*x=newdouble[num];double*y=newdouble[num];cout<<"按序依次输入各处节点及函数值"<>x[i]>>y[i];double*h=newdouble[num];for(i=0;i<=n-1;i++)h[i]=x[i+1]-x[i];double

2、*a1=newdouble[num];double*b1=newdouble[num];cout<<"请输入边界。按1输入第一种边界条件,按2输入第二种边界条件:";intpd;cin>>pd;if(pd==1){cout<<"按顺序输入两端点的微商:"<>k1>>k2;a1[0]=0;a1[n]=1;b1[0]=2*k1;b1[n]=2*k2;}else{cout<<"按顺序输入两端点的二阶微商:"<>t1>>t2;a1[0]=1;a1[n]=

3、0;b1[0]=3*(y[1]-y[0])/h[0];b1[n]=3*(y[n]-y[n-1])/h[n-1];}for(i=1;i<=n-1;i++){a1[i]=h[i-1]/(h[i-1]+h[i]);b1[i]=((1-a1[i])*(y[i]-y[i-1])/h[i-1]+a1[i]*(y[i+1]-y[i])/h[i])*3;}double*a2=newdouble[num];double*b2=newdouble[num];a2[0]=-a1[0]/2;b2[0]=b1[0]/2;for(i=1;i<=n;

4、i++){a2[i]=-a1[i]/(2+(1-a1[i])*a2[i-1]);b2[i]=(b1[i]-(1-a1[i])*b2[i-1])/(2+(1-a1[i])*a2[i-1]);}double*m=newdouble[n+2];m[n+1]=0;for(i=n;i>=0;i--){m[i]=a2[i]*m[i+1]+b2[i];}cout<<"输入所要求的点:"<>xx;for(i=0;i<=n-1;i++){if(x[i]<=xx&&xx<=x[i+1])break;}if(i

5、<=n-1){doublekk;kk=(1+2*(xx-x[i])/(x[i+1]-x[i]))*(xx-x[i+1])*(xx-x[i+1])*y[i]/(x[i]-x[i+1])/(x[i]-x[i+1])+(1+2*(xx-x[i+1])/(x[i]-x[i+1]))*(xx-x[i])*(xx-x[i])*y[i+1]/(x[i+1]-x[i])/(x[i+1]-x[i])+(xx-x[i])*(xx-x[i+1])*(xx-x[i+1])*m[i]/(x[i]-x[i+1])/(x[i]-x[i+1])+(xx

6、-x[i+1])*(xx-x[i])*(xx-x[i])*m[i+1]/(x[i+1]-x[i])/(x[i+1]-x[i]);cout<

7、定函数y=f(x)的函数表如下,边界条件s’(0.25)=1,s’(0.53)=0.6868,用三次样条插值算法求f(0.35)的近似值。x0.250.30.390.450.53y=f(x)0.50.54770.62450.67080.728程序运行结果如下:

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

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

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