목차
3-1 largrange interplation method
3-2 newton iterpolation method
3-2 newton iterpolation method
본문내용
#include
#include
#include
#define fa(x) (exp(x))
int k,m,n1;
double s[10],x[10],f[10],p[10];
void lagrange(void);
void main(void)
{
int i;
double error;
/* 파일 입출력을 위한 파일 지정 부분 */
FILE *in, *out;
in=fopen(\\\"data.in\\\",\\\"r\\\");
out=fopen(\\\"data.out\\\", \\\"w\\\");
fprintf(out, \\\"Number of inputed data : \\\");
fscanf(in, \\\"%d\\\",&n1);
fprintf(out,\\\"%d\\\",n1);
for(i=1;i<=n1;i++){
fscanf(in,\\\"%lf%lf\\\", &x[i],&f[i]);
fprintf(out, \\\"\n%lf %lf\\\", x[i],f[i]);
}
fprintf(out,\\\"\nNumber of outputed data : \\\");
fscanf(in, \\\"%d\\\", &m);
fprintf(out,\\\"%d\\\",m);
for(i=1;i<=m;i++) fscanf(in,\\\"%lf\\\",&s[i]);
fprintf(out,\\\"\n****** Solution ******\n\\\");
fprintf(out,\\\" NO. Point Value Error\\\");
lagrange();
for(i=1;i<=m;i++){
error=p[i]-fa(s[i]);
fprintf(out,\\\"\n %2d %7.3lf %7.5lf %15.6le\\\", i,s[i],p[i],error);
}
/* 파일닫기! */
fclose(in);
fclose(out);
}
void lagrange(void)
{
int i,j;
double sc, sp;
for (k=1;k<=m+3;k++){
sc=0;
for(i=1;i<=n1;i++){
sp=1.;
for(j=1;j<=n1;j++){
if(i!=j)
sp=sp*(s[k]-x[j])/(x[i]-x[j]);
}
sc+=(sp*f[i]);
}
p[k]=sc;
}
}
#include
#include
#define fa(x) (exp(x))
int k,m,n1;
double s[10],x[10],f[10],p[10];
void lagrange(void);
void main(void)
{
int i;
double error;
/* 파일 입출력을 위한 파일 지정 부분 */
FILE *in, *out;
in=fopen(\\\"data.in\\\",\\\"r\\\");
out=fopen(\\\"data.out\\\", \\\"w\\\");
fprintf(out, \\\"Number of inputed data : \\\");
fscanf(in, \\\"%d\\\",&n1);
fprintf(out,\\\"%d\\\",n1);
for(i=1;i<=n1;i++){
fscanf(in,\\\"%lf%lf\\\", &x[i],&f[i]);
fprintf(out, \\\"\n%lf %lf\\\", x[i],f[i]);
}
fprintf(out,\\\"\nNumber of outputed data : \\\");
fscanf(in, \\\"%d\\\", &m);
fprintf(out,\\\"%d\\\",m);
for(i=1;i<=m;i++) fscanf(in,\\\"%lf\\\",&s[i]);
fprintf(out,\\\"\n****** Solution ******\n\\\");
fprintf(out,\\\" NO. Point Value Error\\\");
lagrange();
for(i=1;i<=m;i++){
error=p[i]-fa(s[i]);
fprintf(out,\\\"\n %2d %7.3lf %7.5lf %15.6le\\\", i,s[i],p[i],error);
}
/* 파일닫기! */
fclose(in);
fclose(out);
}
void lagrange(void)
{
int i,j;
double sc, sp;
for (k=1;k<=m+3;k++){
sc=0;
for(i=1;i<=n1;i++){
sp=1.;
for(j=1;j<=n1;j++){
if(i!=j)
sp=sp*(s[k]-x[j])/(x[i]-x[j]);
}
sc+=(sp*f[i]);
}
p[k]=sc;
}
}
소개글