牛顿插值法C语言程序123

更新时间:2023-08-25 17:59:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

学号2131388 姓名 范宇超

程序:

#include<stdio.h>

#include<math.h>

#define N 6

float sub(float a[],float b[],float x,float e); void main(void)

{

float u[N]={100,121,144,169,196,225}; float v[N]={10,11,12,13,14,15}; float x,y,e,*p1,*p2;

printf("Input number x E=:"); scanf("%f%e",&x,&e);

p1=u;

p2=v;

y=sub(p1,p2,x,e);

printf("y=%f\n",y);

}

float sub(float *pp1,float *pp2,float x,float e) {

float a[N],b[N],t[N],y,y1,c; int i,k;

for(i=0;i<N;i++,pp1++) {

a[i]=*pp1;

printf("%12.6f",a[i]); }

printf("\n");

for(i=0;i<N;i++,*pp2++) {

b[i]=*pp2;

printf("%12.6f",b[i]); }

printf("\n");

y1=b[0];y=0;

c=1.0;

for(k=1;k<N;k++)

{

for(i=k;i<N;i++)

t[i]=(b[i]-b[i-1])/(a[i]-a[i-k]);

c*=(x-a[k-1]); y1+=c*t[k];

if(fabs(y-y1)<e)break; y=y1;

for(i=k;i<N;i++) b[i]=t[i]; }

return(y);

}

运行结果

本文来源:https://www.bwwdw.com/article/3eei.html

Top