新增一个LU分解

 void Matrix::LU(vector<vector<double>> &l,vector<vector<double>> &u)
 {
     int index=0;
     for(auto &r:l)
     {
         r[index++]=1;
     }

     for(auto v:mat)
       u.push_back(v);

     double d=0.0;
     for(int k=0;k<rowSize-1;++k)
     {
         for(int i=k+1;i<=rowSize-1;++i)
         {
           l[i][k]=u[i][k]/u[k][k];
           for(int j=k;j<=colSize-1;++j)
             {
                 u[i][j]=u[i][j]-l[i][k]*u[k][j];
                 if(fabs(u[i][j])<1e-10)
                  u[i][j]=0;
                 
             }

         }
     }
 }

你可能感兴趣的:(新增一个LU分解)