示例#1
0
 /// <summary>
 /// Получение обратной матрицы
 /// </summary>
 public DObject Invert()
 {
     if (sx != sy) return null;
     DObject ret = new DObject(sx, sy);
     for (int i = 0; i < sx; i++)
     {
         DObject dmx = new DObject(sx + 1, sy);
         for (int i0 = 0; i0 < sy; i0++)
         {
             for (int j0 = 0; j0 < sx; j0++) dmx.set(j0, i0, get(j0, i0));
             dmx.set(sx, i0, (i == i0 ? 1 : 0));
         }
         DObject res = dmx.SLAU();
         for (int j = 0; j < sy; j++) ret.set(i, j, res.get(j, 0));
     }
     return ret;
 }