2014-11-04 9 views
1

У меня есть условие, такое, чтотригонометрические функции сек не работает в PERL

cos($x)=$y; 

Так как я знаю, $ у, я хочу, чтобы найти значение $ х

я использовал

$x=sec($y);  

который вызывает ошибку, вызванную неопределенной подпрограммой.

Просьба предложить исправить это. Я не хочу использовать некоторые дополнительные модули.

+0

Я не знаю ни Perl, но вы, кажется, использует секущую где вы должны использовать функцию косинуса дуги. Первый - это обратный косинус, последний - инверсный - есть большая разница. –

+1

Ошибка говорит вам, что Perl не имеет встроенной функции 'sec'. – toolic

ответ

3

От perldoc -f cos

сов

Возвращает косинус EXPR (выраженного в радианах). Если EXPR опущен, принимает косинус $ _. Для операции обратного косинуса, вы можете использовать Math :: Trig :: ACOS() функцию, или использовать это соотношение:

sub acos { atan2(sqrt(1 - $_[0] * $_[0]), $_[0]) }