如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
#include<stdio.h>#include<stdlib.h>#include<math.h>#defineEPSILON1.0e-8#defineN3#defineDIMNvoidff(doublex[N],doublef[N]);voidfd(doublex[N],doubleDf[N][N]);intgcpelim(intprocess,doubleA[DIM][DIM],doublexx[DIM]){intk,i,j,i0;doublepelement;if(process==1)printf("Theprocessofelimination\n");for(k=0;k<DIM;k++){pelement=fabs(A[k][k]);i0=k;for(i=k;i<DIM;i++)if(fabs(A[i][k])>pelement){pelement=fabs(A[i][k]);i0=i;}if(i0!=k){for(j=0;j<DIM;j++){pelement=A[k][j];A[k][j]=A[i0][j];A[i0][j]=pelement;}pelement=xx[k];xx[k]=xx[i0];xx[i0]=pelement;}if(fabs(A[k][k])<EPSILON)return(1);for(i=k+1;i<DIM;i++){A[i][k]=A[i][k]/A[k][k];for(j=k+1;j<DIM;j++)A[i][j]=A[i][j]-A[i][k]*A[k][j];xx[i]=xx[i]-A[i][k]*xx[k];}if(process==1){for(i=0;i<DIM;i++){for(j=0;j<DIM;j++)printf("%10.6f",A[i][j]);printf("|%10.6f\n",xx[i]);}printf("\n");}}for(i=DIM-1;i>=0;i--){for(j=i+1;j<DIM;j++)xx[i]=xx[i]-A[i][j]*xx[j];xx[i]=xx[i]/A[i][i];}return(0);}intnewtns(intmaxiter,doublex[N]){inti,k;staticdoublefk[N],Df[N][N],delta;k=0;again:k=k+1;ff(x,fk);fd(x,Df);if(gcpelim(0,Df,fk)==1){printf("Strikeanykeytoexit!\n");getchar();exit(1);}delta=0.0;for(i=0;i<N;i++){x[i]=x[i]-fk[i];delta=delta+fk[i]*fk[i];}delta=sqrt(delta);if(k>maxiter)gotoendd;if(delta>EPSILON)gotoagain;endd:returnk;}voidmain(){inti,iter,maxiter=1000;staticdoublex[N]={1.5,6.5,-1.5};printf("牛顿迭代法:\n");iter=newtns(maxiter,x);printf("迭代次数%d次!\n",iter);for(i=0;i<N;i++)printf("%12.8f!\n",x[i]);if(iter>maxiter)printf("没有成功!");}voidff(doublex[N],doublef[N]){f[0]=x[0]-5.0*x[1]*x[1]+7.0*x[2]*x[2]+12.0;f[1]=3.0*x[0]*x[1]+x[0]*x[2]-11.0*x[0];f[2]=2.0*x[1]*x[2]+40.0*x[0];}voidfd(doublex[N],doubleDf[N][N]){Df[0][0]=1.0;Df[0][1]=-10.0*x[1];Df[0][2]=14.0*x[2];Df[1][0]=3.0*x[1]+x[2]-11.0;Df[1][1]=3.0*x[0];Df[1][2]=x[