资源描述:
《重要的算法C语言实现源代码.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔(转)1.拉格朗日插值多项式 ,用于离散数据的拟合 C/C++ code#include #include #include float lagrange(float *x,float *y,float xx,int n) /*拉格朗日插值算法*/ { int i,j; float *a,yy=0
2、.0; /*a作为临时变量,记录拉格朗日插值多项式*/ a=(float *)malloc(n*sizeof(float)); for(i=0;i<=n-1;i++) { a[i]=y[i]; for(j=0;j<=n-1;j++) if(j!=i) a[i]*=(xx-x[j])/(x[i]-x[j]); yy+=a[i]; } free(a); return yy; } main() { int i,n; float x[20],y
3、[20],xx,yy; printf("Input n:"); scanf("%d",&n); if(n>=20) {printf("Error!The value of n must in (0,20)."); getch();return 1;} if(n<=0) {printf("Error! The value of n must in (0,20)."); getch(); return 1;} for(i=0;i<=n-1;i++) { printf("x[%d]:",i);
4、 scanf("%f",&x[i]); } printf(""); for(i=0;i<=n-1;i++) { printf("y[%d]:",i);scanf("%f",&y[i]);} printf(""); printf("Input xx:"); scanf("%f",&xx); yy=lagrange(x,y,xx,n); printf("x=%f,y=%f",xx,yy); getch(); } 10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高
5、斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔(转)1.拉格朗日插值多项式 ,用于离散数据的拟合 C/C++ code#include #include #include float lagrange(float *x,float *y,float xx,int n) /*拉格朗日插值算法*/ { int i,j; float *a,yy=0.0; /*a作为临时变量,记录拉格朗日插值多项式
6、*/ a=(float *)malloc(n*sizeof(float)); for(i=0;i<=n-1;i++) { a[i]=y[i]; for(j=0;j<=n-1;j++) if(j!=i) a[i]*=(xx-x[j])/(x[i]-x[j]); yy+=a[i]; } free(a); return yy; } main() { int i,n; float x[20],y[20],xx,yy; printf("Input n
7、:"); scanf("%d",&n); if(n>=20) {printf("Error!The value of n must in (0,20)."); getch();return 1;} if(n<=0) {printf("Error! The value of n must in (0,20)."); getch(); return 1;} for(i=0;i<=n-1;i++) { printf("x[%d]:",i); scanf("%f",&x[i]); } p
8、rintf(""); for(i=0;i<=n-1;i++) { printf("y[%d]:",i);scanf("%f",&y[i]);} printf(""); printf("Input xx:"); scanf("%f",&xx); yy=lagrange(x,y,xx,n); printf("x=%f,y=%f",xx,yy); getch(); } 10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝