下载此文档

C语言求解非线性方程、线性方程组代码.doc


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
本文档提供了牛顿法、列主元素消去法、LU分解法三类求解方程的代码,对应非线性方程及线性方程组。利用C语言编写,采用txt文件输入、输出方式。/*牛顿法求解非线性方程*/#include<>#include<>#include<>floatf(floatx)/*定义函数f(x)*/{return2*x*x+2*x+1-exp(2*x);}floatf1(floatx)/*定义函数f(x)的导数f1(x)*/{return4*x+2-2*exp(2*x);}main(){floatx0,x1,eps;/*定义初值和迭代精度*/FILE*fp1,*fp2;if((fp1=fopen("","r"))==NULL){printf("Can'topenthisfile!\n");exit(0);}fscanf(fp1,"%f%f",&x1,&eps);do{x0=x1;if(fabs(f(x0))<=eps)x1=x0;elsex1=x0-f(x0)/f1(x0);/*牛顿迭代*/}while(fabs(f(x1))>eps);/*循环条件*/fp2=fopen("","w");fprintf(fp2,"%e",x1);fclose(fp1);fclose(fp2);}/*列主元素消去法求解线性方程组*/#include<>#include<>#include<>#defineN3voidmain(){inti,j,k,mi;/*定义变量类型*/floatmax,temp;floata[N][N],b[N],x[N],r[N][N+1];FILE*fp1;/*输入系数矩阵及列向量b*/if((fp1=fopen("","r"))==NULL){printf("Can'topenthisfile!\n");exit(0);}for(i=0;i<N;i++)for(j=0;j<N+1;j++)fscanf(fp1,"%f",&r[i][j]);fclose(fp1);for(i=0;i<N;i++)for(j=0;j<N;j++)a[i][j]=r[i][j];for(i=0;i<N;i++)b[i]=r[i][N];for(j=0;j<N-1;j++)/*找出列主元素并交换*/{for(i=j+1,mi=j,max=fabs(a[j][j]);i<N;i++)if(fabs(a[i][j])>max){mi=i;max=fabs(a[i][j]);}if(j<mi){temp=b[j];b[j]=b[mi];b[mi]=temp;for(k=j;k<N;k++){temp=a[j][k];a[j][k]=a[mi][k];a[mi][k]=temp;}}for(i=j+1;i<N;i++){temp=-a[i][j]/a[j][j];b[i]+=b[j]*temp;for(k=j;k<N;k++)a[i][k]+=a[j][k]*temp;}}x[N-1]=b[N-1]/a[N-1][N-1];/*消去求解*/for(i=N-2;i>=0;i--){x[i]=b[i];for(j=i+1;j<N;j++)x[i]-=a[i][j]*x[j];

C语言求解非线性方程、线性方程组代码 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wxc6688
  • 文件大小23 KB
  • 时间2020-03-07