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, которые влияют на интегрирование через условие

|QI|макс.(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. Объединяться

1213xydxdy.

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. The RelTol аргумент определяет точность интегрирования только в том случае, если RelTol·|Q|>AbsTol, где Q - вычисленный интеграл. В этом случае, vpaintegral удовлетворяет условию |QI|RelTol·|Q|, где I - точное интегральное значение. Использовать только RelTol и отключите AbsTol, задать AbsTol на 0.

Пример: 1e-8

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

Пример: 1e-12

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

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

Совет

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

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

См. также

| | |

Введенный в R2016b