Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Edd.DragonВ этом случае следует позаботиться об исползовании точных вычислений в ущерб производительности, а не о минимизации погрешности в пару-тройку раз, т.е. об откладывании проблемы на потом (авось ее кому другому придется разгребать). На самом деле эти вопросы решаются не так топорно. В подавляющем большинстве случаев не требуется абсолютная точность. Достаточно обеспечить предсказуемую погрешность. А для этого есть элементарный способ, которому учат на любой инженерной специальности - после каждой операции округлять результат до точности операндов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2012, 23:21 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
2 Пётр Седов То есть оба способа дали неточный результат, но погрешность при делении (err_div = 2.33...·10-17) оказалась меньше, чем погрешность при умножении (err_mul = 3.66...·10-17). То есть, для типа double, деление на 3 может дать более «хороший» (в плане погрешности) результат, чем умножение на 1/3, о чём уже написали Anatoly Moskovsky и jmp. Да, может. Весь вопрос в том, с какой точностью нам известны данные типа double над которыми мы производим математические операции. Вот вы в качестве примера использовали величины порядка 1 и получили в обоих случаях абсолютную погрешность порядка 10 в -17. Если величина порядка 1 известна нам с точностью до 10 в -9, это уже нано-диапазон и задачи где бы на сегодняшний день данные были известны с более высокой точностью... ну надо поискать... Поэтому на фоне той точности с которой нам известно что double x = 1.25 разница между err_div = 2.33...·10-17 и err_mul = 3.66...·10-17 совершенно несущественна. Если для достижения конечного результата надо делать одну/две арифметические операции, то действительно разница несущественная. Но если операций надо делать много (какой-нибудь итерационный метод, например), то погрешность будет накапливаться, и в некоторых задачах есть смысл позаботиться о её минимизации. Вот здесь полностью согалшусь. Строго говоря, не каждая. Стандарт IEEE 754 требует, что если точный результат арифметической операции представим точно floating-point типом, то именно этот точный результат и должен быть получен, без всякой погрешности, например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. А почему вы считаете что 4.5 точно представимо типом double? Это кстати относится и к 3. 2 Анатолий Ага, щас. Тут недавно был топик, где чувак прибавлял по 0.2 начиная с -1.0 и уже к 0 получил видимую погрешность. Так что все измеряется. Видимую - это какую? То есть он получил вместо точного нуля 10 в -15/16/17... и т.д. степени и вы на основании этого сделали какие-то выводы о значимости того остатка, который он поимел? Ну, наверное с точки зрения программиста это действительно ужасно, а с точки зрения физика и 0.2 и -1.0 не более чем аппроксимации каких-то реальных физических величин, известных с некоторой точностью. На фоне этой точности, дельта порядка 10 в -15/16/17 степени абсолютно бессмысленна. Именно это я и пытался объяснить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 10:02 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyНа самом деле эти вопросы решаются не так топорно. В подавляющем большинстве случаев не требуется абсолютная точность. Достаточно обеспечить предсказуемую погрешность. А для этого есть элементарный способ, которому учат на любой инженерной специальности - после каждой операции округлять результат до точности операндов. Уже n-ый раз открываю чужой исходник биллинговой системы и натыкаюсь на очередной индусский код где деньги считают в double. Хотя вру... не считают. Передают из веб-метода. Но и дальше результат уходит в double. Длину цепочки я еще не отследил полностью. Не знаю, как подобные системы проходят тестирования. Наверное никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 12:22 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
mikhail_nс точки зрения физика и 0.2 и -1.0 не более чем аппроксимации каких-то реальных физических величин, известных с некоторой точностью. На фоне этой точности, дельта порядка 10 в -15/16/17 степени абсолютно бессмысленна. Именно это я и пытался объяснить. Не знаю что там с точки зрения физики, но с точки зрения метрологии точность результата бОльшая, чем точность операндов - невозможна. Все что точнее - это мусор. Double вычисляет и хранит результат в большем колве битов чем есть в исходном десятичном числе. Эта разница дает мусор который вполне может дать погрешность в значимых разрядах, например при умножении на большие коэффициенты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 14:03 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyс точки зрения метрологии точность результата бОльшая, чем точность операндов - невозможна. Все что точнее - это мусор. Э-э-э... Я правильно понимаю, что метрология, когда делит точную единицу без десятичных знаков на такую же точную двойку получает ровный нуль опять же без десятичных знаков?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 14:23 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЭ-э-э... Я правильно понимаю, что метрология, когда делит точную единицу без десятичных знаков на такую же точную двойку получает ровный нуль опять же без десятичных знаков?.. Нет. Если рассматривать double то точность входных чисел - 16 знаков мантиссы, даже если вы их записываете короче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 15:23 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Это был юмор я так понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 15:25 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Что-то вы метрологию совсем не туда приплели... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 15:39 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Edd.DragonЧто-то вы метрологию совсем не туда приплели... Куда не туда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 16:05 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
[quot mayton wrote: > Это был юмор я так понял. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 16:05 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
maytonЭто был юмор я так понял. Где смеяться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 16:06 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Чёрт бы побрал близкое расположение BS и Enter... maytonЭто был юмор я так понял. Нет, это была попытка понять откуда ноги растут у тезиса "точность результата не может быть выше точности операндов". Ну и откуда тут метрология... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 16:08 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
2 mikhail_n: mikhail_nА почему вы считаете что 4.5 точно представимо типом double? Это кстати относится и к 3. 4.5 = 1·2 2 + 0·2 1 + 0·2 0 + 1·2 -1 = 100.1 2 = 1.001·2 2 3 = 1·2 1 + 1·2 0 = 11 2 = 1.1·2 1 Оба числа точно представимы типом double, потому что они записываются конечным количеством цифр в двоичной системе счисления, причём это количество <= 53 (= DBL_MANT_DIG = количество двоичных цифр (битов) в double-овской мантиссе). Или вы что-то другое имели в виду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 16:16 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovоткуда ноги растут у тезиса "точность результата не может быть выше точности операндов". Вы хотите опровергнуть это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 16:21 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyВы хотите опровергнуть это? Сначала вопрос - к чему этот очевидный тезис, если никто не пытался утверждать обратного? Кстати, Anatoly MoskovskyDouble вычисляет и хранит результат в большем колве битов чем есть в исходном десятичном числе. Эта разница дает мусор Не так выразились? Мусор то не эта разница дает. Не в "лишних" битах проблема, а наоборот - в их недостатке (хвост появляется, когда нужно бесконечное число битов!) )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 16:30 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyВы хотите опровергнуть это? Для начала я пытаюсь понять как его применить к делению. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 16:31 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Edd.DragonAnatoly MoskovskyDouble вычисляет и хранит результат в большем колве битов чем есть в исходном десятичном числе. Эта разница дает мусор Не так выразились? Мусор то не эта разница дает. Не в "лишних" битах проблема, а наоборот - в их недостатке (хвост появляется, когда нужно бесконечное число битов!) )) Да нет, как раз я имел в виду именно то что сказал. У double 53 бита на мантиссу, этого достаточно для точного хранения 15 десятичных разрядов и плюс есть небольшой запас точности но его не хватает на полный дес. разряд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 17:06 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЧёрт бы побрал близкое расположение BS и Enter... maytonЭто был юмор я так понял. Нет, это была попытка понять откуда ноги растут у тезиса "точность результата не может быть выше точности операндов". Ну и откуда тут метрология... По моему мы на физике расчитывали погрешности резульатов. Оттуда ИМХО... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 17:20 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Ну таки не понятно выразились. Мусор возникает вследствии того, что конечное количество десятичных знаков может превратиться в бесконечное количество двоичных знаков, которые мы будем вынуждены обрезать и получить не совсем то число, которое было изначально. У вас не эквивалентная мысль выражена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 17:32 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
maytonПо моему мы на физике расчитывали погрешности резульатов. Оттуда ИМХО... Эт вряд ли... Простейший пример: для нахождения диаметра провода измеряется суммарная ширина 1000 витков (погрешность +-10 витков) провода с точностью до миллиметра (погрешность +-1мм). Результат имеет точность +-10 микрон. 10 микрон меньше миллиметра. ЧЯДНТ? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 17:36 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovmaytonПо моему мы на физике расчитывали погрешности резульатов. Оттуда ИМХО... Эт вряд ли... Простейший пример: для нахождения диаметра провода измеряется суммарная ширина 1000 витков (погрешность +-10 витков) провода с точностью до миллиметра (погрешность +-1мм). Результат имеет точность +-10 микрон. 10 микрон меньше миллиметра. ЧЯДНТ? Вы оперируете числами, не имеющими ограничения точности представления, и рассуждаете о погрешности измерений. Выше говорилось же, что если у вас будет ограничение точности преставления результатов ваших измерений, "несовместимое" с вашими микронами, то и микронов вы не получите. Хватит уже натягивать носки на руки! И так понятно, что надеваются, но смысл? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 17:45 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovmaytonПо моему мы на физике расчитывали погрешности резульатов. Оттуда ИМХО... Эт вряд ли... Простейший пример: для нахождения диаметра провода измеряется суммарная ширина 1000 витков (погрешность +-10 витков) провода с точностью до миллиметра (погрешность +-1мм). Результат имеет точность +-10 микрон. 10 микрон меньше миллиметра. ЧЯДНТ? Ерунда какая-то. Какую формулу вы использовали? Я вот читаю здесь. Погрешности измерений физических величин http://schools.keldysh.ru/sch764/files/pogr.htm Там табличка из 6 формул. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 18:24 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
maytonЕрунда какая-то. Шутите? Это ж классическая задача ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 18:30 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Edd.DragonМусор возникает вследствии того, что конечное количество десятичных знаков может превратиться в бесконечное количество двоичных знаков, которые мы будем вынуждены обрезать и получить не совсем то число, которое было изначально. Это как раз очевидно. Я говорил про то как бороться. Если округлять результат любой операции до разряда точности (рассчитанной исходя из операции и значений операндов) то получим как раз именно то значение которое ожидаем. Как минимум надо округлять до 15 знаков. Например если операция - присвоение в double из числового литерала то точность операнда - 15 разрядов мантиссы, значит чтобы прочесть в виде десятичного числа то число, которое мы присваивали, надо округлить при чтении до 15 разряда мантиссы. Если исходное число умножается на 10, то погрешность в 10 раз больше - значит округлять до 14 знака мантиссы (и в следующей операции точность операнда будет уже 14 знаков). При делении на 10 погрешность уменьшается, значит точность растет но не более 15 знаков (предел double). Если не округлять - то получим "более точные" значения, но все что за пределами младшего разряда точности будет просто случайным числом, мусором. Хотя есть алгоритмы которым мусор не мешает, но чаще всего это не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 18:37 |
|
||
|
Извлечение корня отрицательного числа.
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyзначит чтобы прочесть в виде десятичного числа то число, которое мы присваивали, надо округлить при чтении до 15 разряда мантиссы. Это как раз очевидно. (с) ))) А то, что после умножения на 10 нужноучитывать потерю 1 знака точности - это как раз не всегда помнят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2012, 18:47 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38072913&tid=2020600]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 273ms |
| total: | 416ms |

| 0 / 0 |
