vpaintegral

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

Описание

пример

vpaintegral(f,a,b) численно аппроксимирует f от a к b. Переменная x по умолчанию inf найден 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) = x 2 от 1 к 2.

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

Численное интегрирование высокой точности

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

Интегрируйте 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|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

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

Интегрирование сложного контура Используя Waypoints

Интегрируйте 1/(2*z-1) по треугольному пути от 0 к 1+1i к 1-1i назад к 0 путем определения waypoints.

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

Инвертирование направления интеграла, путем изменения порядка waypoints и обмена пределами, изменяет знак результата.

Кратные интегралы

Выполните несколько интегрирование вложенными вызовами 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. 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 объединяется вдоль последовательности прямолинейных путей (нижний предел к первому waypoint, сначала к второму waypoint, и так далее) и наконец от последнего waypoint до верхнего предела. Для криволинейных интегралов набор равняется нижним и верхним пределам и задает контур с помощью waypoints.

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

Советы

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

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

Смотрите также

| | |

Введенный в R2017b