Ошибка в Mathcad 14 при сравнении величин
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Расчетные программы > Ошибка в Mathcad 14 при сравнении величин

Ошибка в Mathcad 14 при сравнении величин

Ответ
Поиск в этой теме
Непрочитано 06.07.2010, 16:12 #1
Ошибка в Mathcad 14 при сравнении величин
bubble gum
 
Регистрация: 16.04.2010
Сообщений: 4

При сравнение двух величин при помощи оператора "=<" маткад отказывается признавать, что одно выражение численно равно переменной, хотя они равны!!
Причем:
1. Если, скажем, kf=1,2,3 и b1=24,25,26мм соответственно, то все сравнивается правильно.
2. Если kf=4,5,6 и b1=27,28,29мм соответственно, то результат становится неверным.
3. Если поменять размерность c mm на m или убрать размерности совсем, все замечательно при любых значениях.
Кто-нибудь может подсказать в чем тут дело, а то я уже второй день с ума схожу?
P.S. В файле я менял две переменные kf и b1 (выделены синим). Важно чтобы значения в выражениях, которые выделены красным, были равны.

Вложения
Тип файла: rar bug00.rar (7.9 Кб, 82 просмотров)

Просмотров: 4474
 
Непрочитано 06.07.2010, 19:56
#2
Constantin Shashkin


 
Регистрация: 01.02.2008
Сообщений: 356


Беда, кажется, в том что машинные вычисления выполняются всегда неточно. При переводе единиц MathCad выполняет какие-то операции, в результате чего накапливает ошибку порядка 10^-15.
Достаточно добавтить строчку b1:=b1+10^-15 mm после красных полей и все ОК. Вас интересует именно данное точное сравнение круглых чисел? Для машины круглых чисел нет. В этом и проблема. b1 у нее вышло немного меньше, чем выражение слева - в этом и проблема.
Constantin Shashkin вне форума  
 
Автор темы   Непрочитано 07.07.2010, 09:47
#3
bubble gum


 
Регистрация: 16.04.2010
Сообщений: 4


Constantin Shashkin, а как же тогда при разных значениях переменных, получается то "ок", то "не ок"? Да и потом, у меня только одна размерность - это мм, значит никакого перевода из м в мм нет. Мне 10^-15mm не помогло, помогло 10^-14mm, у вас 14-й маткад и у меня, как же объяснить и эту разницу
P.S. Constantin Shashkin, вы оказались правы. Решил проблему, убрав галочку напротив Use exact equality for comparisons and truncation в разделе Calculation.

Последний раз редактировалось bubble gum, 07.07.2010 в 10:52.
bubble gum вне форума  
 
Непрочитано 07.07.2010, 19:56
#4
Constantin Shashkin


 
Регистрация: 01.02.2008
Сообщений: 356


При сравнениях всегда нужно помнить, что машина даже 2+2 не может выполнить совсем без ошибки. Поэтому в программировании равенство 2+2=4 не всегда даст положительный результат. Правильнее писать Abs(2+2-4)<Tol, где Tol - заданная точность.
Constantin Shashkin вне форума  
 
Автор темы   Непрочитано 08.07.2010, 11:23
#5
bubble gum


 
Регистрация: 16.04.2010
Сообщений: 4


Надо запомнить, спасибо большое.
bubble gum вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Расчетные программы > Ошибка в Mathcad 14 при сравнении величин



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при создании слоя в AutoCad 2009 Streko3a AutoCAD 23 22.08.2011 09:12
*Bug. Ошибка выполнения getstring при включенном динамическом вводе Кулик Алексей aka kpblc Баги и пожелания в Autodesk 0 02.11.2009 23:37
Мониторы LCD CRT Разное 94 17.06.2008 10:51
БРЕД СИВОЙ КОБЫЛЫ Kryaker Разное 1876 29.12.2006 23:41