aar_plu.c

来自「一些矩阵运算的C代码实现:矩阵一般运算」· C语言 代码 · 共 73 行

C
73
字号
/*         .h         freeware           http://groups.yahoo.com/group/mathc/ */

/* --------------------------------- INCLUDES ------------------------------- */
#include "v_ahfile.h"
/* --------------------------------- MAIN ----------------------------------- */
int main(void)
{
double pba[5][5]=
{
     0,          0,          3,          3,          3,
     0,          1,          3,          3,          1,
    -2,          1,         -2,         -2,         -2,
    -2,          3,          3,          1,          1,
     3,          3,         -2,          1,          3,
};
mR mA={5,5,&pba[0][0]};

double pbP[MXR][MXC];mR mP={MXR,MXC,&pbP[0][0]};
double pbL[MXR][MXC];mR mL={MXR,MXC,&pbL[0][0]};
double pbU[MXR][MXC];mR mU={MXR,MXC,&pbU[0][0]};
double pbT[MXR][MXC];mR mT={MXR,MXC,&pbT[0][0]};

double pinvP   [MXR][MXR]; mR minvP   ={MXR,MXR,&pinvP   [0][0]};
double pinvP_LU[MXR][MXR]; mR minvP_LU={MXR,MXR,&pinvP_LU[0][0]};

                     mP.rows=5;      mP.cols=5;
                     mL.rows=5;      mL.cols=5;
                     mU.rows=5;      mU.cols=5;
                     mT.rows=5;      mT.cols=5;

                  minvP.rows=5;   minvP.cols=5;
               minvP_LU.rows=5;minvP_LU.cols=5;
/*-------------------------------- PROGRAM ---------------------------------- */
  clrscrn();
  printf("                                                       A :");
  p_mR(&mA);
  PLU_mR(&mA,&mP,&mL,&mU);
  printf("                                                       P :");
  p_mR(&mP);
  printf("                                                       L :");
  p_mR(&mL);
  printf("                                                       U :");
  p_mR(&mU);
  getchar();

  clrscrn();
  printf("                                                 PA = LU :\n\n");
  printf("                                                      LU :");
  mul_mR(&mL,&mU,&mT);
  p_mR(&mT);
  printf("                                                      PA :");
  mul_mR(&mP,&mA,&mT);
  p_mR(&mT);
  getchar();

  clrscrn();
  printf("                                             A = invP_LU :\n\n");
  printf("                                                       A :");
  p_mR(&mA);
  printf("                                                 invP_LU :");
  inverse_mR(&mP,&minvP);
  mul_mR(&mL,&mU,&mT);
  mul_mR(&minvP, &mT,&minvP_LU);
  p_mR(&minvP_LU);
   printf("\n Press return to continue");
   getchar();

 return 0;
}



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?