首页 10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格

10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格

举报
开通vip

10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格10个重要的算法C语言实现源代码:拉格朗日牛顿插值,高斯,龙贝格~~关键字:拉格朗日,牛顿插值,高斯,龙贝格1.拉格朗日插值多项式,用于离散数据的拟合C/C++code#include#include#includefloatlagrange(float*x,float*y,floatxx,intn){inti,j;float*a,yy=0.0;a=(float*)malloc(n*sizeof(float));for(i=0;i=20){printf("Error!Thevalueofnmustin(0,20)....

10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格
10个重要的算法C语言实现源代码:拉格朗日牛顿插值,高斯,龙贝格~~关键字:拉格朗日,牛顿插值,高斯,龙贝格1.拉格朗日插值多项式,用于离散数据的拟合C/C++code#include#include#includefloatlagrange(float*x,float*y,floatxx,intn){inti,j;float*a,yy=0.0;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);returnyy;}main(){inti,n;floatx[20],y[20],xx,yy;printf("Inputn:");scanf("%d",&n);if(n>=20){printf("Error!Thevalueofnmustin(0,20).");getch();return1;}if(n<=0){printf("Error!Thevalueofnmustin(0,20).");getch();return1;}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("Inputxx:");scanf("%f",&xx);yy=lagrange(x,y,xx,n);printf("x=%f,y=%f\n",xx,yy);getch();}2.牛顿插值多项式,用于离散数据的拟合C/C++code#include#include#includevoiddifference(float*x,float*y,intn){float*f;intk,i;f=(float*)malloc(n*sizeof(float));for(k=1;k<=n;k++){f[0]=y[k];for(i=0;i=20){printf("Error!Thevalueofnmustin(0,20).");getch();return1;}if(n<=0){printf("Error!Thevalueofnmustin(0,20).");getch();return1;}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("Inputxx:");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#include#include#defineN20intmain(){intn,i,j,k;intmi,tmp,mx;floata[N][N],b[N],x[N];printf("\nInputn:");scanf("%d",&n);if(n>N){printf("Theinputnshouldin(0,N)!\n");getch();return1;}if(n<=0){printf("Theinputnshouldin(0,N)!\n");getch();return1;}printf("Nowinputa(i,j),i,j=0...%d:\n",n-1);for(i=0;imx){mi=j;mx=fabs(a[j][i]);}if(i=0;i--){x[i]=b[i];for(j=i+1;j#include#defineNUMBER20#defineEsc0x1b#defineEnter0x0dfloatA[NUMBER][NUMBER+1],ark;intflag,n;exchange(intr,intk);floatmax(intk);message();main(){floatx[NUMBER];intr,k,i,j;charcelect;clrscr();printf("\n\nUseGauss.");printf("\n\n1.JiepleasepressEnter.");printf("\n\n2.ExitpressEsc.");celect=getch();if(celect==Esc)exit(0);printf("\n\ninputn=");scanf("%d",&n);printf("\n\nInputmatrixAandB:");for(i=1;i<=n;i++){printf("\n\nInputa%d1--a%d%dandb%d:",i,i,n,i);for(j=1;j<=n+1;j++)scanf("%f",&A[i][j]);}for(k=1;k<=n-1;k++){ark=max(k);if(ark==0){printf("\n\nIt'swrong!");message();}elseif(flag!=k)exchange(flag,k);for(i=k+1;i<=n;i++)for(j=k+1;j<=n+1;j++)A[i][j]=A[i][j]-A[k][j]*A[i][k]/A[k][k];}x[n]=A[n][n+1]/A[n][n];for(k=n-1;k>=1;k--){floatme=0;for(j=k+1;j<=n;j++){me=me+A[k][j]*x[j];}x[k]=(A[k][n+1]-me)/A[k][k];}for(i=1;i<=n;i++){printf("\n\nx%d=%f",i,x[i]);}message();}exchange(intr,intk){inti;for(i=1;i<=n+1;i++)A[0][i]=A[r][i];for(i=1;i<=n+1;i++)A[r][i]=A[k][i];for(i=1;i<=n+1;i++)A[k][i]=A[0][i];floatmax(intk){inti;floattemp=0;for(i=k;i<=n;i++)if(fabs(A[i][k])>temp){temp=fabs(A[i][k]);flag=i;}returntemp;}message(){printf("\n\nGoonEnter,ExitpressEsc!");switch(getch()){caseEnter:main();caseEsc:exit(0);default:{printf("\n\nInputerror!");message();}}}4.龙贝格求积公式,求解定积分C/C++code#include#include#definef(x)(sin(x)/x)#defineN20#defineMAX20#definea2#defineb4#definee0.00001floatLBG(floatp,floatq,intn){inti;floatsum=0,h=(q-p)/n;for(i=1;iT[m][1]-e)){printf("Answer=%f\n",T[m][1]);getch();return;}}}C/C++code5.牛顿迭代公式,求方程的近似解C/C++code#include#include#include#defineN100#definePS1e-5#defineTA1e-5floatNewton(float(*f)(float),float(*f1)(float),floatx0){floatx1,d=0;intk=0;do{x1=x0-f(x0)/f1(x0);if((k++>N)||(fabs(f1(x1))PS&&fabs(f(x1))>TA);returnx1;}floatf(floatx){returnx*x*x+x*x-3*x-3;}floatf1(floatx){return3.0*x*x+2*x-3;}voidmain(){floatf(float);floatf1(float);floatx0,y0;printf("Inputx0:");scanf("%f",&x0);printf("x(0)=%f\n",x0);y0=Newton(f,f1,x0);printf("\nTherootisx=%f\n",y0);getch();}6.牛顿-科特斯求积公式,求定积分C/C++code#include#includeintNC(a,h,n,r,f)float(*a)[];floath;intn,f;float*r;{intnn,i;floatds;if(n>1000||n<2){if(f)printf("\nFaild!Checkif1nn)*r=*r+0.375*(h)*((*a)[n-4]+3*(*a)[n-3]+3*(*a)[n-2]+(*a)[n-1]);return(0);}main(){floath,r;intn,ntf,f;inti;floata[16];printf("Inputthex[i](16):\n");for(i=0;i<=15;i++)scanf("%d",&a[i]);h=0.2;f=0;ntf=NC(a,h,n,&r,f);if(ntf==0)printf("\nR=%f\n",r);elseprintf("\nWrong!Returncode=%d\n",ntf);getch();}7.雅克比迭代,求解方程近似解C/C++code#include#include#defineN20#defineMAX100#definee0.00001intmain(){intn;inti,j,k;floatt;floata[N][N],b[N][N],c[N],g[N],x[N],h[N];printf("\nInputdimofn:");scanf("%d",&n);if(n>N){printf("Faild!Checkif0floatqin(floata[],intn,floatx){floatr=0;inti;for(i=n;i>=0;i--)r=r*x+a[i];returnr;}main(){floata[50],x,r=0;intn,i;do{printf("Inputfrequency:");scanf("%d",&n);}while(n<1);printf("Inputvalue:");for(i=0;i<=n;i++)scanf("%f",&a[i]);printf("Inputfrequency:");scanf("%f",&x);r=qin(a,n,x);printf("Answer:%f",r);getch();}9.幂法C/C++code#include#include#defineN100#definee0.00001#definen3floatx[n]={0,0,1};floata[n][n]={{2,3,2},{10,3,4},{3,6,1}};floaty[n];main(){inti,j,k;floatxm,oxm;oxm=0;for(k=0;kxm)xm=fabs(y[j]);for(j=0;j#include#defineN20#defineM99floata[N][N];floatb[N];intmain(){inti,j,k,n;floatsum,no,d,s,x[N];printf("\nInputdimofn:");scanf("%d",&n);if(n>N){printf("Faild!Checkif0M){printf("\nError!\n”);getch();}break;}no=0.0;for(i=0;i=0.1e-6);if(no<0.1e-6){printf("\n\nanswer=\n");printf("\nk=%d",k);for(i=0;i
本文档为【10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_072127
暂无简介~
格式:doc
大小:15KB
软件:Word
页数:12
分类:
上传时间:2019-11-18
浏览量:17