int

Определенные и неопределенные интегралы

Синтаксис

int(expr,var)
int(expr,var,a,b)
int(___,Name,Value)

Описание

пример

int(expr,var) вычисляет неопределенный интеграл expr относительно символьной скалярной переменной var. Определение переменной var является дополнительным. Если вы не задаете его, int использует переменную по умолчанию, определенную symvar. Если expr является константой, то переменной по умолчанию является x.

пример

int(expr,var,a,b) вычисляет определенный интеграл expr относительно var от a до b. Если вы не задаете его, int использует переменную по умолчанию, определенную symvar. Если expr является константой, то переменной по умолчанию является x.

int(expr,var,[a b]) эквивалентен int(expr,var,a,b).

пример

int(___,Name,Value) задает дополнительные опции с помощью одного или нескольких аргументов пары Name,Value. Например, 'IgnoreAnalyticConstraints',true указывает, что int применяет дополнительные упрощения в подынтегральном выражении.

Примеры

свернуть все

Найдите неопределенный интеграл этого одномерного выражения.

syms x
f = -2*x/(1+x^2)^2;
int(f)
ans =
1/(x^2 + 1)

Найдите неопределенные интегралы этого многомерного выражения относительно переменных x и z.

syms x z
f = x/(1+z^2);
int(f,x)
int(f,z)
ans =
x^2/(2*(z^2 + 1))
 
ans =
x*atan(z)

Если вы не задаете переменную интегрирования, int использует переменную, возвращенную symvar. Для этого выражения symvar возвращает x.

symvar(f, 1)
ans =
x

Интегрируйте выражение от 0 до 1.

syms x
f = x*log(1+x);
int(f,[0 1])
ans =
1/4

Интегрируйте выражение от sin(t) до 1.

syms t
int(2*x, [sin(t) 1])
ans =
cos(t)^2

Когда int не сможет вычислить определенный интеграл, численно аппроксимируйте интеграл при помощи vpa.

syms x
f = cos(x)/sqrt(1 + x^2);
fInt = int(f,x,[0 10]);
fVpa = vpa(fInt)
fVpa =
0.37570628299079723478493405557162

Чтобы аппроксимировать интегралы непосредственно, используйте vpaintegral вместо vpa. Функция vpaintegral быстрее и обеспечивает управление допусками интегрирования.

fVpa = vpaintegral(f,x,[0 10])
fVpa =
0.375706

Найдите неопределенные интегралы для выражений перечисленными как элементы матрицы.

syms a x t z
M = [exp(t) exp(a*t); sin(t) cos(t)];
int(M)
ans =
[  exp(t), exp(a*t)/a]
[ -cos(t),     sin(t)]

Вычислите этот неопределенный интеграл. По умолчанию int использует строгие математические правила. Эти правила не позволяют int переписать asin(sin(x)) и acos(cos(x)) как x.

syms x
f = acos(sin(x));
int(f,x)
ans =
x*acos(sin(x)) + x^2/(2*sign(cos(x)))

Если вы хотите простое практическое решение, попробуйте IgnoreAnalyticConstraints.

int(f, x, 'IgnoreAnalyticConstraints', true)
ans =
-(x*(x - pi))/2

Вычислите этот интеграл относительно переменной x. По умолчанию int возвращает интеграл как кусочный объект, где каждое ответвление соответствует особому значению (или область значений значений) символьного параметра t.

syms x t
int(x^t, x)
ans =
piecewise(t == -1, log(x), t ~= -1, x^(t + 1)/(t + 1))

Чтобы игнорировать особые регистры значений параметров, используйте IgnoreSpecialCases. При использовании этой опции int игнорирует особый регистр t=-1 и возвращает только ответвление где t<>–1.

int(x^t, x, 'IgnoreSpecialCases', true)
ans =
x^(t + 1)/(t + 1)

Вычислите этот определенный интеграл, где подынтегральное выражение имеет полюс во внутренней части интервала интегрирования. Математически, этот интеграл не задан.

syms x
f = 1/(x-1);
int(f,x,0,2)
ans =
NaN

Однако Главное значение Коши интеграла существует. Используйте PrincipalValue, чтобы вычислить Главное значение Коши интеграла.

int(f,x,0,2,'PrincipalValue',true)
ans =
0

Если int не может вычислить закрытую форму интеграла, он возвращает неразрешенный интеграл.

syms x
f = sin(sinh(x));
int(f,x)
ans =
int(sin(sinh(x)), x)

Если int не может вычислить закрытую форму неопределенного интеграла, попытайтесь аппроксимировать выражение вокруг некоторой точки с помощью taylor, и затем вычислить интеграл. Например, аппроксимируйте выражение вокруг x = 0.

fApprox = taylor(f, x, 'ExpansionPoint', 0, 'Order', 10);
int(fApprox,x)
ans =
x^10/56700 - x^8/720 - x^6/90 + x^2/2

Входные параметры

свернуть все

Подынтегральное выражение, заданное как символьное выражение или функция, константа, или вектор или матрица символьных выражений, функций или констант.

Переменная интегрирования, заданная как символьная переменная. Если вы не задаете эту переменную, int использует переменную по умолчанию, определенную symvar(expr,1). Если expr является константой, то переменной по умолчанию является x.

Нижняя граница, заданная как номер, символьное число, переменная, выражение или функция (включая выражения и функции с бесконечностями).

Верхняя граница, заданная как номер, символьное число, переменная, выражение или функция (включая выражения и функции с бесконечностями).

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'IgnoreAnalyticConstraints',true указывает, что int применяет чисто алгебраические упрощения в подынтегральном выражении.

Индикатор для применения чисто алгебраических упрощений в подынтегральном выражении, заданном как true или false. Если значением является true, примените чисто алгебраические упрощения в подынтегральном выражении. Эта опция может обеспечить более простые результаты для выражений, для которых прямое использование интегратора возвращает сложные результаты. Иногда, это также позволяет int вычислить интегралы, которые не могут быть вычислены в противном случае.

Используя эту опцию может привести к неправильным или неполным результатам.

Индикатор для того, чтобы игнорировать особые регистры, заданные как true или false. Это игнорирует регистры, которые требуют, чтобы один или несколько параметров были элементами сравнительно маленького набора, такими как фиксированное конечное множество или набор целых чисел.

Индикатор для того, чтобы возвратить основное значение, заданное как true или false. Если значением является true, вычислите Главное значение Коши интеграла.

Советы

  • В отличие от дифференцирования, символьное интегрирование является более сложной задачей. Если int не может вычислить интеграл выражения, проверяйте по этим причинам:

    • Антипроизводная не существует в закрытой форме.

    • Антипроизводная существует, но int не может найти его.

    Если int не может вычислить закрытую форму интеграла, он возвращает неразрешенный интеграл.

    Попытайтесь аппроксимировать такие интегралы при помощи одного из этих методов:

    • Для неопределенных интегралов используйте последовательные расширения. Используйте этот метод, чтобы аппроксимировать интеграл вокруг особого значения переменной.

    • Для определенных интегралов используйте числовые приближения.

  • Результаты, возвращенные int, не включают константы интегрирования.

  • Для неопределенных интегралов int неявно принимает, что переменная интегрирования var действительна. Для определенных интегралов int ограничивает переменную интегрирования var заданным интервалом интегрирования. Если один или и границы интегрирования a и b не являются числовыми, int принимает, что a <= b, если вы явным образом не задаете в противном случае.

Алгоритмы

Когда вы используете IgnoreAnalyticConstraints, int применяет эти правила:

  • регистрируйте (a) + журнал (b) = журнал (a · b) для всех значений a и b. В частности, следующее равенство допустимо для всех значений a, b и c:

      ) c = a c · b c.

  • журнал (a b) = b · регистрируйте (a) для всех значений a и b. В частности, следующее равенство допустимо для всех значений a, b и c:

      (a b) c = a b · c.

  • Если f и g являются стандартными математическими функциями и f (g (x)) = x для всех маленьких положительных чисел, то f (g (x)) = x принят, чтобы быть допустимым для всех комплексных чисел x. В частности:

    • журнал (e x) = x

    • asin (sin (x)) = x, acos (cos (x)) = x, atan (загар (x)) = x

    • asinh (sinh (x)) = x, acosh (дубинка (x)) = x, atanh (tanh (x)) = x

    • lambertWk (x · e x) = x для всех значений k

Представлено до R2006a