ДЗ 4. Вычисление определенного интеграла
Дедлайн
Мягкий дедлайн - 29 сентября в 21-00
Жесткий дедлайн - 06 октября в 21-00
Как сдать
Реализуйте нужные классы. Запустите у себя на компьютере тесты. Для этого откройте консоль и выполните команду
./gradlew test
Если тесты прошли успешно - вы увидите надпись BUILD SUCCESSFUL
, если же вы увидите надпись BUILD FAILED
, то найдите в сообщении в терминале название теста и посмотрите этот тест в директории src/test/groovy/
После этого отправьте свое решение в ветку main. Призовите меня (ivanetc) в комментариях, где, пожалуйста, напишите “Cдаю задачи 1, 2, 3 … n”. Убедитесь, что тесты проходят локально.
Вычисление определенного интеграла
Формула Ньютона-Лейбница - это фундаментальная формула в математическом анализе, которая позволяет вычислить определенный интеграл функции. Она утверждает, что интеграл функции f(x) на отрезке [a, b] равен первообразной F(x) функции f(x), вычисленной в точке b и вычтенной из нее первообразной, вычисленной в точке a.
Формула записывается следующим образом:
∫_a^b f(x) dx = F(b) - F(a),
где F’(x) = f(x).
Давайте, используя наши знания о наследовании и об интерфейсах, реализуем простейший способ вычисления определенного интеграла
Давайте создадим интерфейс MathFunction. Определим в нем следующие методы:
- Определим в нем метод для получения имения функции (getName)
- Определим в нем метод toString (который делает красивую строчку в духе
y = 5 * x^2
) - Определим в нем метод getY, в который передаем x и ожидаем получить значение функции в переданной точке
- Определим в нем метод getPrimitive, в который передаем x и ожидаем получить значение первообразной функции в переданной точке
Далее давайте реализуем классы:
- QuadraticFunction (
y = bx^2 + c
, в конструктор передадим b и c) - CubicFunction (
y = bx^3 + c
, в конструктор передадим b и c) - SinFunction (
y = sin(bx)
, в конструктор передадим b) - CosFunction (
y = cos(bx)
, в конструктор передадим b) Пусть они наследуют интерфейс Function и реализуют необходимые методы. (b, c - int)
Далее давайте создадим класс NewtonLeibnizIntegral, в котором определим одну функцию:
- calcIntegral, в который передадим функцию, нижний и верхний предел интегрирования, а в результате получим значение вычисленного интеграла