Численное интегрирование с помощью переменной точности
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