newton等距插值算法C++

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include <iostream.h>
#include<math.h>
typedef struct data
{
double x;
double y;
}Data;
Data data[50];
double newton(double x,int number)
{
double a[50][50],y=data[0].y,h,t,ji=1;
{
h=data[1].x-data[0].x;
t=(x-data[0].x)/h;
cout<<"计算插值:"<<endl;
for(int k=0;k<number;k++)
{
a[k][0]=data[k].y;
cout<<data[k].y<<" ";
}
cout<<endl;
for(int j=1;j<number;j++)//计算插值
{
for(int k=j;k>0;k--)
{
cout<<" ";
}
for(int i=j;i<number;i++)
{
a[i][j]=a[i][j-1]-a[i-1][j-1];
cout<<a[i][j]<<" ";
}
cout<<endl;
}
}
y=0;
for(int g=1;g<number;g++)//按公式计算等距newton插值
{
ji=(1.0/g)*ji*(t-g+1);
y=a[g][g]*ji+y;
}
return y+0.79618;
}
int main()
{
double x,y;
int number;
number=6;
data[0].x=0.125;
data[0].y=0.79618;
data[1].x=0.250;
data[1].y=0.77334;
data[2].x=0.375;
data[2].y=0.74371;
data[3].x=0.500;
data[3].y=0.70413;
data[4].x=0.625;
data[4].y=0.65632;
data[5].x=0.750;
data[5].y=0.60228;
//data[6].x=0.6;
//data[6].y=0.82534;
cout<<"请输入x的值:";//获得变量x的值
cin>>x;
y=newton(x,number);
cout<<"输出结果:"<<endl;
cout<<"x="<<x<<endl<<"f(x)="<<y<<endl;
return 0;
}
/*#include<stdio.h>
#include<stdlib.h>
double Newton(double x[],double y[],n);
bool Juncha(double x[],double y[],n);
int main()
{
int i=0,j=0,k=0;
int n=6;
int result=0;
double x[7]={0.0,0.1,0.2,0.3,0.4,0.5,0.6};
double y[7]={1.0000,0.99500,0.98007,0.95534,0.92106,0.87758,0.82534};
int m=n*(n+1)/2;
int ch[m];
chafenFunc(y,n,0,ch)
j=n;
while(j!=m-1)
{
chafenFunc(cha);
}
return 0;
}
double NewtonFunc(double x[],double y[],double ch[])
{
double f0=y[0];
}
bool chafenFunc(double y[],int n,int j,double ch[])//jc表示均差,本函数就是求解均差,保存在jc 二维数组中.
{
int i=0;
for(i=0;i<n+1;i++)
{
ch[j]=y[i+1]-y[i];
j++;
}
}*/
/*
bool Juncha(double x[],double y[],n,double **jc)//jc表示均差,本函数就是求解均差,保存在jc 二维数组中.
{
int i=0;
int j=0;
for(i=0;i<n+1;i++)//求jc[i][0](i=1,2,3...)
{
jc[i][0]=y[i];
}
for(i=1;i<n+1;i++)//求jc[i][j]均差
{
for(j=i;j<n+1;j++)
{
jc[j][i]=(jc[j][i-1]-jc[j-1][i-1])/(x[j]-x[j-i]);
}
}
return true; }
*/。

相关文档
最新文档