如何把一个二维数组转化为上三角矩阵和下三角矩阵

来源:百度知道 编辑:UC知道 时间:2024/09/22 12:50:55

我想,你是要LU(上三角矩阵和下三角矩阵)方法解线性方程组吧。程序如下:

#include <math.h>
#define N_limit 100
void main()
{
int i,j,m,n;
double TM=0,TMm=0,TN=0,TNn=0;
int NN = 4;
double L[4][4]= {{1,0,0,0}, {0,1,0,0}, {0,0,1,0},{0,0,0,1}, };

// M coef 4x4, N const 4x1
double M[4][4]={4,-1,0,2,-1,4,-1,0,0,-1,4,-1,2,0,-1,4};
double N[4][1]={-1,-7,9,0};

// get L and D of M, L in L and D at up of M
for(i=1;i<NN;i++) {
for(j=0;j<i;j++) {
for(m=0;m<j;m++) {
TM=M[i][m] * L[j][m] + TMm;
TMm=TM;
TM=0;
};
M[i][j]=M[i][j]-TMm;
TMm=0;
L[i][j]=M[i][j]/M[j][j];
};
for(n=0;n<i;n++) {
TN=M[i][n]*L[i][n]+TNn;
TNn=TN;
TN=0;
}
M[i][i]=M[i][i]-TNn;
TNn=0;
};

// solve
for(i=0;i<NN;i++) {
f