public decimal[] CalculatePochidnaG0() { var res = new decimal[2 * Parameters.M]; for (var j = 0; j < 2 * Parameters.M; j++) { decimal sum1 = 0; decimal sum2 = 0; var dod1 = (-destiny[j]) / (2M * Normal.GetModul(new[] { Parametrization_ND.X01d(t[j]), Parametrization_ND.X02d(t[j]) })); //Normal.GetModul(t[j], Parametrization_ND.X01d, Parametrization_ND.X02d)); for (var k = 0; k < 2 * Parameters.M; k++) { sum1 += (destiny[k] * Kernels_DN.A1(t[j], t[k])); sum2 += (destiny[k + 2 * Parameters.M] * Kernels_DN.A2(t[j], t[k])); } //res[j] = dod1 + (sum1 + sum2) / (2M * Parameters.M); res[j] = (sum1 + sum2) / (2M * Parameters.M); } return(res); }
private void InitMatrix() { matrixA = new decimal[4 * Parameters.M, 4 * Parameters.M]; for (int i = 0; i < 4 * Parameters.M; i++) { for (int j = 0; j < 4 * Parameters.M; j++) { if (i < 2 * Parameters.M) { if (j < 2 * Parameters.M) { matrixA[i, j] = Kernels_DN.H01(t[i], t[j]) / (2 * Parameters.M) - Normal.R(t[j], t[i]) / 2M; } else { matrixA[i, j] = Kernels_DN.H02(t[i], t[j - 2 * Parameters.M]) / (2 * Parameters.M); } } else { if (j < 2 * Parameters.M) { matrixA[i, j] = Kernels_DN.K11(t[i - 2 * Parameters.M], t[j]) / (2 * Parameters.M); } else { if (i == j) { matrixA[i, j] = Kernels_DN.K21(t[i - 2 * Parameters.M], t[j - 2 * Parameters.M]) / (2 * Parameters.M) + GetDod1(j - 2 * Parameters.M); } else { matrixA[i, j] = Kernels_DN.K21(t[i - 2 * Parameters.M], t[j - 2 * Parameters.M]) / (2 * Parameters.M); } } } } } }
public decimal[] CalculateUG1() { var res = new decimal[2 * Parameters.M]; for (int j = 0; j < 2 * Parameters.M; j++) { decimal sum1 = 0; decimal sum2 = 0; for (int k = 0; k < 2 * Parameters.M; k++) { sum1 += destiny[k] * ( (Kernels_DN.A1_2(t[j], t[k]) / (2M * Parameters.M) - Normal.R(t[k], t[j]) / (2M))); sum2 += destiny[k + 2 * Parameters.M] * Kernels_DN.A2_2(t[j], t[k]); } res[j] = (sum1 + sum2 / (2M * Parameters.M)); } return(res); }