int
Определенные и неопределенные интегралы
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
Для неопределенного интегрирования в MATLAB® смотрите, что int
Symbolic Math Toolbox™ функционирует. Для численного интегрирования смотрите, что integral
функционирует.
int(f
,x
) int(f
,x = a .. b
,options
)
int(f, x)
вычисляет неопределенный интеграл.
int(f, x = a..b)
вычисляет определенный интеграл.
int(f, x)
определяет функциональный F, таким образом что. Функциональный F (x) называется антипроизводной f (x). Результаты, возвращенные int
, не включают константы интегрирования.
Для неопределенных интегралов int
неявно принимает, что переменная интегрирования x
действительна. Для определенных интегралов int
ограничивает переменную интегрирования x
заданным интервалом интегрирования [a, b]
типа Type::Interval
. Если один или и границы интегрирования a
и b
не являются числовыми, int
принимает, что a <= b
, если вы явным образом не задаете в противном случае. По умолчанию int
не делает предупреждений о проблемах об этих предположениях. Чтобы вывести предупреждения об использовании неявных предположений, установите значение intlib::printWarnings
к TRUE
.
В целом результат int
не требуется, чтобы быть допустимым для всех комплексных чисел x
. Например, идентичность только допустима для действительных значений x. Поэтому также допустимо только для действительных значений x.
Можно задать собственные предположения о переменной интегрирования. Если эти предположения не конфликтуют с предположением по умолчанию, что переменная действительна или с интервалом интегрирования, то MuPAD® использует ваши предположения. В противном случае функция int
выдает предупреждение и изменяет предположения. Используйте intlib::printWarnings
, чтобы включить или отключить предупреждения.
Если вы вычисляете неопределенный интеграл и задаете свойства переменной интегрирования, которые описывают подмножество вещественных чисел, MuPAD принимает, что переменная действительна. В противном случае система использует временное предположение, что переменная интегрирования является комплексной. Это предположение содержит только во время этого конкретного интегрирования.
Если вы вычисляете определенный интеграл и задаете свойства, которые конфликтуют с интервалом интегрирования, int
использует интервал интегрирования.
int
может возвратить результаты с разрывами, даже если подынтегральное выражение непрерывно.
Методы интегрирования, такие как поиск по таблице или интегрирование Риша для неопределенного интеграла, могут добавить новые разрывы во время процесса интеграции. Эти новые разрывы появляются, потому что антипроизводные могут потребовать введения комплексных логарифмов. Комплексные логарифмы имеют разрыв скачка, когда аргумент пересекает отрицательную вещественную ось, и алгоритмы интегрирования иногда не могут находить представление, где эти скачки отменяют.
Если вы вычисляете определенный интеграл первым вычислением неопределенного интеграла и затем заменой контурами интегрирования в результат, помните, что неопределенное интегрирование может произвести разрывы. Если это делает, необходимо исследовать разрывы в интервале интегрирования.
Если MuPAD не может найти решение закрытой формы для интеграла и не может доказать, что такая форма не существует, это возвращает неразрешенный интеграл. В этом случае можно аппроксимировать интеграл численно или попытаться вычислить последовательное расширение интеграла. Смотрите Пример 2 и Пример 3.
Можно аппроксимировать определенный интеграл численно с помощью numeric::int
или float
. Числовое приближение определенного интеграла только работает, когда функция float
может преобразовать контуры a
и b
интервала интегрирования к числам с плавающей запятой. Смотрите Пример 2.
int
не может найти закрытую форму определенного интеграла из-за особенностей подынтегрального выражения в интервале интегрирования. Если интеграл не существует в строгом математическом смысле, int
возвращает значение undefined
. В этом случае попытайтесь использовать предположения. Также используйте опцию PrincipalValue
, чтобы вычислить более слабую форму определенного интеграла, названного Главным значением Коши. Эта форма интеграла может существовать даже при том, что стандартное интегральное значение не определено. Смотрите Пример 6.
В целом производная результата совпадает с f на плотном подмножестве вещественных чисел (или, если вы используете предположения на переменной интегрирования, подмножестве вещественных чисел, заданных этими предположениями).
Не всегда возможно решить алгоритмически, если и f эквивалентны. Причиной является так называемая нулевая эквивалентная проблема, которая в целом неразрешима.
int
чувствителен к свойствам идентификаторов, установленных assume
. Смотрите Пример 6.
Вычислите неопределенные интегралы и:
int(1/x/ln(x), x)
int(1/(x^2 - 8), x)
Вычислите определенный интеграл на интервале [e, e 2]:
int(1/x/ln(x), x = exp(1)..exp(2))
При вычислении определенных интегралов можно использовать бесконечности в качестве контуров интервала интегрирования:
int(exp(-x^2), x = 0..infinity)
Можно вычислить кратные интегралы. Например, вычислите следующий определенный кратный интеграл:
int(int(int(1, z = 0..c*(1 - x/a - y/b)), y = 0..b*(1 - x/a)), x = 0..a)
Используйте int
, чтобы вычислить этот определенный интеграл. Поскольку int
не может найти закрытую форму этого интеграла, он возвращает неразрешенный интеграл:
S := int(sin(cos(x)), x = 0..1)
Используйте функцию float
, чтобы аппроксимировать интеграл численно:
float(S)
Также используйте функцию numeric::int
, которая быстрее, потому что она не включает символьной предварительной обработки:
numeric::int(sin(cos(x)), x = 0..1)
Используйте int
, чтобы вычислить этот неопределенный интеграл. Поскольку int
не может найти закрытую форму этого интеграла, он возвращает неразрешенный интеграл:
int((x^2 + 1)/sqrt(sqrt(x + 1) + 1), x)
Используйте функцию series
, чтобы вычислить последовательное расширение интеграла:
series(%, x = 0)
Также вычислите последовательное расширение подынтегрального выражения, и затем интегрируйте результат. Этот подход быстрее, потому что он не пытается интегрировать исходное выражение. Это интегрирует приближение (последовательное расширение) исходного выражения:
int(series((x^2 + 1)/sqrt(sqrt(x + 1) + 1), x = 0), x)
Опция IgnoreAnalyticConstraints
применяет набор чисто алгебраических упрощений включая равенство суммы логарифмов и логарифма продукта. Используя эту опцию, вы получаете более простой результат, но тот, который может быть неправильным для некоторых значений переменных:
int(ln(x) + ln(y) - ln(x*y), x, IgnoreAnalyticConstraints)
Не используя эту опцию, вы получаете следующий результат, который допустим для всех значений параметров:
int(ln(x) + ln(y) - ln(x*y), x)
Результаты, полученные с IgnoreAnalyticConstraints
, могут быть не обычно допустимыми:
f := int(ln(x) + ln(y) - ln(x*y), x): g := int(ln(x) + ln(y) - ln(x*y), x, IgnoreAnalyticConstraints): simplify([f, g]) assuming x = -1 and y = -1
По умолчанию int
возвращает этот интеграл как кусочный объект, где каждое ответвление соответствует особому значению (или область значений значений) символьного параметра t
:
int(x^t, x)
Чтобы игнорировать особые регистры значений параметров, используйте IgnoreSpecialCases
:
int(x^t, x, IgnoreSpecialCases)
Вычислите этот определенный интеграл, где подынтегральное выражение имеет полюс во внутренней части интервала интегрирования. Математически, этот интеграл не задан:
int(1/(x - 1), x = 0..2)
Однако Главное значение Коши интеграла существует. Используйте опцию PrincipalValue
, чтобы вычислить Главное значение Коши интеграла:
hold(int)(1/(x - 1), x = 0..2, PrincipalValue) = int( 1/(x - 1), x = 0..2, PrincipalValue)
Для подынтегральных выражений с параметрами int
может не мочь решить, имеет ли подынтегральное выражение полюса в интервале интегрирования. В этом случае int
возвращает кусочно заданную функцию или неразрешенный интеграл:
int(1/(x - a), x = 0..2)
int
не вызывает функции упрощения для своих результатов. Чтобы упростить результаты, возвращенные int
, используйте eval
, simplify
или Simplify
:
Simplify(eval(%))
Получившееся кусочное выражение имеет только одно ответвление. Если параметром, a
не удовлетворяет это условие, интеграл, является undefined
.
|
Подынтегральное выражение: арифметическое выражение, представляющее функцию в |
|
Переменная интегрирования: идентификатор |
|
Контуры: арифметические выражения |
|
Когда вы используете эту опцию,
Используя эту опцию, можно получить простые решения для некоторых интегралов, для которых прямой вызов интегратора возвращает сложные результаты. При использовании этой опции интегратор не проверяет правильность и полноту результата. Смотрите Пример 4. |
|
Если интегрирование требует анализа случая, игнорируйте регистры, которые требуют, чтобы один или несколько параметров были элементами сравнительно маленького набора, такими как фиксированное конечное множество или набор целых чисел. При использовании этой опции Например, если механизм свойства не может доказать, что знаменатель равен нулю, MuPAD рассматривает этот знаменатель как ненулевой. Эта опция может значительно сократить количество кусочных объектов в результате. Смотрите пример 5. |
|
Вычислите Главное значение Коши интеграла. Если внутренняя часть интервала интегрирования содержит полюса подынтегрального выражения, или контурами является a = - ∞ и b = ∞, то определенный интеграл не может существовать в строгом математическом смысле. Однако, если подынтегральное выражение изменяет знак во всех полюсах в интервале интегрирования, можно вычислить более слабую форму определенного интеграла, названного Главным значением Коши. В этой форме так называемые бесконечные части интеграла налево и справа от полюса отменяют друг друга. Когда вы используете опцию |
f
[1] Бронштайн, M. “Объединение расширения Liouvillian”. AAECC применимая алгебра в разработке, коммуникации и вычислении. 1: 5–24, 1990.
[2] Бронштайн, M. “Трансцендентальное дифференциальное уравнение Риша”. Журнал символьного вычисления. 9: 49–60, 1990.
[3] Бронштайн, M. “Символьное интегрирование I: трансцендентные функции”. Спрингер. 1997.
[4] Эпштейн, H. I. и Б. Ф. Кэвинесс. “Теорема Структуры для Элементарных функций и ее Приложения к Единичной проблеме”. Международный журнал Информатики и вычислительной техники. 8: 9–37, 1979.
[5] Fakler, W. “Vereinfachen von komplexen Integralen reeller Funktionen” . № 1 mathPAD 9: 5-9, 1999.
[6] Геддес, K. O. С. Р. Кзэпор и Г. Лэбэн. “Алгоритмы для компьютерной алгебры”. 1992.