线性插值、抛物插值、拉格朗日、牛顿插值代码.doc

上传人:工**** 文档编号:544873934 上传时间:2023-09-16 格式:DOC 页数:5 大小:53.51KB
返回 下载 相关 举报
线性插值、抛物插值、拉格朗日、牛顿插值代码.doc_第1页
第1页 / 共5页
线性插值、抛物插值、拉格朗日、牛顿插值代码.doc_第2页
第2页 / 共5页
线性插值、抛物插值、拉格朗日、牛顿插值代码.doc_第3页
第3页 / 共5页
线性插值、抛物插值、拉格朗日、牛顿插值代码.doc_第4页
第4页 / 共5页
线性插值、抛物插值、拉格朗日、牛顿插值代码.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《线性插值、抛物插值、拉格朗日、牛顿插值代码.doc》由会员分享,可在线阅读,更多相关《线性插值、抛物插值、拉格朗日、牛顿插值代码.doc(5页珍藏版)》请在金锄头文库上搜索。

1、计算机数值计算方法及程序设计P63函数值为X1234567y11.4142141.73205122.2360682.4494902.645751/拉格朗日插值P63#include float czl(int n,float x1,float *px,float *py);int main() float x1,y1; int n; float *p1,*p2; float x10=1,2,3,4,5,6,7; float y10=1,1.414214,1.732051,2,2.236068,2.449490,2.645751; printf(Input numbers:x1 n=n); sc

2、anf(%f%d,&x1,&n); p1=x; p2=y; y1=czl(n,x1,p1,p2); printf(y1=%fn,y1); getch(); return 0;float czl(int n,float x1,float *px,float *py) int i,j; float x10,y10,t,y1; y1=0.0; for(i=0;in;i+,px+,py+) xi=*px; yi=*py; for(i=0;in;i+) t=1.0; for(j=0;jn;j+) if(i!=j)t=t*(x1-xj)/(xi-xj); y1=y1+t*yi; return(y1);/输

3、入为/2.5 4/输出为/y=1.582274/线性插值 P58#include float cz(float x0,float x1,float y0,float y1,float x);int main(void) float x0,x1,y0,y1,x,y; printf(Input numbers:x0,x1,y0,y1,x=?n); scanf(%f%f%f%f%f,&x0,&x1,&y0,&y1,&x); y=cz(x0,x1,y0,y1,x); printf(y=%fn,y);float cz(float x0,float x1,float y0,float y1,float x

4、) float l0,l1,y; l0=(x-x1)/(x0-x1); l1=(x-x0)/(x1-x0); y=l0*y0+l1*y1; return (y); /*输入:1 5 1 2.6.68 2.5 输出y=1.463526 */抛物插值 P60#includefloat cz(float x0,float x1,float x2,float y0,float y1,float y2,float x);float cz(float x0,float x1,float x2,float y0,float y1,float y2,float x) float l0,l1,l2,y; l0=

5、(x-x1)*(x-x2)/(x0-x1)*(x0-x2); l1=(x-x0)*(x-x2)/(x1-x0)*(x1-x2); l2=(x-x0)*(x-x1)/(x2-x0)*(x2-x1); y=l0*y0+l1*y1+l2*y2; return(y); int main(void) float x0,x1,x2,y0,y1,y2,x,y; printf(Input numbers:x0 x1 x2 y0 y1 y2 x=?n); freopen(in.txt,r,stdin); freopen(out.txt,w,stdout); scanf(%f%f%f%f%f%f%f,&x0,&x

6、1,&x2,&y0,&y1,&y2,&x); y=cz(x0,x1,x2,y0,y1,y2,x); printf(y=%fn,y); getch(); getch(); return 0;/*输入:1 3 5 1 1.732051 2.236068 2.5 输出y=1.570416 */牛顿插值 P83#include#include#define N 6float sub(float a,float b,float x,float e);main()float uN=100,121,122,169,196,225;float vN=10,11,12,13,14,15;float x,y,e,

7、*p1,*p2;printf(Input number x e= );scanf(%f%e,&x,&e);p1=u;p2=v;y=sub(p1,p2,x,e);printf(y=%fn,y);getch();getch();float sub(float *pp1,float *pp2,float x,float e)float aN,bN,tN,y,y1,c;int i,k;for(i=0;iN;i+,pp1+) ai=*pp1;printf(%12.6,ai);printf(n);for(i=0;iN;i+,*pp2+) bi=*pp2;printf(%12.6f,bi);printf(n);y1=b0;y=0;c=1.0;for(k=1;kN;k+) for(i=k;iN;i+) ti=(bi-bi-1)/(ai-ai-k); c=c*(x-ak-1);y1=y1+c*tk;if(fabs(y-y1)e) y=y1;for(i=k;iN;i+) bi=ti; return(y);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号