protected double h, k; //переменные для хванения шагов по сетке public IterativeMethod(fxy _Fxy, fxy _Uxy, Rect _rect, int _n, int _m) //конструктор, в котором задаются необходимые исходные данные, //выделается память под массивы, вычисляются значения функции f в узлах сетки и ГУ в узлах { n = _n; m = _m; Fxy = _Fxy; Uxy = _Uxy; rect = _rect; h = (rect.b - rect.a) / n; k = (rect.d - rect.c) / m; f = new double[n + 1, m + 1]; v = new double[n + 1, m + 1]; for (int i = 0; i < n + 1; i++) //вычисление значений функции f { for (int j = 0; j < m + 1; j++) { f[i, j] = Fxy.val(rect.a + i * h, rect.c + j * k); v[i, j] = 0; } } for (int j = 0; j <= m; j++) //вычисление ГУ { v[0, j] = Uxy.val(rect.a, rect.c + j * k); v[n, j] = Uxy.val(rect.b, rect.c + j * k); } for (int i = 0; i <= n; i++) //вычисление ГУ { v[i, 0] = Uxy.val(rect.a + i * h, rect.c); v[i, m] = Uxy.val(rect.a + i * h, rect.d); } }
public MinimalDiscrepancyMethod2(fxy _Fxy, fxy _Uxy, Rect _rect, Rect _rect_2, int _n, int _m) : base(_Fxy, _Uxy, _rect, _n, _m) { rect2 = _rect_2; }
public SOR(fxy _Fxy, fxy _Uxy, Rect _rect, int _n, int _m, double _w) : base(_Fxy, _Uxy, _rect, _n, _m) { w = _w; //омега, параметр метода МВР }
public JacobiMethod(fxy _Fxy, fxy _Uxy, Rect _rect, int _n, int _m) : base(_Fxy, _Uxy, _rect, _n, _m) { }
public SeidelMethod(fxy _Fxy, fxy _Uxy, Rect _rect, int _n, int _m) : base(_Fxy, _Uxy, _rect, _n, _m) { }
public MinimalDiscrepancyMethod(fxy _Fxy, fxy _Uxy, Rect _rect, int _n, int _m) : base(_Fxy, _Uxy, _rect, _n, _m) { }