exponenta event banner

vpaintegral

Численная интеграция с использованием переменной точности

Описание

пример

vpaintegral(f,a,b) численно аппроксимирует f от a кому b. Переменная по умолчанию x в f найден по symvar.

vpaintegral(f,[a b]) равно vpaintegral(f,a,b).

пример

vpaintegral(f,x,a,b) выполняет численное интегрирование с использованием переменной интегрирования x.

пример

vpaintegral(___,Name,Value) использует дополнительные параметры, указанные одним или несколькими Name,Value аргументы пары.

Примеры

Числовая интеграция символьного выражения

Численная интеграция символьного выражения x^2 от 1 кому 2.

syms x
vpaintegral(x^2, 1, 2)
ans =
2.33333

Численно интегрировать символьную функцию

Численная интеграция символьной функции y (x ) = x2 из1 кому 2.

syms y(x)
y(x) = x^2;
vpaintegral(y, 1, 2)
ans =
2.33333

Высокоточная цифровая интеграция

vpaintegral использует арифметику переменной точности, в то время как MATLAB ®integral функция использует арифметику двойной точности. Используя значения допуска по умолчанию, vpaintegral может обрабатывать значения, вызывающие MATLAB integral для переполнения или переполнения.

Объединяться besseli(5,25*u).*exp(-u*25) с использованием обоих integral и vpaintegral. integral функция возвращает NaN и выдает предупреждение, пока vpaintegral возвращает правильный результат.

syms u x
f = besseli(5,25*x).*exp(-x*25);
fun = @(u)besseli(5,25*u).*exp(-u*25);

usingIntegral = integral(fun, 0, 30)
usingVpaintegral = vpaintegral(f, 0, 30)
Warning: Infinite or Not-a-Number value encountered. 
usingIntegral =
   NaN

usingVpaintegral =
0.688424

Повышение точности с помощью допусков

digits функция не влияет на vpaintegral. Вместо этого увеличьте точность vpainteral путем уменьшения допусков интегрирования. И наоборот, увеличение скорости численного интегрирования за счет увеличения допусков. Управление допуском, используемым vpaintegral путем изменения относительного допуска RelTol и абсолютной толерантности AbsTol, которые влияют на интеграцию через условие

|Q−I|≤max (AbsTol, | Q |· RelTol), где Q = Вычисленная  величина I = Точный интеграл.

Численная интеграция besselj(0,x) от 0 кому pi, до 32 значимых цифр по настройкам RelTol кому 10^(-32). Выключить AbsTol путем установки для него значения 0.

syms x
vpaintegral(besselj(0,x), [0 pi], 'RelTol', 1e-32, 'AbsTol', 0)
ans =
1.3475263146739901712314731279612

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

Интеграция сложных путей с использованием ППМ

Объединяться 1/(2*z-1) по треугольной траектории от 0 кому 1+1i кому 1-1i назад в 0 путем указания ППМ.

syms z
vpaintegral(1/(2*z-1), [0 0], 'Waypoints', [1+1i 1-1i])
ans =
- 8.67362e-19 - 3.14159i

Изменение направления интеграла на противоположное путем изменения порядка расположения ППМ и изменения пределов приводит к изменению знака результата.

Несколько интегралов

Выполнение множественной интеграции путем вложения вызовов в vpaintegral. Объединяться

∫−12∫13xy dx dy.

syms x y
vpaintegral(vpaintegral(x*y, x, [1 3]), y, [-1 2])
ans =
6.0

Пределы интегрирования могут быть символьными выражениями или функциями. Интеграция по треугольной области 0 ≤ x ≤ 1 и | y | < x путем задания пределов интеграции поy в терминах x.

vpaintegral(vpaintegral(sin(x-y)/(x-y), y, [-x x]), x, [0 1])
ans =
0.89734

Входные аргументы

свернуть все

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

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

Интегральная переменная, заданная как символическая переменная. Если x не указан, переменная интегрирования найдена symvar.

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

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'RelTol',1e-20

Относительный допуск ошибки, заданный как положительное вещественное число. Значение по умолчанию: 1e-6. RelTol аргумент определяет точность интегрирования, только если RelTol· | Q | > AbsTol, где Q - вычисляемый интеграл. В этом случаеvpaintegral удовлетворяет условию |Q−I|≤RelTol·|Q|, где I - точное интегральное значение. Использовать только RelTol и выключить AbsTol, комплект AbsTol кому 0.

Пример: 1e-8

Абсолютный допуск ошибки, заданный как неотрицательное вещественное число. Значение по умолчанию: 1e-10. AbsTol определяет точность интегрирования, если AbsTol > RelTol· | Q |, где Q - вычисляемый интеграл. В этом случаеvpaintegral удовлетворяет условию |Q−I|≤AbsTol, где I - точное интегральное значение. Отключение AbsTol и использовать только RelTol, комплект AbsTol кому 0.

Пример: 1e-12

Путь интеграции, заданный как вектор чисел или как вектор символьных чисел, выражений или функций. vpaintegral интегрируется по последовательности прямолинейных путей (нижний предел до первого ППМ, от первого до второго ППМ и так далее) и, наконец, от последнего ППМ до верхнего предела. Для контурных интегралов задайте равные нижний и верхний пределы и определите контур с помощью ППМ.

Максимальная оценка входных данных, заданная как положительное целое число или положительное символьное целое число. Значение по умолчанию: 10^5. Если количество оценок f больше, чем MaxFunctionCalls, то vpaintegral выдает ошибку. Для неограниченных оценок установите MaxFunctionCalls кому Inf.

Совет

  • Убедитесь, что вход интегрируется. Если вход не интегрируется, выход vpaintegral непредсказуемо.

  • digits функция не влияет на vpaintegral. Для повышения точности используйте RelTol и AbsTol вместо этого аргументы.

См. также

| | |

Представлен в R2016b