Простой способ оценить точность sin()
И cos()
для данного аргумента x
будет выглядеть так:
eps_trig = np.abs(1 - (np.sin(x)**2 + np.cos(x)**2)) / 2
Возможно, вы захотите сбросить последнюю 2
, просто чтобы быть на «безопасная сторона» (ну, есть значения x
, для которых это приближение не выполняется очень хорошо, в частности для x
, близкого к -90 deg
). Я бы предложил протестировать около x=pi/4
Основная идея этого подхода заключается в следующем ... Допустим, наши sin(x)
и cos(x)
отклоняются от точных значений одно «значение ошибки» eps
. То есть exact_sin(x) = sin(x) + eps
(то же самое для cos(x)
). Кроме того, назовем delta
измеренным отклонением от пифагорейской тригонометрической идентичности :
delta = 1 - sin(x)**2 - cos(x)**2
Для точных функций delta
должно быть равно нулю:
1 - exact_sin(x)**2 - exact_cos(x)**2 == 0
или, переходя к неточным функциям:
1 - (sin(x) + eps)**2 - (cos(x) + eps)**2 == 0 =>
1 - sin(x)**2 - cos(x)**2 = delta = 2*eps*(sin(x) + cos(x)) + 2*eps**2
Пренебрежение последним слагаемым 2*eps**2
(допустим небольшие ошибки):
2*eps*(sin(x)+cos(x)) = 1 - sin(x)**2 - cos(x)**2
Если мы выберем x
так, чтобы sin(x)+cos(x)
] колеблется около 1 (или где-то в диапазоне 0.5-2
), мы можем приблизительно оценить, что eps = |1 - sin(x)**2 - cos(x)**2|/2
.
необходимо получить объект диапазона от пользовательского выбора:
var userSelection;
if (window.getSelection)
userSelection = window.getSelection();
else if (document.selection) // should come last; Opera!
userSelection = document.selection.createRange();
var rangeObject = getRangeObject(userSelection);
...
function getRangeObject(selectionObject) {
if (selectionObject.getRangeAt)
return selectionObject.getRangeAt(0);
else { // Safari!
var range = document.createRange();
range.setStart(selectionObject.anchorNode, selectionObject.anchorOffset);
range.setEnd(selectionObject.focusNode, selectionObject.focusOffset);
return range;
}
}
...
Объект Диапазона имеет, запускают и заканчивают контейнерные узлы, и т.д.
больше информации может быть найдено на Quirksmode здесь и на w3.org здесь