高斯列主消元法法和LU分解法.doc

高斯列主消元法法和LU分解法.doc

ID:48619329

大小:16.30 KB

页数:7页

时间:2020-01-29

高斯列主消元法法和LU分解法.doc_第1页
高斯列主消元法法和LU分解法.doc_第2页
高斯列主消元法法和LU分解法.doc_第3页
高斯列主消元法法和LU分解法.doc_第4页
高斯列主消元法法和LU分解法.doc_第5页
资源描述:

《高斯列主消元法法和LU分解法.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、高斯列主消元法:#include#include#defineN10intmain(){inti=0,j=0,r=0,n=0,k=1;floata[N][N],x[N],max=-1,sum1=0,sum2=0;//输入矩阵维数printf("Pleaseentern0

2、{for(i=k;i<=n;i++){if(fabs(a[i][k])>max){max=a[i][k];r=i;}if(a[r][k]==0){printf("Cannotsolve!");return0;}}//换行for(j=1;j<=n+1;j++){sum1=a[k][j];a[k][j]=a[r][j];a[r][j]=sum1;}//将矩阵化为上三角矩阵for(i=k+1;i<=n;i++){for(j=k+1;j<=n+1;j++){a[i][j]=a[i][j]-(a[i][k])*(a[k][j])/(a[k][k]);}}k=k+1;max=-1;}while

3、(k<(n-1));//求x[]x[n]=(a[n][n+1])/(a[n][n]);for(k=n-1;k>=1;k--){for(j=k+1;j<=n;j++)sum2=sum2+(a[k][j])*(x[j]);x[k]=(a[k][n+1]-sum2)/(a[k][k]);sum2=0;}//输出结果for(i=1;i<=n;i++){printf("x[%d]=%f",i,x[i]);}while(1);return0;}LU分解法:#include#include#defineN10//矩阵大小范围/**使用已经求出的x,向前计算x

4、(供getx()调用)*floata[][]矩阵U*floatx[]方程组解*inti解的序号(数组X元素序号)*intn矩阵大小*return公式中需要的和*/floatgetmx(floata[N][N],floatx[N],inti,intn){floatmx=0;intr;for(r=i+1;r

5、[N][N],floaty[N],inti,intn){floatmy=0;intr;for(r=0;r

6、n-1]);else//计算其他x值(对于公式中的求和部分,需要调用getmx()函数)result=(float)((b[i]-getmx(a,x,i,n))/a[i][i]);returnresult;}/**解数组Y,计算其中一元素值*floata[][]矩阵L*floaty[]数组Y*inti数组Y元素序号*intn矩阵大小*return数组Y的第i个元素值*/floatgety(floata[N][N],floatb[N],floaty[N],inti,intn){floatresult;if(i==0)//计算第一个y的值result=float(b[i]/a[i][i])

7、;else//计算其他y值(对于公式中的求和部分,需要调用getmy()函数)result=float((b[i]-getmy(a,y,i,n))/a[i][i]);returnresult;}intmain(){floatl[N][N]={0};//定义L矩阵floatu[N][N]={0};//定义U矩阵floaty[N]={0};//定义数组Yfloatx[N]={0};//定义数组Xfloata[N][N];//定义系数矩阵floatb

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。