2015-11-08 2 views
0

Итак, у меня есть код, который принимает sqrts и принимает arctans и преобразует из радианов в градусы, что оставляет меня с не совсем точными значениями. За исключением использования CAS, есть ли что-нибудь, что я могу сделать, чтобы проверять, равны или нет, без округления?Проблемы со степенями неопределенности

+1

Если разница в двух «двойных» меньше, скажем, 0,0001, то они равны. – Sweeper

+0

Может быть полезно разместить ваш код ... Но с удвоениями вы никогда не можете быть уверены, что они равны, поэтому вам нужно ckeck для 'abs (a - b) <0.00001' или что-то в этом роде. –

+0

@Davidvanrijn В идеале я хочу, чтобы мне не пришлось крутиться, а также я мог бы смотреть на несколько триллионов итераций, поэтому округление вообще сильно исказит конечный результат. – Sam

ответ

1

Я полагаю, что CAS означает система компьютерной алгебры ...

практический способ проверить, если два числа равны, если есть возможность ошибок в вычислении (или точности измерений) должен проверить, разница меньше «дельта», которая определяется оценочной ошибкой в ​​вычисленных числах.

Проблема заключается в нахождении хорошей (достаточной) оценки ошибки. Вытягивание номера из воздуха (например, 0.0001) может дать вам ложные срабатывания или ложные негативы. Чтобы сделать это правильно, вам действительно нужно сделать численный анализ ваших расчетов чтобы получить достоверную оценку.


Очевидно ... количество времени, которое вы тратите на эту проблему должна зависеть от того, насколько важно, что вы получите «правильный» ответ; то есть последствия ложного позитива или негатива для программы ... и людей, использующих ее.


1 - Для записи, CAS, вероятно, не поможет вам здесь. Такие проблемы, которые связаны с этим типом вычислений, обычно не имеют алгебраических решений.

+0

Расчеты связаны с подпрыгиванием вокруг elipse и проверкой на то, когда он вернется в исходную точку, поэтому, если это когда-либо произойдет, не будет CAS (и да, я имею в виду компьютерная алгебра система) в конечном итоге изобразить упрощенные значения и так то же самое? – Sam

+0

Это может сработать, но есть два вопроса. 1) Существует ли вообще аналитическое решение? 2) Может ли (немой) CAS найти это решение? –

+0

Я уверен, что CAS не нужно будет даже делать исчисление, но на всякий случай вы скажете мне: EDIT: код как 500 символов слишком длинный, lemme screencap. http://prntscr.com/91ezde – Sam

Смежные вопросы