Записки научных семинаров Тульской школы теории чисел. Вып. 1. 2022 г.

Программная реализация квадратурных формул... 13 Применяя к функции 2 , получаем периодизированную по одной переменной квадратур- ную формулу: 1 ∫︁ 0 1 ∫︁ 0 1 ( , ) = 1 2 1 ∫︁ 0 2 ∫︁ 0 2 ( , ) = 1 − 1 ∑︁ =0 2 (︂{︂ · }︂ , 2 )︂ + 2 ( 2 ) = = 1 ⎛ ⎜⎝ [ 2 ] ∑︁ =0 1 (︂{︂ · }︂ , 2 )︂ + − 1 ∑︁ = [ 2 ] +1 1 (︂{︂ · }︂ , 2 − 2 )︂ ⎞ ⎟⎠ + 2 ( 2 ) . (3) Эта периодизация реализована в классе PeriodisedIntegration2D . public class PeriodisedIntegration2D { private readonly IGrid _grid; private readonly long _p; private readonly long _p2; public PeriodisedIntegration2D(IGrid grid) { _grid = grid; _p = grid.PointsCount; _p2 = _p / 2 + 1; } public decimal Integrate(Func<decimal, decimal, decimal> f) { return Integrate(xs => f(xs[0], xs[1])); } public decimal Integrate(Func<decimal[], decimal> f) { decimal res = 0; long i = 0; foreach (var bi in _grid.Points) { bi[1] = i++ < _p2 ? bi[1] : 2m - bi[1]; res += f(bi); } res /= _p; return res; } } Algorithm 2: класс PeriodisedIntegration2D В качестве тестового применения вычислены интегралы ( , ) ∈ { (10 , 7) , (11 , 8) , . . . . . . , (20 , 17) } :

RkJQdWJsaXNoZXIy ODQ5NTQ=