Изменения

Перейти к: навигация, поиск

Предикат "левый поворот"

614 байт добавлено, 10:50, 17 октября 2011
Нет описания правки
{{Определение
|definition =
Left_Turn(a, b, c) = true, если <tex>(b - a)*</tex>х<tex>(c - a) > 0</tex>
}}
Распишем поподробнее:
<tex>(b - a)</tex> х <tex>(c - a) = (b_x - a_x)(c_y - a_y) - (b_y - a_y)(c_x - a_x) = A - B</tex>
 
Какие при этом у нас будут погрешности?
 
NB: при сложении складываются абс. погрешности,при умножении складываются отн. погрешности.
 
<tex>\delta (b - a)</tex>х<tex>(c - a) = |A|*\epsilon*((|b_x|+|a_x|)/(|b_x|*|a_x|)+(|c_y|+|a_y|)/(|c_y|*|a_y|)) + </tex>
 
<tex> + |B|*\epsilon*((|b_y|+|a_y|)/(|b_y|*|a_y|)+(|c_x|+|a_x|)/(|c_x|*|a_x|))</tex>
Заметим, что все координаты (а значит и наши вычисления) производятся в вещественных числах, а это значит, что при вычислениях мы можем допустить ошибку. Какую? Посмотрим внимательнее на наш предикат. Ошибка раскрывается тогда, когда угол между отрезками АВ и АС крайне мал.
189
правок

Навигация