{ for(m=0; m //计算Ux =y,讲结果存入y(即存入arr[k][n]); for(k=n-1; k>=0; k--) { if(k==n-1) arr[k][n] /= arr[k][k]; else { ProcData = 0; for(m=k+1; m<=n-1; m++) ProcData += arr[k][m]*arr[m][n]; arr[k][n] -= ProcData; arr[k][n] /= arr[k][k]; } } //将计算结果存入x数组 for(j=0; j //释放arr[n][n+1] for(i=0; i return true; } } Main.cpp #include void main() { int i, j; /*double A[3][3] = { 3, 2, 3, 2, 2, 0, 3, 0, 12 }; double b[3] = {5, 3, 7}; double x[3] = {0}; */ double A[5][5] = { 6, 1, 2, 4, 1, 1, 7, 2, 3, 5, 2, 2, 9, 6, 2, 4, 3, 6, 8, 5, 1, 5, 2, 5, 10 }; double b[5] = {5, 7, 3, 3, 4}; double x[5] = {0}; if(Cholesky_Run(A[0], b, x, 5)) } { double result[5] ; printf(\ printf(\ for(i=0; i<5; i++) { result[i]=0; for(j=0; j<5; j++) { result[i] += A[i][j]*x[j]; } printf(\ result = %7.f\\n\ } printf(\} else { printf(\请修改您的系数矩阵为对称正定矩阵!\\n\} ——柴门野雪
相关推荐: