Математические функции
Все функции возвращают число типа Float64. Точность результата близка к максимально возможной, но результат может не совпадать с наиболее близким к соответствующему вещественному числу машинно представимым числом.
e()
Возвращает число типа Float64, близкое к числу e.
pi()
Возвращает число типа Float64, близкое к числу π.
exp(x)
Принимает числовой аргумент, возвращает число типа Float64, близкое к экспоненте от аргумента.
log(x)
Принимает числовой аргумент, возвращает число типа Float64, близкое к натуральному логарифму от аргумента.
exp2(x)
Принимает числовой аргумент, возвращает число типа Float64, близкое к 2 в степени x.
log2(x)
Принимает числовой аргумент, возвращает число типа Float64, близкое к двоичному логарифму от аргумента.
exp10(x)
Принимает числовой аргумент, возвращает число типа Float64, близкое к 10 в степени x.
log10(x)
Принимает числовой аргумент, возвращает число типа Float64, близкое к десятичному логарифму от аргумента.
sqrt(x)
Принимает числовой аргумент, возвращает число типа Float64, близкое к квадратному корню от аргумента.
cbrt(x)
Принимает числовой аргумент, возвращает число типа Float64, близкое к кубическому корню от аргумента.
erf(x)
Если x неотрицательно, то erf(x / σ√2) — вероятность того, что случайная величина, имеющая нормальное распределение со среднеквадратичным отклонением σ, принимает значение, отстоящее от мат. ожидания больше чем на x.
Пример (правило трёх сигм):
SELECT erf(3 / sqrt(2));
Приближенные методы расчета функции ошибок Гаусса и интегралов Текст научной статьи по специальности «Математика»
Похожие темы научных работ по математике , автор научной работы — Янченко Геннадий Алексеевич, Гринь Евгений Васильевич, Жаровкин Андрей Васильевич
К расчету времени единичного цикла поверхностного хрупкого термического разрушения горных пород
Моделирование процесса рифления изделий из древесно-полимерных композиций
Количественная оценка КПД процесса хрупкого термического разрушения горных пород при термическом бурении и разбуривании взрывных скважин
К вопросу о прогнозировании глубины зоны лазерной закалки
К исследованию вопроса повышения энергоэффективности зданий на железнодорожном транспорте
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.
Текст научной работы на тему «Приближенные методы расчета функции ошибок Гаусса и интегралов»
© Г.А. Янченко, Е.В. Гринь,
А.В. Жаровкин, 2002
Г.А. Янченко, Е.В. Гринь, А.В. Жаровкин
ПРИБЛИЖПННЫЕ МЕТОЛЫ РАСЧОТА ФУНКЦИИ ОШИБОК ГАУССА И ИНТЕГРАЛОВ
Функция ошибок Гаусса (наиболее распространенное обозначение этой функции в технической литературе — erf (t), где t — аргумент) довольно широко применяется не только в теории ошибок при обработке результатов измерений, но и при расчетах показателей различных нестационарных процессов: теплопроводности, фильтрации жидкостей и газов через пористые среды и т.д. Она определяется как:
erf (t) =^=] ехР( -У 2 )dy,
где у- переменная интегрирования.
Помимо elf (t) довольно широкое использование нашла также функция erfc(t), связанная с erf (t) простым соотношением и названная дополнительной функцией ошибок Гаусса:
erfc(t) = 1 — erf (t) = -j= Jexp( -y 2 )dy
Вычисление erf (t) осуществляется численным, т.е. приближенным, интегрированием, для чего используются определенные ряды разложения [1].
При наличии современных вычислительных средств, например персональных компьютеров, с установленными пакетами специальных математических систем типа Mathematics, Mathcad и др., вычисление функций erf (t), а соответственно и etfc (t) никаких затруднений не вызывает. Кроме того, в соответствующей справочной литературе, например [2], результаты расчетов величин erf (t) приводятся и в табличной форме.
Однако при аналитических исследованиях соответствующих процессов широко используются различные аппроксимации функции erf (t) более простыми выражениями. Это существенно облегчает получение конечных расчетных формул, причем в виде приемлемом для инженерных расчетов даже при использования простых вычислительных средств, например инженерных калькуляторов.
Наиболее часто er (t) аппроксимируется параболой л-го порядка следующего вида [3, 4]:
при этом в [3] рекомендовано брать n = 8, тогда:
а в [4] отмечается, что в зависимости от рассматриваемого процесса можно принимать п = 1, 2, 3, тогда:
при п = 2 еГ() * 1-(1* )2, (6) л/3
при п= 3 е^() * 1 -(1 ‘ )3 . (7)
В то же время здесь же указывается, что наиболее точные результаты при расчетах процессов теплопроводности имеют место при п = 1,75. В этом случае (3) имеет вид:
В [5] указано, что с точностью, достаточной для инженерных расчетов, функция еГ^) может быть также аппроксимирована следующим выражением:
erf (t) и-\j 1 -exp(-1,26t2 ).
Анализ (4). (9) показывает, что все они, за исключением (8), позволяют рассчитывать еГ() при всех встречающихся на практике значениях аргумента t. Выражение же (8) применимо только при t< 1,55121, т. к. при более высоких tв скобках получается отрицательное число, которое в дробную степень не возводится. Следует также отметить, что и в
(6) и (7) при t > л/3 и t > у[6 в скобках получается также отрицательное число. В этом случае, если эти выражения вычисляются на калькуляторах, операцию Ху надо осуществлять как: (-Х)*(-Х) = X2 и (-Х)*
(7) дает такую же погрешность уже практически во всем рассмотренном диапазоне изменения t. В среднем такую же погрешность в этом диапазоне изменения ^ает и формула (4). Однако с увеличением t ее точность повышается и при t > 1,5 погрешность (4) становится уже не более 7 %. Формула (8) действительно является самой точной, 8
формул вида (3), однако, как уже указывалось выше, область ее применения ограничивается величиной t < 1,5.
При решении ряда задач приходится сталкиваться с необходимостью дифференцирования и интегрирования функций eif(t) и erfc(t), и вычислением численных значений полученных производных и интегралов.
Дифференцирование этих функций принципиальных затруднений не вызывает:
—erf (t) = — [-= f exp( -у 2)dx ] = exp( -t2). (10)
Производные eif(t) отличаются от производных erfc(t) соответственно только знаками. Излишне говорить, что вычисление этих производных затруднений не вызывает и легко осуществляется даже на простых инженерных калькуляторах.
Процессу же интегрирования этих функций в современной технической литературе уделено довольно мало внимания, что в определенной степени затрудняет использование этой математической операции в соответствующих аналитических исследованиях и практических расчетах.
В задачах нестационарной теплопроводности довольно часто применяются несобственные интегра-
Ierfc(x )dx , где x —
рования, при этом в полученных конечных расчетных формулах имеют место суммы последовательного многократного интегрирования функции
егИс(х). Поэтому для сокращения записи было введено обозначение:
inerfc(t) = | erfc( х )ск, где п = 0, 1, 2,. . (11)
ierfc (г) = [ егфс (х )dx = —-^= ехр( -г2) — г • еф (г); (13)
P’erfcU) = Iierfc(x )dx = —[(1 + 2t2)erfc(t)————^t • exp(-t2)] =
= \[еф(г ) — 2г • ierfc(t)] (14)
Общая рекуррентная формула (так именуется любая формула, выражающая какую-либо величину, зависящую от числа п, через ту же величину при меньшем абсолютном значении п) для расчетов ГеГс() имеет вид:
2ninerfc(t) = in 2erfc(t)-2tin 1erfc(t).
Интегралы ГеГсЮ для п = 1, 2, 3, 4, 5, 6 определены и их значения в табличной форме приведены в соответствующих литературных источниках, например [6]. Расчет этих интегралов в настоящее время также принципиальных затруднений не вызывает. При использовании же указанных выше соответствующих аппроксимаций функции е/О) этот расчет относительно легко осуществляется даже на простых инженерных калькуляторах. Кроме того, относительно простой вид функций ГеГЬ(0 позволяет аппроксимировать их, так же как и функцию еГ(), простыми зависимостями еще более облегчающими процесс вычисления этих функций.
Однако анализ аппроксимирующих выражений показал, что в диапазоне t= 0.2,5 (при t > 2,5 величины Гег/сО) уже не превышают 0,00005) аппроксимировать функции ГеГсО для п = 1, 2, 3, 4, 5, 6 простыми, легко рассчитываемыми на инженерных калькуляторах, не удается. При О> 1,0 погрешность в расчетах функций ГеГс() такими аппроксимирующими выражениями резко возрастает. Аппроксимировать эти функции в этом диапазоне изменения О можно только довольно сложными выражениями, использование которых практически не облегчает вычисление функций ГеГс(). Аппроксимация функций ГеГс простыми выражениями оказалось возможна только в том случае, если указанный диапазон изменения О разбить минимум на две части. Было установлено, что если указанный диапазон изменения О разбить на следующие две части — О = 0.1,0 и О = 1,0. 2,5, то функции /,ел/с(О) для п = 1, 2, 3, 4, 5, 6 в обеих частях можно довольно точно аппроксимировать выражением одного вида:
У = а •ехр(-Ь где У = Гегк(). (16)
Значения коэффициентов а, Ь и соответствующих корреляционных отношений г с точностью до 5-го знака после запятой (это точность табличных значений функций ГегИсО в [6]) приведены в таблице.
Функция 1ег/с(О) позволяет без затруднений вы-
Функция Коэффициенты аппроксимирующих зависимостей У = ашехр(-ЬО и величины их корреляционных отношений г в диапазоне изменения О
ieifc(t) 0,58343 2,19058 0,99797 2,05112 3,66278 0,99938
ferfcft) 0,25632 2,61519 0,99891 0,32769 3,36683 0,97937
Perfc(t) 0,09586 2,97738 0,99934 0,42686 4,66622 0,99700
feifc(t) 0,03177 3,30219 0,99955 0,25499 5,36949 0,97177
ferfc(t) 0,00951 3,60600 0,99956 _* — —
ferfc(t) 0,00259 3,83964 0,99888 — — —
*согласно [6] Рег/сО) и /’ел/с(О) при О > 1,0 с точностью до 5-го знака после запятой равны нулю
числять интегралы вида | ефс (х )с1х , которые ис-
пользуются, например, при вычислении температуры, усредненной по толщине прогретого тела при нестационарном теплообмене.
учитывая свойство определенного интеграла, имеем:
| еуфс(х )^х = | еуфс(х )с1х — | еуфс(х )аХ = ierfc(tl) — ierfc(t2 ). г1 г1 г2
При наличии аппроксимаций (16) вычисление вышеуказанных интегралов легко осуществляется даже на простых инженерных калькуляторах. При необходимости точность расчетов этих интегралов можно повысить. Учитывая (13) и (17), получим:
I еф( x )dx = [-=exp( -t12) — t1erfc(t1 )] — [-^exp(-t2 ) — t2eKfc(t2 )] =
= -j= [exp(-t1 ) — exp( -t2 )] — [t1erfc(t1) — t2erfc(t2)]. (18)
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
причем на всем диапазоне изменения аргумента t, который может встретиться в практических расчетах процессов горного производства.
Интегралы вида ferf (x )dx в расчетах использо-
ваны быть не могут, т. к. являются расходящимися. Довольно широко в практических расчетах исполь-
зуются интегралы вида f erf (x )dx , выражение для
расчета которых можно получить, учитывая (18):
| erf (x )dx = | [1- erfc(x )]dx = J dx — J erfc(x )dx = (t2 — ^) —j= [exp(-t2 ) -t1 t1 ‘ n
— exp(-t2 )]+ [t1erfc(tj) — t2erfc(t2)] = (tj -t2) —= [exp(-tj ) — exp(-t2 )] +
+ it1[l- erf (t1)] — t2[l- erf (t2 )]> = t2 -11-^[exp(-t? ) — exp(-t2 )] + t1 —
— herf (t1) -12 + t2erf (t2) = -^[exp(-t|) — exp(-t12)] +12erf (t2) — tlerf (t1).
При t1 = 0 (20) имеет вид:
|erfc(x)dx =—^[1-exp(-tf)] +12erfc(t2). (19) J erf (x)dx =“/= texP(_t2 )-4 + t2erf (t2). (21)
При использовании для вычисления функций еп/ЬО) аппроксимации (9) точность вычисления ин-
тегралов | е^с (х )дх , становится очень высокой,
При использовании рассмотренных выше аппроксимаций функции расчет интегралов (20) и
(21) также легко осуществляется даже на простых инженерных калькуляторах.
1. Справочник по специальным функциям с формулами, графиками и математическими таблицами: Пер. с англ.; Под ред. М. Абрамовица и И. Стигана. — М.: Наука, 1979. — 832 с.
2. Митропольский А.К. Интеграл
вероятностей. — Л.: Изд-во ЛГУ,
3. Воропаев А.Ф. Тепловое кондиционирование рудничного воздуха в глубоких шахтах. — М.: Недра, 1979. — 192 с.
4. Вейник А.И. Приближенный расчет процессов теплопроводности. — М.-Л.: Госэнергоиздат, 1959. — 184 с.
5. Резников А.Н., Резников Л.А. Тепловые процессы в техно-
логических системах: Учебник для вузов. — М.: Машиностроение,
6. Карслоу Г., Егер Д. Теплопроводность твердых тел. — М.: Наука, 1964. — 488 с.
7. Пехович А. И, Жидких В.М. Расчеты теплового режима твердых тел. — Л.: Энергия, 1976. — 352 с.
Янченко Геннадий Алексеевич — профессор, доктор технических наук, кафедра «Физика горных пород и процессов», Московский государственный горный университет.
Гринь Евгений Васильевич, Жаровкин Андрей Васильевич — студенты гр. ГФ-1- 97 Московского государственного горного университета.
Документация
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
Входные параметры
X входной параметр
символьное число | символьная переменная | символьное выражение | символьная функция | символьный вектор | символьная матрица
Введите в виде символьного числа, переменной, выражения или функции, или как вектор или матрица символьных чисел, переменных, выражений или функций.
Больше о
Функция ошибок
Следующий интеграл задает функцию ошибок:
e r f ( x ) = 2 π ∫ 0 x e − t 2 d t
Советы
- Вызов 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.
Смотрите также
Представлено до R2006a
Открытый пример
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Документация Symbolic Math Toolbox
Поддержка
- MATLAB Answers
- Помощь в установке
- Отчеты об ошибках
- Требования к продукту
- Загрузка программного обеспечения
© 1994-2021 The MathWorks, Inc.
- Условия использования
- Патенты
- Торговые марки
- Список благодарностей
Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
Научный форум dxdy