Ai xem giùm mình code này có bị sai về ngữ nghĩa không? Câu cú thì ok nhưng khi chạy kết quả k chuẩn cho lắm .
PHP Code: #include
#include
void nhap(float &xn, float *&y, float &h, int &n)
{
int i;
printf ("\nNhap so moc noi suy");
scanf ("%d", &n);
y=new float [n+1];
printf ("\nNhap moc noi suy cuoi cung");
scanf ("%f", &xn);
printf ("\nNhap khoang cach giua cac moc noi suy");
scanf ("%f", &h);
printf ("\nNhap gia tri cua ham so tai cac moc noi suy");
for (i=0;i<=n;i++)
{
printf ("\ny[%d]= ",i);
scanf ("%f", &y);
}
}
float newton_lui (float xn, float x,float *y, float h, int n)
{
int i,j;
float *D,f,t,T;
D=new float [n+1];
t=(x-xn)/h; T=1;
for (i=0;i<=n-1;i++)
D=y[i+1]-y;
f=y[n]+t*D[n-1];
for (j=2;j<=n;j++)
{
for (i=0;i<=n-j;i++)
D=D[i+1]-D;
T*=(t+j-1)/j;
f+=T*D[n-j];
}
delete D;
return f;
}
void main()
{
int n;
float xn,x,*y,h,f;
nhap(xn,y,h,n);
printf ("\nNhap x= ");
scanf ("%f", &x);
f=newton_lui(xn,x,y,h,n);
printf ("\nf[%.3f]= %.3f",x,f);
delete y;
getch();
}
PHP Code: #include
#include
void nhap(float &xn, float *&y, float &h, int &n)
{
int i;
printf ("\nNhap so moc noi suy");
scanf ("%d", &n);
y=new float [n+1];
printf ("\nNhap moc noi suy cuoi cung");
scanf ("%f", &xn);
printf ("\nNhap khoang cach giua cac moc noi suy");
scanf ("%f", &h);
printf ("\nNhap gia tri cua ham so tai cac moc noi suy");
for (i=0;i<=n;i++)
{
printf ("\ny[%d]= ",i);
scanf ("%f", &y);
}
}
float newton_lui (float xn, float x,float *y, float h, int n)
{
int i,j;
float *D,f,t,T;
D=new float [n+1];
t=(x-xn)/h; T=1;
for (i=0;i<=n-1;i++)
D=y[i+1]-y;
f=y[n]+t*D[n-1];
for (j=2;j<=n;j++)
{
for (i=0;i<=n-j;i++)
D=D[i+1]-D;
T*=(t+j-1)/j;
f+=T*D[n-j];
}
delete D;
return f;
}
void main()
{
int n;
float xn,x,*y,h,f;
nhap(xn,y,h,n);
printf ("\nNhap x= ");
scanf ("%f", &x);
f=newton_lui(xn,x,y,h,n);
printf ("\nf[%.3f]= %.3f",x,f);
delete y;
getch();
}