- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
重要的算法C语言实现源代码
10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔 (转)
1.拉格朗日插值多项式?,用于离散数据的拟合?
?C/C++?code#include?stdio.h??#include?conio.h??#include?alloc.h??float?lagrange(float?*x,float?*y,float?xx,int?n)?????/*拉格朗日插值算法*/??{?int?i,j;????float?*a,yy=0.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[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);?????scanf(%f,x[i]);??}??printf(\n);??for(i=0;i=n-1;i++)??{?printf(y[%d]:,i);scanf(%f,y[i]);}??printf(\n);??printf(Input?xx:);??scanf(%f,xx);??yy=lagrange(x,y,xx,n);??printf(x=%f,y=%f\n,xx,yy);??getch();?}
?
?2.牛顿插值多项式,用于离散数据的拟合?
?C/C++?code#include?stdio.h?#include?conio.h?#include?alloc.h?void?difference(float?*x,float?*y,int?n)?{?float?*f;??int?k,i;??f=(float?*)malloc(n*sizeof(float));??for(k=1;k=n;k++)??{?f[0]=y[k];?????for(i=0;ik;i++)???????f[i+1]=(f[i]-y[i])/(x[k]-x[i]);?????y[k]=f[k];??}??return;?}?main()?{?int?i,n;??float?x[20],y[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);?????scanf(%f,x[i]);??}????printf(\n);??for(i=0;i=n-1;i++)??{?printf(y[%d]:,i);scanf(%f,y[i]);}??printf(\n);??difference(x,(float?*)y,n);??printf(Input?xx:);??scanf(%f,xx);??yy=y[20];??for(i=n-1;i=0;i--)?yy=yy*(xx-x[i])+y[i];??printf(NewtonInter(%f)=%f,xx,yy);??getch();?}
?
?3.高斯列主元消去法,求解其次线性方程组?
?C/C++?code#includestdio.h?#include?math.h?#define?N?20?int?main()?{?int?n,i,j,k;??int?mi,tmp,mx;??fl
文档评论(0)