Функция ошибок
erf(X)
erf(
представляет функцию ошибок X
)X
. Если X
является вектором или матрицей, erf(X)
вычисляет функцию ошибок каждого элемента X
.
В зависимости от его аргументов erf
может возвратить или точные символьные результаты с плавающей точкой.
Вычислите функцию ошибок для этих чисел. Поскольку эти числа не являются символьными объектами, вы получаете результаты с плавающей точкой:
A = [erf(1/2), erf(1.41), erf(sqrt(2))]
A = 0.5205 0.9539 0.9545
Вычислите функцию ошибок для тех же чисел, преобразованных в символьные объекты. Для большинства символьных (точных) чисел erf
отвечает на неразрешенные символьные звонки:
symA = [erf(sym(1/2)), erf(sym(1.41)), erf(sqrt(sym(2)))]
symA = [ erf(1/2), erf(141/100), erf(2^(1/2))]
Используйте vpa
, чтобы аппроксимировать символьные результаты с необходимым количеством цифр:
d = digits(10); vpa(symA) digits(d)
ans = [ 0.5204998778, 0.9538524394, 0.9544997361]
Для большинства символьных переменных и выражений, erf
отвечает на неразрешенные символьные звонки.
Вычислите функцию ошибок для x
и sin(x) + x*exp(x)
:
syms x f = sin(x) + x*exp(x); erf(x) erf(f)
ans = erf(x) ans = erf(sin(x) + x*exp(x))
Если входной параметр является вектором или матрицей, erf
возвращает функцию ошибок для каждого элемента того вектора или матрицы.
Вычислите функцию ошибок для элементов матричного M
и векторного V
:
M = sym([0 inf; 1/3 -inf]); V = sym([1; -i*inf]); erf(M) erf(V)
ans = [ 0, 1] [ erf(1/3), -1] ans = erf(1) -Inf*1i
erf
возвращает специальные значения для конкретных параметров.
Вычислите функцию ошибок для x = 0, x = ∞, и x = – ∞. Используйте sym
, чтобы преобразовать 0
и бесконечности к символьным объектам. Функция ошибок имеет специальные значения для этих параметров:
[erf(sym(0)), erf(sym(Inf)), erf(sym(-Inf))]
ans = [ 0, 1, -1]
Вычислите функцию ошибок для комплексных бесконечностей. Используйте sym
, чтобы преобразовать комплексные бесконечности в символьные объекты:
[erf(sym(i*Inf)), erf(sym(-i*Inf))]
ans = [ Inf*1i, -Inf*1i]
Много функций, таких как diff
и int
, могут обработать выражения, содержащие erf
.
Вычислите первые и вторые производные функции ошибок:
syms x diff(erf(x), x) diff(erf(x), x, 2)
ans = (2*exp(-x^2))/pi^(1/2) ans = -(4*x*exp(-x^2))/pi^(1/2)
Вычислите интегралы этих выражений:
int(erf(x), x) int(erf(log(x)), x)
ans = exp(-x^2)/pi^(1/2) + x*erf(x) ans = x*erf(log(x)) - int((2*exp(-log(x)^2))/pi^(1/2), x)
Постройте функцию ошибок на интервале от-5 до 5.
syms x fplot(erf(x),[-5 5]) grid on
Вызов erf
для номера, который не является символьным объектом, вызывает функцию MATLAB® erf
. Эта функция принимает действительные аргументы только. Если вы хотите вычислить функцию ошибок для комплексного числа, используйте sym
, чтобы преобразовать тот номер в символьный объект, и затем вызвать erf
для того символьного объекта.
Для большинства символьных (точных) чисел erf
отвечает на неразрешенные символьные звонки. Можно аппроксимировать такие результаты с числами с плавающей запятой с помощью vpa
.
Тулбокс может упростить выражения, которые содержат функции ошибок и их инверсии. Для действительных значений x
тулбокс применяет эти правила упрощения:
erfinv(erf(x)) = erfinv(1 - erfc(x)) = erfcinv(1 - erf(x)) = erfcinv(erfc(x)) = x
erfinv(-erf(x)) = erfinv(erfc(x) - 1) = erfcinv(1 + erf(x)) = erfcinv(2 - erfc(x)) = -x
Для любого значения x
система применяет эти правила упрощения:
erfcinv(x) = erfinv(1 - x)
erfinv(-x) = -erfinv(x)
erfcinv(2 - x) = -erfcinv(x)
erf(erfinv(x)) = erfc(erfcinv(x)) = x
erf(erfcinv(x)) = erfc(erfinv(x)) = 1 - x
[1] Gautschi, W. “Функция ошибок и Интегралы Френели”. Руководство Математических функций с Формулами, Графиками и Математическими Таблицами. (М. Абрамовиц и я. А. Стегун, редакторы). Нью-Йорк: Дувр, 1972.