Численная интеграция с использованием переменной точности
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, которые влияют на интеграцию через условие
интеграл.
Численная интеграция 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. Объединяться
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