private Tuple <Vectors, double, double> HalfSolve(int len) { SqMatrix iD1 = D1.SubMatrix(len), iD2 = D2.SubMatrix(len), iS = S.SubMatrix(len); Vectors iR1 = R1.SubVector(len), iR2 = R2.SubVector(len); SqMatrix iD1m = D1m.SubMatrix(len), iD2m = D2m.SubMatrix(len), idl; Vectors idr; idl = (D2 - S * (D1m * S)).SubMatrix(len); idr = (R2 + S * D1m * R1).SubVector(len); Vectors id = idl.Solve(idr), icnew = (D1m * (R1 + S * id)).SubVector(len); Vectors res = Vectors.Union2(icnew, id); double p1 = IntegralClass.IntegralCurve((Point y) => (TestFuncAndCurve.Grads[GF - 1](y) * TestFuncAndCurve.Norm[CIRCLE - 1](y)).Sqr(), CIRCLE - 1); double p2 = IntegralClass.IntegralCurve((Point y) => (U(y)).Sqr(), CIRCLE - 1); Functional fif = (Point x) => { double s = 0; for (int i = 0; i < id.Deg; i++) { s += icnew[i] * alpha(x, i) + id[i] * beta(x, i); } return(Math.Abs(s - KursMethods.U(x))); }; double L = IntegralClass.Integral(fif, CIRCLE - 1); $"len = {len}, L = {this.F(res)}".Show(); return(new Tuple <Vectors, double, double>(res, F(res), L)); }