对阵正定矩阵的楚列斯基(Cholesky)分解(C语言)

原创 2012年03月30日 18:46:31

//定理2.2.3:对阵正定矩阵的楚列斯基(Cholesky)分解
//设A为n阶对阵正定矩阵,则存在一个可逆的下三角矩阵G,使得
//A=GG’,当限定G的对角元为正时,这种分解是唯一的
//
//--------A=GG’的分解算法-------
//参考教材:《数值分析》李乃成,梅立泉,科学出版社
//    《计算方法教程》第二版 凌永祥,陈明逵
#include<stdio.h>
#include<math.h>

int min(int a,int b);
int main(void)
{
 int size=10;
 int i,j,p=0;
 double A[10][10] = {0.0};
 double sum,up=0.0;
 printf("矩阵A[10][10]:\n");
 for(i=0;i<size;i++)
 {
  for(j=0;j<size;j++)
  {
   if(i==j)
    A[i][i]=i+1;
   else
    A[i][j]=min(i,j)-1;
   printf("%5.4f ",A[i][j]);
  }
  printf("\n");
 }
 A[0][0]=sqrt(A[0][0]);
 for(i=1;i<size;i++)
 {
  A[i][0]=A[i][0]/A[0][0];
 }
 for(j=1;i<size-1;i++)
 {
  sum=0.0;
  for(p=0;p<=j-1;p++)
  {
   sum=sum+A[j][p]*A[j][p];
  }
  A[j][j]=sqrt(A[j][j]-sum);
  for(i=j+1;j<size;j++)
  {
   sum=0.0;
   for(p=0;p<=j-1;p++)
   {
    sum=sum+A[i][p]*A[j][p];
   }
   A[i][j]=(A[i][j]-sum)/A[j][j];
  }

 }
 printf("\nCholesky分解后的矩阵G[10][10]:\n");
 for(i=0;i<size;i++)
 {
  for(j=0;j<size;j++)
  {
   if(i<j)
   {
    printf("%5.4f ",up);
   }
   else
   {
    printf("%5.4f ",A[i][j]);
   }
   
  }
  printf("\n");
 }

 return 0;
}

int min(int a,int b)
{
 return a<b?a:b;
}

楚列斯基分解(数值计算)

  • 2010年11月05日 21:12
  • 11KB
  • 下载

newmat乔里斯基分解

乔里斯基(cholesky)分解是将一个正定的厄米特(hermite)矩阵分解为一个下三角矩阵和它的共轭转置矩阵。 厄米特矩阵(共轭矩阵),矩阵对称的两个数字互相共轭。实数的共轭是自己本身,复数的共...
  • justfory
  • justfory
  • 2015年11月12日 21:40
  • 950

矩阵分解大全matlab

http://blog.sina.com.cn/s/blog_6da2b94d0101j7i9.html
  • searching555
  • searching555
  • 2015年02月10日 17:34
  • 128

Cholesky分解法

Cholesky分解法又叫平方根法,是求解对称正定线性方程组最常用的方法之一。对于一般矩阵,为了消除LU分 解的局限性和误差的过分积累,采用了选主元的方法,但对于对称正定矩阵而言,选主元是不必要的。 ...
  • ACdreamers
  • ACdreamers
  • 2015年03月26日 21:58
  • 21848

c语言实现cholesky分解

/* file: cholesky.c */ /* Take the cholesky decomposition in the manner described in FA Graybil...
  • renccnuc
  • renccnuc
  • 2013年08月22日 20:28
  • 721

cholesky分解C程序

  • 2013年03月23日 20:13
  • 1KB
  • 下载

LU分解、LDLT分解和Cholesky分解

LU分解 概念:假定我们能把矩阵A写成下列两个矩阵相乘的形式:A=LU,其中L为下三角矩阵,U为上三角矩阵。这样我们可以把线性方程组Ax= b写成 Ax= (LU)x = L(Ux) = b。令Ux ...
  • zhouliyang1990
  • zhouliyang1990
  • 2014年03月24日 13:57
  • 9063

矩阵分解——三角分解(Cholesky 分解)

(1)一个对角元素都是1的下三角矩阵,称为单位下三角矩阵。 (2)上(下)三角矩阵的乘积仍是上(下)三角矩阵; (3)一般来说,矩阵的三角分解不唯一。 (4)实对称正定矩阵 AA,Δk>0\Delta...
  • lanchunhui
  • lanchunhui
  • 2016年03月14日 22:06
  • 4058

基于Cholesky分解的正定矩阵求逆矩阵

在前面的博客中我提到了如何实现正定矩阵的Cholesky分解,并提供了源代码,通过该代码可以将一个正定矩阵分解为一个上三角矩阵和其转置的乘积,在此基础上,对上三角矩阵进行求逆是十分简单的运算,在得到其...
  • cao478208248
  • cao478208248
  • 2014年06月12日 21:49
  • 2625

Cholesky Decomposition (Cholesky分解)

简介   Cholesky分解是一种分解矩阵的方法, 在线形代数中有重要的应用。Cholesky分解把矩阵分解为一个下三角矩阵以及它的共轭转置矩阵的乘积(那实数界来类比的话,此分解就好像求平方根)。与...
  • wangxiaojun911
  • wangxiaojun911
  • 2011年12月01日 14:42
  • 33136
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对阵正定矩阵的楚列斯基(Cholesky)分解(C语言)
举报原因:
原因补充:

(最多只允许输入30个字)