/// <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; }