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