Что такое eps в математике
Вещественные числа
Вещественные, или действительные, числа — это, грубо говоря, и целые и дробные. Они, конечно, нередко возникают в задачах, но при работе с ними возникают серьезные проблемы, которые не в каждой книге по программированию будут описаны.
Как компьютер хранит вещественные числа?
(Если вы не поймете, что написано в этом разделе, это не очень страшно, но попробуйте понять.)
Вещественные числа, с которыми может иметь дело компьютер, могут быть как очень большими, так и очень маленькими. С другой стороны, вещественные числа в принципе невозможно хранить абсолютно точно, т.к. в них могут быть очень много знаков (даже бесконечно много) после запятой.
Еще более точно — компьютер хранит числа в двоичной системе счисления; все примеры выше сделаны в десятичной системе только для простоты.
Типы данных
Все современные компьютеры умеют работать со следующими тремя типами данных:
5000, занимает в памяти 10 байт, работает намного медленнее;
Эти типы поддерживаются процессором (т.е. процессор умеет выполнять команду «сложить два числа типа single» или «вычесть два числа типа extended» и т.п.). Поэтому эти типы присутствуют (возможно, с другими названиями) во всех существующих языках программирования.
В питоне нет простой возможности выбрать один из этих трех типов, по умолчанию доступен только тип double, причем в питоне он называется float (!).
Про вывод подробнее
Часто в наших задачах вы можете встретить фразу «выведите ответ с точностью до 5 знаков после запятой», или «с пятью верными знаками» и т.п. Такие фразы почти всегда обозначают, что ваш ответ должен содержать 5 верных цифр после запятой, но они не запрещают вам выводить больше цифр. Вы можете вывести хоть 20 цифр — если первые пять из них верные, то ответ будет зачтен. И наоборот, вы можете вывести меньше цифр — если невыведенные цифры — нули, то ответ тоже будет зачтен. Вообще, строго говоря, такая фраза в условии просто обозначает, что ваш ответ должен отличаться от верного не более чем на 1e-5.
Пример: если правильный ответ на задачу — 0.123456789, то вы можете вывести 0.12345, или 0.123459876, или даже 1.2345e-1 (т.к. это то же самое, что и 0.12345). А если правильный ответ — 0.10000023, то вы можете вывести 0.10000, 0.10000987 или даже просто 0.1 или 1e-001 (т.к. это то же самое, что и 0.10000).
В частности, это обозначает, что вы можете пользоваться стандартными функциями вывода (writeln и print) без каких-либо особых ухищрений; не надо округлять число, не надо форматировать вывод и т.д.
Вот если в задаче строго сказано «вывести ровно с 5 знаками после запятой», то это другое дело. Но на приличных олимпиадах такое бывает очень редко.
Полезные функции
Пример программы, используйющей эти функции:
Погрешности
Два правила работы с вещественными числами
Сначала напишу два главных правила работы с вещественными числами:
Ниже я разъясняю оба этих правила.
Необходимость использования eps
Как уже говорилось выше, компьютер не может хранить все цифры числа, он хранит только несколько первых значащих цифр. Поэтому, если, например, разделить 1 на 3, то получится не 0.33333. (бесконечно много цифр), а, например, 0.33333333 (только несколько первых цифр). Если потом умножить результат обратно на 3, то получится не ровно 1, а 0.99999999. (Аналогичный эффект есть на простых калькуляторах; на продвинутых калькуляторах он тоже есть, но проявляется сложнее.)
Поэтому если вы напишите, например, следующий код:
(для питона такой простой пример у меня подобрать пока не получилось, но в более сложных примерах есть аналогичные проблемы.) |
На самом деле все еще хуже: компьютер работает в двоичной системе счисления, поэтому даже числа, в которых в десятичной системе счисления конечное число цифр, в компьютере могут представляться неточно. Поэтому, например, сравнение if 0.3+0.6=0.9 тоже не сработает: если сложить 0.3 и 0.6, то получится не ровно 0.9, а слегка отличающее число (0.899999 или 0.900001 и т.п.)
(На питоне все тут проявляется еще ярче: print(0.3+0.6) выводит у меня 0.8999999999999999.)
Итак, погрешности, возникающие при любых вычислениях, — это основная проблема работы с вещественными числами. Поэтому если вам надо сравнить два вещественных числа, то надо учитывать, что, даже если на самом деле они должны быть равны, в программе они могут оказаться не равны.
Итак, именно поэтому
(Первое правило будет дальше 🙂 )
* за исключением случаев, когда вам не важно, что произойдет в случае точного равенства, см. ниже.
Выбор eps
Но обычно считают, что в «разумных» задачах все-таки такое eps существует, т.е. числа, которые должны быть равны, отличаются не очень сильно, а те, которые должны отличаться, отличаются намного сильнее. И eps выбирают где-нибудь посередине. (В частности, поэтому, как говорилось выше, не бывает так, что x=y-eps точно.) (В более сложных задачах может понадобиться применять более сложные техники, но мы их сейчас не будем обсуждать.)
Но бывают задачи, где так просто вычислить подходящее eps не получается. На самом деле таких задач большинство — как только вычисления у вас становятся сложнее чем сложить два числа, за погрешностями уже становится сложно уследить. Можно, конечно, применять какие-нибудь сложные техники, но обычно принято просто брать какое-нибудь eps порядка 1e-6..1e-10.
В частности, поэтому на олимпиадах очень не любят давать задачи, которые реально требуют вычислений с вещественными числами — никто, даже само жюри, не может быть уверено в том, что у них eps выбрано верно. Но иногда такие задачи все-таки дают, т.к. никуда не денешься.
Собственно, из этого и следует
В частности, в будущем вы заметите, что во многих задачах, которые, казалось бы, подразумевают вещественные входные данные (например, задачи на геометрию), входные данные тем не менее обычно целочисленны. Это сделано именно для того, чтобы можно было написать решение полностью в целых числах, и не иметь проблем с погрешностью. (Не всегда такое решение возможно, и уж тем более не всегда оно простое, но тем не менее.) Поэтому если вы можете написать такое решение, лучше написать именно его.
Дополнительный материал. «Грубые» задачи: когда eps не нужно
Так иногда бывает — когда вам все равно, в какую ветку if’а вы попадете, если два сравниваемых числа на самом деле равны между собой. В таком случае eps использовать не надо. Но каждый раз тщательно думайте: а правда ли все равно? Всегда лучше перестраховаться и написать eps (выше с eps тоже все работало бы), за исключением совсем уж простых случаев типа приведенного выше вычисления максимума.
Еще пример: считаем сумму положительных элементов массива
Еще пример, где уже eps необходим: определим, какое из двух чисел больше:
Вообще, тут полезно следующее понятие. Назовем задачу (или фрагмент кода) грубым, если ответ на задачу (или результат работы этого фрагмента) меняется не очень сильно (не скачком) при небольшом изменении входных данных, и негрубым в противоположном случае. (Понятие грубости пришло из физики.)
Тогда в задаче (фрагменте кода) eps нужен, если задача является негрубой: тогда существуют такие входные данные, которые вам важно отличить от очень близких им. Например, если надо определить, какое из двух чисел больше, то при входных данных «0.3 0.3» надо ответить «они равны», но при очень небольшом изменении входных данных, например, на «0.300001 0.3» ответ резко меняется: надо отвечать «первое больше».
Если же задача (или фрагмент кода) является грубым, то, скорее всего, в нем можно обойтись без eps : если вы чуть-чуть ошибетесь при вычислениях, ответ тоже изменится не очень сильно. Например, если вы вычисляете максимум из двух чисел, то на входных данных «0.3 0.3» ответ 0.3, а на входных данных «0.300001 0.3» ответ 0.300001, т.е. изменился не очень сильно.
Но, конечно, все приведенное выше рассуждение про грубые задачи — очень примерно, и в каждой задаче надо отдельно думать.
Документация
Относительная точность с плавающей точкой
Синтаксис
Описание
Примеры
Точность в двойной точности
Отобразите расстояние от 1.0 к следующему самому большому номеру с двойной точностью.
Найдите расстояние от 10.0 к следующему самому большому номеру с двойной точностью.
Точность в одинарной точности
Отобразите расстояние от 1.0 к следующему самому большому номеру с одинарной точностью.
Найдите расстояние от представления с одинарной точностью 10,0 к следующему самому большому номеру с одинарной точностью.
Входные параметры
x — Входной массив
скаляр | вектор | матрица | многомерный массив
Типы данных: single | double | duration
Поддержка комплексного числа: Да
datatype — Тип выходных данных
‘double’ (значение по умолчанию) | ‘single’
Типы данных: char
Расширенные возможности
«Высокие» массивы
Осуществление вычислений с массивами, которые содержат больше строк, чем помещается в памяти.
Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.
Эта функция полностью поддерживает основанные на потоке среды. Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.
Массивы графического процессора
Ускорьте код путем работы графического процессора (GPU) с помощью Parallel Computing Toolbox™.
Распределенные массивы
Большие массивы раздела через объединенную память о вашем кластере с помощью Parallel Computing Toolbox™.
Смотрите также
Открытый пример
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Документация MATLAB
Поддержка
© 1994-2021 The MathWorks, Inc.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
Что означает EPS в C?
У меня есть следующий фрагмент кода:
который я пытаюсь преобразовать в C#. Что означает «EPS»?
этот код от http://local.wasp.uwa.edu.au /
pbourke / геометрия / lineline3d/
7 ответов
Это будет какая-то форма Эпсилон чтобы определить, является ли число «достаточно маленьким, чтобы быть незначительным». Точное значение выглядит так, как будто это #define d где-то в этом случае.
EPS-это Эпсилон. Фактор «достаточно близко».
В зависимости от того, как алгоритм сходится на ответ, производительность может зависеть от размера EPS. Будьте осторожны, делая EPS слишком маленьким, потому что ваш процесс может работать часами (или столетиями) и не давать действительно полезный ответ.
и пусть это будет правдой в целом. Поэтому мы всегда говорим
Я бы сказал, что Джон Скит прав. Посмотрев на код lisp на этой странице, вы найдете аналогичную ссылку в вычислениях под названием «nearzero», которая определяется как таковая:
поэтому из этого я бы сказал, что EPS является константой, установленной на 0.00001.
Эпсилон. Вероятно, это будет #define.
Epsilon обычно используется для обозначения числа, очень близкого к нулю в пределах float или двойной точности.
Он используется для определения, если значение p43.x достаточно близко к нулю, чтобы считаться нулем.
скажу, что ЭПС для Эпсилона:
в математике (особенно исчислении), произвольно (или почти так) малая положительная величина.
в вашем примере он используется для определения, является ли результат (ABS (p43.x) достаточно мал (близок к нулю).
в C и C++ у вас есть константы препроцессора FLT_EPSILON и DBL_EPSILON,которые являются наименьшими числами, такими, что 1 +
Инвестграм. Немного про EPS и P/E.
Справедливая стоимость акции зависит от многих факторов, но скорее всего в первую очередь инвесторов интересует прибыль компании, т. к. зачем покупать бизнес, который не приносит прибыль?
Предлагаю рассмотреть два мультипликатора фундаментального анализа, которые распространены в мире, и несколько способов их применения:
Давайте начнем c EPS. Он показывает, сколько прибыли принадлежит акционеру после того, как компания уплатит все налоги.
Причем правильнее данный показатель смотреть не по конкретной компании, а в сравнении с конкурентами и в процентном выражении. Давайте по порядку.
Например, компания А заработала 500 млн рублей, а компания Б 100 млн рублей. Эти показатели нам ни о чем не расскажут, пока мы не посчитаем, сколько компания заработала нам как акционеру на одну акцию.
Можно посчитать EPS двумя способами:
Второй способ применяется, если у компании соответственно есть привилегированные акции
Это так называемый базовый EPS.
Есть еще определение разводненного EPS и форвардного.
Разводненный EPS — это расчёт средневзвешенного количества акций за анализируемый период.
Считается, что это более правильный расчет, но можно ограничиться и простым расчетом, в любом случае в отчетности компаний по МСФО есть информация про EPS с учетом двух видов прибыли:
В данном случае представлен отчет Лукойла по МСФО за 3 кв. 2019 года, который вышел вчера и стоит отметить, что он просто рекордный по меркам нефтегазовой отрасли. Компания показала отличные результаты.
Давайте на посчитаем на практике, используя отчет (18 стр)
Чистую прибыль нужно поделить на количество акций = 776.42 рубля. Как в Аптеке.
Просто получив значение 776.42 не понятно хорошо это или плохо, но можно сказать точно, что если компания направит 100% чистой прибыли на дивиденды, мы получим как акционер 776 рублей на одну акцию.
Имея EPS = 776,42 можно понять, какую доходность компания дает на одну акцию относительно чистой прибыли. Как посчитать?
На текущий день стоимость акции Лукойл =
Именно этот показатель (процентный) нужно сравнивать с отраслевыми компаниями. Не рублевое значение, а процентное. Это к вопросу о том, что компания А заработала 500 млн, а компания Б 100 млн. рублей.
Показатель 12,7% говорит нам, что если компания направит 100% чистой прибыли на дивиденды, то купив акцию по текущей цене, мы получим 12 – ую доходность.
Но далеко не все компании выплачивают 100%, мы должны учитывать, что компании роста могут направлять деньги и на развитие бизнеса, и вот тут в игру вступает в игру второй коэффициент фундаментального анализа, который отвечает за окупаемость инвестиций.
P/E помогает определить, что кроется за абсолютными значениями.
P/E – говорит нам о том, что если компания при текущей прибыли будет направлять 100% чистой прибыли на дивиденды, то… она окупится за столько то лет. Но опять же не всегда следует ориентироваться на дивиденды. Компания может вкладывать прибыль в свое развитие и это также может отразиться с позитивом на ее будущей стоимости.
На примере Лукойла можно посчитать P/E. Я считаю, что лучше использовать годовую отчетность, но век больших скоростей и высоких технологий заставляет смотреть еще и квартальную отчетность.
Итак, расчеты для Лукойла (отчет 3 кв. 2019 года)
Капитализация компании = кол во акций * цена 1 акции = 670 862 * 6100 = 4 092 258 200 рублей (не считайте знаки – это триллионы). Капитализация может меняться ежесекундно, поэтому округлим до 4, 100 000 000 рублей
Далее нам потребуется прибыль – 520 868
P/E=4 100 000/520 868= 7.8 (почти 8 лет). В расчете указана капитализация в миллионах, т к прибыль в отчете в миллиардах (просто убраны лишние нули).
P/E сам по себе бесполезен, есть несколько интерпретаций данного показателя, попробую их отобразить на графике:
Можно считать по разному, смотреть P/E по отрасли или по конкретной компании.
В данном случае представлены исторические значения P/E по Лукойлу. Значения округлены, среднее получается порядка 7,7 лет. О чем говорит показатель 6 лет по итогам 3Q2019, о том, что цена компании по меркам среднего значения и в целом P/E России недооценена.
В России P/E исторически имеет значение порядка 8-10 лет, на текущий день по нефтегазовому сектору порядка 11 лет.
Зная среднее значение компании или отрасли мы можем посчитать справедливую стоимость акции.
В данной статье предлагается взять среднее значение по отрасли = 11 лет.
Справедливая стоимость Лукойла = P/E*EPS = 11*776.42=
8540 рублей. Данное значение может показаться завышенным, опять же. Этот результат посчитан относительно данных цифр.
P/E = 11 – это среднее значение по отрасли, можно брать нижние или верхние границы значений по отрасли и будущий EPS по акции.
Все расчеты, разумеется, относительны, и могут отличаться друг от друга подстановкой иных значений как P/E, так и EPS. Потому что есть считать стоимость Лукойла исходя из того того, во что мы вкладываем деньги – в капитал (P/B), что не совсем корректно, получится, что Лукойл торгуется у своих значений. P/B =
1. Стоит отметить, что в расчетах также не учитывалась дивидендная политика компании.
Универсальных расчетов для оценки бизнеса, к сожалению, не существует. Предложен лишь один из вариантов. И даже EPS не является исключением из этого правила, не взирая на то, что он может показать более объективную картинку, чем просто оценка чистой прибыли эмитента.
Спасибо за внимание!
Данная информация не является индивидуальной инвестиционной рекомендацией, а также не учитывает ваш риск-профиль как инвестора.
Что такое EPS (прибыль на акцию) и как его рассчитать инвестору
Любого инвестора интересует прибыль компании, ценные бумаги которой он покупает. Зачем инвестировать в убыточный и бесперспективный бизнес? Но волнует не вообще вся прибыль, а именно та, которую получит акционер в пересчете на количество купленных им акций. В процессе фундаментального анализа инвестор рассчитывает много мультипликаторов. Один из которых как раз и показывает размер прибыли на одну акцию. В статье разберем, что такое EPS простыми словами, для чего используется и как считать с примерами.
Определение и назначение EPS
EPS (английская аббревиатура “Earnings per share”) в переводе на русский звучит как “прибыль на акцию” – это финансовый показатель, который отражает размер чистой прибыли на одну обыкновенную акцию компании.
Другими словами, инвестор с помощью этого мультипликатора может определить, сколько он заработает денег на каждую купленную бумагу, если всю чистую прибыль компания направит на выплаты своим акционерам.
Фактический (базовый) EPS рассчитывается по данным отчетности компании за период (квартал, год). Цифры по чистой прибыли и сумме выплаченных дивидендов берем из МСФО, количеству ценных бумаг в обращении – из карточки эмитента на бирже (иногда есть в Отчете о прибылях и убытках).
EPS = Чистая прибыль / Количество обыкновенных акций
EPS = (Чистая прибыль – Дивиденды по привилегированным акциям) / Количество обыкновенных акций
На примере отчетности компании Роснефть за 2020 г. рассчитаем базовый EPS:
EPS = 147 000 000 000 / 9 876 000 000 = 14,88 руб.
Если вы посмотрите внимательнее, то увидите в отчете уже готовое значение EPS (выделила синим цветом), т. е. не обязательно рассчитывать коэффициент самостоятельно.
Виды EPS
Есть несколько видов EPS в зависимости от исходных данных для расчета:
Разводненный – рассчитывается для компаний, которые имеют конвертируемые облигации и опционы. Они могут легко превратиться в обыкновенные акции, что приведет к увеличению знаменателя и снижению прибыли.
EPS = Чистая прибыль / Скорректированное количество ценных бумаг
Форвардный (прогнозный) – в числителе используется не фактическая, а прогнозная прибыль, которую рассчитывают аналитики. Из-за субъективности результат может не совпасть с реальным значением.
EPS = Форвардная чистая прибыль / Количество обыкновенных акций
Денежный – в числителе чистая прибыль заменяется на операционный денежный поток, который отражает реальную деятельность предприятия. Считается более объективным, т. к. базируется на операционной деятельности, значением которой, в отличие от чистой прибыли, сложно манипулировать в отчете.
EPS = Операционный денежный поток / Количество обыкновенных акций
В течение года у предприятия может измениться количество ценных бумаг в обращении (например, в результате байбека или дополнительного выпуска). Знаменатель в формуле в этом случае рассчитывается как средневзвешенная величина.
Как использовать на практике
После расчета EPS мы получаем абсолютный показатель в денежных единицах измерения (рублях или долларах). Условный пример: компания по итогам года заработала 10 млн руб. чистой прибыли, в обращении находится 1 млн акций. Следовательно, EPS составит 10 руб. на одну бумагу. Много это или мало? Инвестор не может по одной цифре сказать, хороший получился результат или плохой, поэтому целесообразно использовать EPS для следующих целей:
Для примера сравним три нефтедобывающих компании по итогам 2020 г.: Лукойл, Газпром нефть и Роснефть. При прочих равных условиях выбираем ту, у которой EPS выше.
Хорошо, когда показатель растет, плохо, когда падает. Например, EPS компании Газпром нефть за 5 лет изменялся следующим образом:
Если сравнить абсолютное значение с текущей ценой акции, то можно определить доходность инвестиций в процентах. Чем выше значение, тем лучше для инвестора. Рассчитаем доходность вложений в ценные бумаги нефтяных компаний на конец 2020 г.:
Показатели | Лукойл | Газпром нефть | Роснефть | ||||||
Цена акции на 30.12.2020, руб. | 5 169,5 | 316,95 | 435,1 | ||||||
EPS, руб. | 23,31 | 24,95 | 14,88 | ||||||
Доходность, % | 0,45 % (23,31 / 5 169,5 * 100 %) | 7,87 % (24,95 / 316,95 * 100 %) | 3,42 % Сам EPS не помогает искать недооцененные акции. Но с его помощью рассчитывают еще один мультипликатор – P/E, который показывает, насколько справедливо рынок оценивает бумаги по сравнению с конкурентами и со среднеотраслевым значением. P/E рассчитывается как отношение текущей стоимости акции к EPS. Чем ниже значение, тем лучше. По нефтяным компаниям P/E на 01.01.2021 составил:
Плюсы и минусы мультипликатораРассмотрим плюсы и минусы показателя. ЗаключениеКак и любой мультипликатор, EPS не является универсальным. По нему нельзя принимать решение о выборе той или иной ценной бумаги в свой портфель. Но он позволяет выделить среди всего многообразия тех эмитентов, кто дает максимальную прибыль на одну акцию. Для инвестора это имеет принципиальное значение. С уважением, Чистякова Юлия С 2000 года преподаю экономические дисциплины в университете. В 2002 году защитила диссертацию на присуждение ученой степени кандидата экономических наук. Обладаю врожденной способностью планировать и управлять личными финансами. С 2017 года повышаю финансовую грамотность других людей, перевожу сложные термины на человеческий язык.
|