-1

Мне нужно вычислить значение этого выражения (e1 * cos (θ) - e2 * sin (θ))/((cos (θ))^2 - (sin (θ))^2)Как вычислить предельное значение

Здесь e1 и e2 - некоторое сложное выражение.

В случае, когда θ приближается к PI/4, тогда знаменатель будет приближаться к нулю. Но в этом случае e1 и e2 также будут приближаться к одному значению. Таким образом, при PI/4 значение выражения будет E/sqrt (2), где e1 = e2 = E

Я могу сделать специальную передачу для θ = PI/4, но как насчет значения θ очень очень близко к ПИ/4. Какова общая стратегия вычисления таких выражений

+0

Для этого вам, вероятно, понадобится правило L'Hospitals (http://mathworld.wolfram.com/LHospitalsRule.html). Но это скорее вопрос математики, чем вопрос о стеке. –

+1

Этот вопрос не соответствует теме, потому что речь идет о математике не о программировании. –

+0

Не в теме? то почему там выходит ключевое слово «математика»? – x64

ответ

1

Это немного сложно. Вам нужно знать больше о том, как ведут себя e1 и e2.

Во-первых, некоторые обозначения: я буду использовать переменную a = theta-pi/4, так что нас интересует a-> 0 и запишем e1 = E + d1, e2 = E + d2. Пусть F = ваше время выражение SQRT (2)

С точки зрения этого мы имеем

F = ((E+d1)*(cos(a) - sin(a)) - (E+d2)*(cos(a) + sin(a)))/- sin(2*a) 
    = (-(2*E+d1+d2)*sin(a) + (d1-d2)*cos(a))/(-2*sin(a)*cos(a)) 
    = (E+(d1+d2)/2)/cos(a) - (d1-d2)/(2*sin(a)) 

Предполагая, что D1-> 0 и Д2> 0 при а-> 0, то первое слагаемое будет стремиться к Е Однако второй термин может иметь тенденцию к чему-либо или взорваться - например, если d1 = d2 = sqrt (a).

Нам нужно больше предположить, например, что d1-d2 имеет производную D при a = 0. В этом случае мы будем

F-> E - D/2 as a->0 

Чтобы иметь возможность вычислить F для значений а, близких к 0, мы должны знать еще больше. Один подход заключается в такой код:

if (fabs(a) < small) { F = E-D/2 + C*a; } else { F = // normal code } 

Таким образом, мы должны понять, что «маленький» и C должно быть. Частично это зависит от того, какую (относительную) точность вы требуете. Наиболее строгим требованием было бы то, что при a = + - малой разница между аппроксимацией и нормальным кодом должна быть слишком мала, чтобы представлять в двойном (если это то, что вы используете). Но обратите внимание, что мы не должны делать «маленьким» слишком мало, или существует опасность того, что в качестве удвоений нормальный код будет оцениваться до 0/0 при + = малом. Один из подходов состоял бы в том, чтобы развернуть числитель и знаменатель F (или только второго члена) в виде степенных рядов (например, второго порядка), делить каждый на a, а затем делить эти ряды, сохраняя члены до второго порядка; первый член в этом дает вам C выше, а второй член позволит вам оценить ошибку в этом приближении и, следовательно, оценить «малый».

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

  • Нет связанных вопросов^_^