Повторные интегралы и порядок интегрирования

⏱ 45 мин · 🧩 заданий: 10

Простые области

Область D называется простой относительно оси Oy (или «вертикально простой»), если её можно описать так:

D = \{a \le x \le b, \;\; y_1(x) \le y \le y_2(x)\}.

Любая вертикальная прямая пересекает её не более чем по одному отрезку. Для такой области

\iint_D f\,dx\,dy = \int_a^b dx\int_{y_1(x)}^{y_2(x)}f(x, y)\,dy.

Внутренние пределы зависят от внешней переменной, внешние — константы. Аналогично для горизонтально простой области \{c \le y \le d, \; x_1(y) \le x \le x_2(y)\}:

\iint_D f\,dx\,dy = \int_c^d dy\int_{x_1(y)}^{x_2(y)}f(x, y)\,dx.

Сложные области разбивают на простые.

Как расставить пределы

  1. Нарисовать область, найти точки пересечения границ.
  2. Решить, какая переменная внешняя (скажем, x). Её пределы — крайние значения x во всей области.
  3. Провести вертикальную прямую при фиксированном x: где она входит в область — нижний предел y_1(x), где выходит — верхний y_2(x). Если нижняя или верхняя граница меняет формулу, область нужно разбить.

Пример. D ограничена y = x^2 и y = 2x. Пересечения: x = 0 и x = 2. Вертикальная прямая входит через параболу, выходит через прямую:

\iint_D f = \int_0^2dx\int_{x^2}^{2x}f\,dy = \int_0^4dy\int_{y/2}^{\sqrt y}f\,dx.
import numpy as np
import vis

x = np.linspace(0, 2, 200)
vis.area(x, {"y = x²": x**2, "y = 2x": 2 * x}, between=("y = x²", "y = 2x"), title="Область между y = x² и y = 2x", equal=True)

Смена порядка интегрирования

Иногда интеграл в одном порядке не берётся, а в другом — легко. Например, \int e^{y^2}dy не элементарен, но

\int_0^1\int_x^1e^{y^2}\,dy\,dx = \int_0^1\int_0^ye^{y^2}\,dx\,dy = \int_0^1ye^{y^2}dy = \frac{e - 1}{2}.

Алгоритм смены порядка:

  1. По пределам восстановить область: 0 \le x \le 1, x \le y \le 1 — треугольник с вершинами (0, 0), (0, 1), (1, 1).
  2. Нарисовать её.
  3. Описать её «по-другому»: 0 \le y \le 1, 0 \le x \le y.
import sympy as sp

x, y = sp.symbols("x y", positive=True)
print("в исходном порядке SymPy даёт:", sp.integrate(sp.exp(y**2), (y, x, 1), (x, 0, 1)))
print("после смены порядка:", sp.integrate(sp.exp(y**2), (x, 0, y), (y, 0, 1)))
print("∫∫ sin y / y:", sp.integrate(sp.sin(y) / y, (x, 0, y), (y, 0, sp.pi)))

В первом случае SymPy справился через специальную функцию erfi, а после смены порядка ответ получается элементарно.

Пример с разбиением

\int_0^1dx\int_0^{x}f\,dy + \int_1^2dx\int_0^{2-x}f\,dy — область под «крышей» из прямых y = x и y = 2 - x. В другом порядке это один интеграл:

\int_0^1dy\int_y^{2-y}f\,dx.

Итог

  • Простая область: внешние пределы — числа, внутренние — функции внешней переменной.
  • Пределы ставят по рисунку: вертикальная (горизонтальная) прямая входит в область по нижней границе и выходит по верхней.
  • Смена порядка: восстановить область по пределам, нарисовать, описать в другом порядке. Это может сделать интеграл вычислимым.

Практика решено 0 из 10

Вы не вошли — ответы проверяются, но прогресс не сохранится. Войти или зарегистрироваться.
Задание 1 Ввод формулы
\displaystyle\int_0^1\int_0^x y\,dy\,dx
Как вводить формулы Степень — ^ (x^2, e^(3x)), умножение можно не писать (2x, x sin(x)), дробь — / (1/(x+1)), корень — sqrt(x), модуль — |x| или abs(x). Функции: sin cos tg ctg arcsin arccos arctg arcctg sh ch ln lg exp, константы pi и e. Аргументы функций лучше брать в скобки: sin(2x). Для неопределённого интеграла допишите + C. Индексы пишутся слитно: m1, v0; греческие буквы — словом или символом: alpha или α. Десятичная дробь — через точку или запятую, большие числа — через 10^: 6,67*10^(-11).
Задание 2 Ввод формулы

\displaystyle\iint_D x\,dx\,dy, где D — треугольник с вершинами (0, 0), (1, 0), (1, 1).

Как вводить формулы Степень — ^ (x^2, e^(3x)), умножение можно не писать (2x, x sin(x)), дробь — / (1/(x+1)), корень — sqrt(x), модуль — |x| или abs(x). Функции: sin cos tg ctg arcsin arccos arctg arcctg sh ch ln lg exp, константы pi и e. Аргументы функций лучше брать в скобки: sin(2x). Для неопределённого интеграла допишите + C. Индексы пишутся слитно: m1, v0; греческие буквы — словом или символом: alpha или α. Десятичная дробь — через точку или запятую, большие числа — через 10^: 6,67*10^(-11).
Задание 3 Ввод формулы

Площадь области между y = x^2 и y = \sqrt{x} двойным интегралом.

Как вводить формулы Степень — ^ (x^2, e^(3x)), умножение можно не писать (2x, x sin(x)), дробь — / (1/(x+1)), корень — sqrt(x), модуль — |x| или abs(x). Функции: sin cos tg ctg arcsin arccos arctg arcctg sh ch ln lg exp, константы pi и e. Аргументы функций лучше брать в скобки: sin(2x). Для неопределённого интеграла допишите + C. Индексы пишутся слитно: m1, v0; греческие буквы — словом или символом: alpha или α. Десятичная дробь — через точку или запятую, большие числа — через 10^: 6,67*10^(-11).
Задание 4 Ввод формулы

\displaystyle\iint_D (x + y)\,dx\,dy, D: 0 \le x \le 1, x^2 \le y \le x.

Как вводить формулы Степень — ^ (x^2, e^(3x)), умножение можно не писать (2x, x sin(x)), дробь — / (1/(x+1)), корень — sqrt(x), модуль — |x| или abs(x). Функции: sin cos tg ctg arcsin arccos arctg arcctg sh ch ln lg exp, константы pi и e. Аргументы функций лучше брать в скобки: sin(2x). Для неопределённого интеграла допишите + C. Индексы пишутся слитно: m1, v0; греческие буквы — словом или символом: alpha или α. Десятичная дробь — через точку или запятую, большие числа — через 10^: 6,67*10^(-11).
Задание 5 Ввод формулы

\displaystyle\iint_D y\,dx\,dy, где D — верхняя половина единичного круга (x^2 + y^2 \le 1, y \ge 0).

Как вводить формулы Степень — ^ (x^2, e^(3x)), умножение можно не писать (2x, x sin(x)), дробь — / (1/(x+1)), корень — sqrt(x), модуль — |x| или abs(x). Функции: sin cos tg ctg arcsin arccos arctg arcctg sh ch ln lg exp, константы pi и e. Аргументы функций лучше брать в скобки: sin(2x). Для неопределённого интеграла допишите + C. Индексы пишутся слитно: m1, v0; греческие буквы — словом или символом: alpha или α. Десятичная дробь — через точку или запятую, большие числа — через 10^: 6,67*10^(-11).
Задание 6 Ввод формулы

Поменяйте порядок и вычислите: \displaystyle\int_0^1\int_x^1 e^{y^2}\,dy\,dx.

Как вводить формулы Степень — ^ (x^2, e^(3x)), умножение можно не писать (2x, x sin(x)), дробь — / (1/(x+1)), корень — sqrt(x), модуль — |x| или abs(x). Функции: sin cos tg ctg arcsin arccos arctg arcctg sh ch ln lg exp, константы pi и e. Аргументы функций лучше брать в скобки: sin(2x). Для неопределённого интеграла допишите + C. Индексы пишутся слитно: m1, v0; греческие буквы — словом или символом: alpha или α. Десятичная дробь — через точку или запятую, большие числа — через 10^: 6,67*10^(-11).
Задание 7 Ввод формулы

Поменяйте порядок и вычислите: \displaystyle\int_0^{\pi}\int_x^{\pi} \frac{\sin y}{y}\,dy\,dx.

Как вводить формулы Степень — ^ (x^2, e^(3x)), умножение можно не писать (2x, x sin(x)), дробь — / (1/(x+1)), корень — sqrt(x), модуль — |x| или abs(x). Функции: sin cos tg ctg arcsin arccos arctg arcctg sh ch ln lg exp, константы pi и e. Аргументы функций лучше брать в скобки: sin(2x). Для неопределённого интеграла допишите + C. Индексы пишутся слитно: m1, v0; греческие буквы — словом или символом: alpha или α. Десятичная дробь — через точку или запятую, большие числа — через 10^: 6,67*10^(-11).
Задание 8 Ввод формулы

Поменяйте порядок: \displaystyle\int_0^4\int_{\sqrt{x}}^{2} \frac{dy\,dx}{1 + y^3}.

Как вводить формулы Степень — ^ (x^2, e^(3x)), умножение можно не писать (2x, x sin(x)), дробь — / (1/(x+1)), корень — sqrt(x), модуль — |x| или abs(x). Функции: sin cos tg ctg arcsin arccos arctg arcctg sh ch ln lg exp, константы pi и e. Аргументы функций лучше брать в скобки: sin(2x). Для неопределённого интеграла допишите + C. Индексы пишутся слитно: m1, v0; греческие буквы — словом или символом: alpha или α. Десятичная дробь — через точку или запятую, большие числа — через 10^: 6,67*10^(-11).
Задание 9 Один вариант ответа

В интеграле \int_0^1\int_{x^2}^{x} f\,dy\,dx поменяли порядок. Какие пределы правильные?

Задание 10 Программа на Python

Двойной интеграл численно. Напишите функцию double_integral(f, a, b, lo, hi, n=200): она вычисляет \int_a^b\int_{lo(x)}^{hi(x)}f(x, y)\,dy\,dx средними прямоугольниками: n частей по x и для каждого x — n частей по y на отрезке [lo(x); hi(x)].

Какие тесты проверяют код (1)
import math
assert abs(double_integral(lambda x, y: 1, 0, 2, lambda x: 0, lambda x: 3) - 6) < 1e-9
assert abs(double_integral(lambda x, y: x, 0, 1, lambda x: 0, lambda x: x) - 1 / 3) < 1e-4
half_disk = double_integral(lambda x, y: 1, -1, 1, lambda x: 0, lambda x: math.sqrt(1 - x * x), 300)
assert abs(half_disk - math.pi / 2) < 1e-3, "Площадь полукруга"

Войдите, чтобы отмечать пройденные уроки.