Cholesky分解法的思想及C语言编程.doc

Cholesky分解法的思想及C语言编程.doc

ID:54701314

大小:52.50 KB

页数:2页

时间:2020-04-20

Cholesky分解法的思想及C语言编程.doc_第1页
Cholesky分解法的思想及C语言编程.doc_第2页
资源描述:

《Cholesky分解法的思想及C语言编程.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Cholesky分解法Cholesky分解法又称三角分解法,或称因子化法设线性方程组(1)式中为对称、正定的矩阵。对于对称、正定的矩阵,可进行分解(2)式中是下单位三角阵,是对角线矩阵。右端项列向量(列阵)也作相应的分解(3)将式(2)和式(3)代入方程(1),得到上三角方程组再按诸如高斯消元法的回代过程就可解出下面,通过编写一个完整的C语言程序求,完整的C语言程序代码如下:#include#include#include#defineN4voidCholesky(intn,doubleA[N][N],

2、doublex[N],doubleb[N]){inti,j,k;doubleL[N][N],D[N][N],b2[N];i=1;D[i-1][i-1]=A[i-1][i-1];for(i=2;i<=n;i++){j=1;L[i-1][j-1]=A[i-1][j-1]/D[j-1][j-1];if(j==i-1){D[i-1][i-1]=0;for(k=1;k<=i-1;k++)D[i-1][i-1]+=pow(L[i-1][k-1],2)*D[k-1][k-1];D[i-1][i-1]=A[i-1][i-1]-D[i-1][i-1];continue;}els

3、e{for(j=2;j<=i-1;j++){L[i-1][j-1]=0;for(k=1;k<=j-1;k++)L[i-1][j-1]+=L[i-1][k-1]*L[j-1][k-1]*D[k-1][k-1];L[i-1][j-1]=(A[i-1][j-1]-L[i-1][j-1])/D[j-1][j-1];if(j==i-1){D[i-1][i-1]=0;for(k=1;k<=i-1;k++)D[i-1][i-1]+=pow(L[i-1][k-1],2)*D[k-1][k-1];D[i-1][i-1]=A[i-1][i-1]-D[i-1][i-1];conti

4、nue;}}}}i=1;b2[i-1]=b[i-1]/D[i-1][i-1];for(i=2;i<=n;i++){b2[i-1]=0;for(k=1;k<=i-1;k++)b2[i-1]+=L[i-1][k-1]*D[k-1][k-1]*b2[k-1];b2[i-1]=(b[i-1]-b2[i-1])/D[i-1][i-1];}x[n-1]=b2[n-1];for(i=n-1;i>=1;i--){x[i-1]=0.0;for(k=i+1;k<=n;k++)x[i-1]+=L[k-1][i-1]*x[k-1];x[i-1]=b2[i-1]-x[i-1];}for

5、(i=0;i<=n-1;i++)printf("%f",x[i]);}voidmain(){doubleA[4][4]={{1,2,1,3},{2,3,-5,4},{1,-5,5,-1},{3,4,-1,7}};doublex[4]={0};doubleb[4]={12,16,18,20};Cholesky(4,A,x,b);}程序运行结果:

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

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

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