Калькулятор функции ошибок
Результат
erf(x)
- erfc(x)
- 0,157299
Калькулятор функции ошибок возвращает erf(x) и её дополнение erfc(x) для одного и того же аргумента, поэтому два значения всегда дают в сумме единицу. Функция ошибок — это интеграл колоколообразной кривой от нуля до x, и именно поэтому она всплывает всюду, где приходится измерять нормальное распределение: erf(1) равен 0,842701, а поскольку erfc(1) равен 0,157299, дополнительная функция ошибок — это просто единица минус первое значение. Страница считает значения по определению через ряд, так как в языке, на котором она написана, встроенной функции ошибок нет, и принимает как положительные аргументы, так и отрицательные. Аргумент ограничен шестью в обе стороны, и это та граница, за которой кривой уже нечего различать.
Функция ошибок и её дополнение при значениях, которые ищут чаще всего
| x | erf(x) | erfc(x) |
|---|---|---|
| 0 | 0 | 1 |
| 0.25 | 0.276326 | 0.7236736 |
| 0.5 | 0.5205 | 0.4795001 |
| 0.75 | 0.711156 | 0.2888444 |
| 1 | 0.842701 | 0.1572992 |
| 1.5 | 0.966105 | 0.03389485 |
| 2 | 0.995322 | 0.004677735 |
| 2.5 | 0.999593 | 0.000406952 |
| 3 | 0.999978 | 0.0000220905 |
Каждая строка даёт в сумме единицу по двум последним столбцам — это и есть определение дополнения и самый быстрый способ проверить на глаз любую цифру отсюда. Редеет как раз верхняя половина таблицы: при x = 2 дополнение ещё несёт семь значащих цифр (0.004677735), а при x = 3 первая значащая цифра появляется только на пятом знаке после запятой (0.0000220905). Если читать средний столбец сверху вниз, видно, как кривая выравнивается: уже к x = 0,5 набрана половина всего диапазона, а всё, что после 2, — последние полпроцента. Числа в ячейках печатаются без локализации, поэтому десятичный разделитель в таблице остаётся точкой, тогда как в тексте те же величины записаны с запятой: это одно и то же число в двух записях, а не ошибка.
Формула
erf x = (2 ÷ √π) ∫₀ˣ e^(−t²) dt erfc x = 1 − erf x
- x
- Измеряемая величина, обычное число без единиц измерения. Оно может быть отрицательным, и тогда функция ошибок ведёт себя как нечётная и возвращает значение с обратным знаком: erf(−1) равен −0,842701. Практический диапазон — от −6 до 6; за его пределами кривая выравнивается настолько, что число с плавающей точкой перестаёт отличать значение от единицы.
- e^(−t²)
- Кривая Гаусса — колокол, который здесь интегрируют. Именно её форма делает функцию ошибок нужной: площадь под ней между двумя значениями и есть вероятность, поэтому один и тот же интеграл всплывает в любой задаче о нормальном распределении, а естественный спутник этой страницы — калькулятор нормального распределения.
- √π
- Нормирующий множитель перед интегралом, приблизительно 1,772454. Без него вся кривая дала бы в интеграле √π вместо единицы, и функция ошибок не пробегала бы от −1 до 1. Здесь это константа, а не переменная, и сказать об этом стоит потому, что выглядит она как переменная.
- erf x
- Собственно функция ошибок, напечатанная с шестью знаками после запятой. Она пробегает от −1 до 1, пересекая ноль в начале координат, и достигает 0,842701 при x = 1. Это настоящая площадь, а не вероятность: чтобы получить вероятность, к значению прибавляют единицу и делят пополам — так из неё и строится функция стандартного нормального распределения.
- erfc x
- Дополнительная функция ошибок, единица минус erf; при больших по модулю отрицательных аргументах она начинается с единицы и убывает к нулю. Она выводится в научной записи, потому что охватывает огромный диапазон. Это не второе измерение, а то же самое, прочитанное с другого конца: erfc — это площадь хвоста, а хвост нужен как раз тогда, когда x далеко от нуля.
Обращайтесь к этой странице, когда нужен именно ответ функции ошибок или её дополнения в том виде, в каком они записаны. Если на самом деле нужна вероятность того, что нормальная величина окажется ниже заданного значения, калькулятор нормального распределения принимает среднее и стандартное отклонение и возвращает эту вероятность напрямую — то же число, но более коротким путём. Функция ошибок — та первооснова, из которой эта вероятность получается, и здесь можно прочитать саму первооснову.
Разобранные примеры
Значение, с которым встречаются первым: x = 1
- Ряд вычисляется при x = 1 и сходится за несколько десятков членов
- erf(1) получается равным 0,842701
- Дополнение — это единица минус полученное: 1 − 0,842701 = 0,157299
- Сумма двух значений даёт 1,000000 — это и есть проверка, которую стоит проделывать для любой строки на этой странице
То, что два значения дают в сумме единицу, — не совпадение округления, а определение слова «дополнительная». Если читать их как площади, это означает, что всё под колоколом лежит либо в пределах одной единицы от центра, либо дальше. Эта же строка ближе всего к знакомой цифре: примерно 68 процентов попадают в пределы одного стандартного отклонения.
Два, где хвост уже тонкий
- erf(2) равен 0,995322, то есть кривая почти закончила подъём
- Дополнение равно 1 − 0,995322 = 0,0046777 — это уже меньше половины процента
- В научной записи этот хвост выглядит как 4,677735 × 10⁻³
- Оба значения по-прежнему дают в сумме единицу, и у дополнения осталось семь значащих цифр
Следите за точностью дополнения, а не функции ошибок. Вычисление единицы минус число, очень близкое к единице, отбрасывает старшие цифры, и к этой строке дополнение уже потеряло большинство из них — поэтому страница выводит его в научной записи, со своей обработкой значащих цифр, а не с фиксированным числом знаков после запятой.
Четыре, где дополнение начинает иссякать
- Истинное значение erf(4) равно единице минус примерно 1,54 × 10⁻⁸
- Как число с плавающей точкой это неотличимо от 1, поэтому столбец функции ошибок печатает ровно 1
- Дополнение тогда вычисляется как 1 − erf и даёт 1,541726 × 10⁻⁸
- Точность теряется именно на вычитании: у ответа остаётся лишь несколько верных цифр
Это честный предел страницы и причина, по которой диапазон аргумента кончается на шести. Здешнее дополнение — разность двух чисел, совпадающих до восьмого знака, то есть малый остаток взаимного уничтожения; истинное значение равно 1,5417 × 10⁻⁸, и несколько старших цифр в нём верны. При x = 6 два числа с плавающей точкой становятся равны, и вычитание возвращает ровно ноль там, где истина около 2 × 10⁻¹⁷.
Ограничения
Аргумент ограничен шестью в обе стороны. Это ограничение точности, а не производительности: за этой границей функция ошибок настолько близка к единице, что число с плавающей точкой не представляет разность, и страница печатала бы шум. Внутри диапазона тоже есть предел, о котором стоит знать: дополнение вычисляется вычитанием, и как только x переходит примерно за 4,5, это вычитание уничтожает большинство значащих цифр, поэтому значения erfc там содержат лишь несколько верных цифр. Здесь это не исправлено, и исправление означало бы вторую реализацию дополнения, а не правку этой. Что до самой функции ошибок, то на отрезке от −4 до 4 она верна в пределах одной-двух единиц последнего разряда, а при x = 5 погрешность вырастает примерно до четырёх с половиной таких единиц. Приводятся только эти два значения: функции стандартного нормального распределения среди выходов нет, потому что это та же информация другим путём, а калькулятор нормального распределения выдаёт её как вероятность, с которой можно работать через среднее и стандартное отклонение. Никаких единиц измерения на этой странице нет, аргумент — чистое число. Значения считаются рядом, написанным для этой страницы, а не библиотекой платформы, потому что в языке такой функции нет.
Частые вопросы
- Для чего нужна функция ошибок?
- Чтобы измерить, какая часть кривой Гаусса лежит между центром и заданной точкой, — это то же самое, что вероятность в стандартном нормальном распределении. Значение при x = 1 равно 0,842701; если прибавить единицу и разделить пополам, получится 0,921351 — вероятность того, что стандартная нормальная величина отклонится от среднего не больше чем на одно стандартное отклонение в обе стороны.
- Что такое erfc и как оно связано с erf?
- Это дополнительная функция ошибок, определяемая как единица минус функция ошибок, поэтому два значения на этой странице всегда дают в сумме ровно 1. Она существует отдельной функцией не для полноты: именно она нужна при больших аргументах — при x = 4 функция ошибок уже легла на единицу, и только дополнение ещё несёт информацию.
- Почему нельзя ввести значение больше шести?
- Потому что за шестью измерять уже нечего. Истинное значение при x = 6 равно единице минус примерно 2 × 10⁻¹⁷, а число с плавающей точкой не отличает это от единицы, поэтому столбец функции ошибок напечатал бы 1, а дополнение — ровно ноль. Ограничение говорит о представимости чисел, а не о сложности вычисления: ряд там сходится примерно за двести членов.
- Почему дополнение теряет точность при больших аргументах?
- Потому что оно получается вычитанием. Когда функция ошибок равна 0,99999999999846256, после вычитания её из единицы остаётся всего несколько значащих цифр, а всё, что перед ними, — шум взаимного уничтожения. Истинное дополнение при x = 5 равно 1,5374598 × 10⁻¹², а страница возвращает 1,5364 × 10⁻¹². Сама функция ошибок от этого не страдает, и именно поэтому она здесь главное значение.
- Можно ли получить здесь вероятность нормального распределения?
- Напрямую нет, и страница намеренно этого не предлагает. Функция стандартного нормального распределения строится из функции ошибок прибавлением единицы и делением пополам, но калькулятор нормального распределения принимает, кроме значения, ещё среднее и стандартное отклонение и сообщает вероятность сразу — а это лучший ответ на такой вопрос, чем стандартизованное число.
Источники
- Erf — the definition as an integral of the gaussian, the series expansion, and the values at small arguments — Wolfram MathWorld (United States)
- DLMF §7.2: Error Functions — the definition, the symmetry relation, and the series used to evaluate them — National Institute of Standards and Technology (NIST), Digital Library of Mathematical Functions
- DLMF §7.12: Asymptotic Expansions for Error Functions — why the complement loses accuracy and how it is recovered — National Institute of Standards and Technology (NIST), Digital Library of Mathematical Functions