@c /Trigonometric.texi/1.14/Fri Jun 17 00:57:35 2005/-ko/
@menu
* Introdução ao Pacote Trigonométrico::  
* Definições para Trigonometria::  
@end menu

@node Introdução ao Pacote Trigonométrico, Definições para Trigonometria, Trigonometria, Trigonometria
@section Introdução ao Pacote Trigonométrico

Maxima tem muitas funções trigonométricas definidas.  Não todas as identidades
trigonometricas estão programadas, mas isso é possível para o utilizador adicionar muitas
delas usando a compatibilidade de correspondência de modelos do sistema.  As
funções trigonométricas definidas no Maxima são: @code{acos},
@code{acosh}, @code{acot}, @code{acoth}, @code{acsc},
@code{acsch}, @code{asec}, @code{asech}, @code{asin}, 
@code{asinh}, @code{atan}, @code{atanh}, @code{cos}, 
@code{cosh}, @code{cot}, @code{coth}, @code{csc}, @code{csch}, 
@code{sec}, @code{sech}, @code{sin}, @code{sinh}, @code{tan}, 
e @code{tanh}.  Existe uma colecção de comandos especialmente para 
manusear funções trigonométricas, veja @code{trigexpand},
@code{trigreduce}, e o comutador @code{trigsign}.  Dois pacotes 
compartilhados extendem as regras de simplificação construídas no Maxima, 
@code{ntrig} e @code{atrig1}.  Faça @code{describe(@var{comando})}
para detalhes.

@node Definições para Trigonometria,  , Introdução ao Pacote Trigonométrico, Trigonometria
@section Definições para Trigonometria

@deffn {Função} acos (@var{x})
 - Arco Cosseno.

@end deffn

@deffn {Função} acosh (@var{x})
 - Arco Cosseno Hiperbólico.

@end deffn

@deffn {Função} acot (@var{x})
 - Arco Cotangente.

@end deffn

@deffn {Função} acoth (@var{x})
 - Arco Cotangente Hiperbólico.

@end deffn

@deffn {Função} acsc (@var{x})
 - Arco Cossecante.

@end deffn

@deffn {Função} acsch (@var{x})
 - Arco Cossecante Hiperbólico.

@end deffn

@deffn {Função} asec (@var{x})
 - Arco Secante.

@end deffn

@deffn {Função} asech (@var{x})
 - Arco Secante Hiperbólico.

@end deffn

@deffn {Função} asin (@var{x})
 - Arco Seno.

@end deffn

@deffn {Função} asinh (@var{x})
 - Arco Seno Hiperbólico.

@end deffn

@deffn {Função} atan (@var{x})
 - Arco Tangente.

@end deffn

@deffn {Função} atan2 (@var{y}, @var{x})
- retorna o valor de @code{atan(@var{y}/@var{x})} no intervalo de @code{-%pi} a
@code{%pi}.

@end deffn

@deffn {Função} atanh (@var{x})
 - Arco tangente Hiperbólico.

@end deffn

@c IS THIS DESCRIPTION ACCURATE ??
@c LET'S BE EXPLICIT ABOUT EXACTLY WHAT ARE THE RULES IMPLEMENTED BY THIS PACKAGE
@defvr {Pacote} atrig1
O pacote @code{atrig1} contém muitas regras adicionais de simplificação 
para funções trigonométricas inversas.  Junto com regras
já conhecidas para Maxima, os seguintes ângulos estão completamente implementados:
@code{0}, @code{%pi/6}, @code{%pi/4}, @code{%pi/3}, e @code{%pi/2}.  
Os ângulos correspondentes nos outros três quadrantes estão também disponíveis.  
Faça @code{load(atrig1);} para usá-lo.

@end defvr

@deffn {Função} cos (@var{x})
 - Cosseno.

@end deffn

@deffn {Função} cosh (@var{x})
 - Cosseno hiperbólico.

@end deffn

@deffn {Função} cot (@var{x})
 - Cotangente.

@end deffn

@deffn {Função} coth (@var{x})
 - Cotangente Hyperbólica.

@end deffn

@deffn {Função} csc (@var{x})
 - Cossecante.

@end deffn

@deffn {Função} csch (@var{x})
 - Cossecante Hyperbólica.

@end deffn

@defvr {Variável de opção} halfangles
Default value: @code{false}

Quando @code{halfangles} for @code{true},
meios-ângulos são simplificados imediatamente.
@c WHAT DOES THIS STATEMENT MEAN EXACTLY ??
@c NEEDS EXAMPLES

@end defvr

@c IS THIS DESCRIPTION ACCURATE ??
@c LET'S BE EXPLICIT ABOUT EXACTLY WHAT ARE THE RULES IMPLEMENTED BY THIS PACKAGE
@defvr {Pacote} ntrig
O pacote @code{ntrig} contém um conjunto de regras de simplificação que são
usadas para simplificar função trigonométrica cujos argumentos estão na forma
@code{@var{f}(@var{n} %pi/10)} onde @var{f} é qualquer das funções 
@code{sin}, @code{cos}, @code{tan}, @code{csc}, @code{sec} e @code{cot}.
@c NEED TO LOAD THIS PACKAGE ??

@end defvr

@deffn {Função} sec (@var{x})
 - Secante.

@end deffn

@deffn {Função} sech (@var{x})
 - Secante Hyperbólica.

@end deffn

@deffn {Função} sin (@var{x})
 - Seno.

@end deffn

@deffn {Função} sinh (@var{x})
 - Seno Hyperbólico.

@end deffn

@deffn {Função} tan (@var{x})
 - Tangente.

@end deffn

@deffn {Função} tanh (@var{x})
 - Tangente Hyperbólica.

@end deffn

@c NEEDS CLARIFICATION AND EXAMPLES
@deffn {Função} trigexpand (@var{expr})
Expande funções trigonometricas e hyperbólicas de
adições de ângulos e de ângulos multiplos que ocorram em @var{expr}.  Para melhores
resultados, @var{expr} deve ser expandida.  Para intensificar o controle do utilizador
na simplificação, essa função expande somente um nível de cada vez,
expandindo adições de ângulos ou ângulos multiplos.  Para obter expansão completa
dentro de senos e co-senos imediatamente, escolha o comutador @code{trigexpand: true}.

@code{trigexpand} é governada pelos seguintes sinalizadores globais:

@table @code
@item trigexpand
Se @code{true} causa expansão de todas as
expressões contendo senos e co-senos ocorrendo subsequêntemente.
@item halfangles
Se @code{true} faz com que meios-ângulos sejam simplificados
imediatamente.
@item trigexpandplus
Controla a regra "soma" para @code{trigexpand},
expansão de adições (e.g. @code{sin(x + y)}) terão lugar somente se
@code{trigexpandplus} for @code{true}.
@item trigexpandtimes
Controla a regra "produto" para @code{trigexpand},
expansão de produtos (e.g. @code{sin(2 x)}) terão lugar somente se
@code{trigexpandtimes} for @code{true}.
@end table

Exemplos:

@c ===beg===
@c x+sin(3*x)/sin(x),trigexpand=true,expand;
@c trigexpand(sin(10*x+y));
@c ===end===
@example
(%i1) x+sin(3*x)/sin(x),trigexpand=true,expand;
                         2           2
(%o1)               - sin (x) + 3 cos (x) + x
(%i2) trigexpand(sin(10*x+y));
(%o2)          cos(10 x) sin(y) + sin(10 x) cos(y)

@end example

@end deffn

@defvr {Variável de opção} trigexpandplus
Valor por omissão: @code{true}

@code{trigexpandplus} controla a regra da "soma" para
@code{trigexpand}.  Dessa forma, quando o comando @code{trigexpand} for usado ou o
comutador @code{trigexpand} escolhido para @code{true}, expansão de adições
(e.g. @code{sin(x+y))} terão lugar somente se @code{trigexpandplus} for
@code{true}.

@end defvr

@defvr {Variável de opção} trigexpandtimes
Valor por omissão: @code{true}

@code{trigexpandtimes} controla a regra "produto" para
@code{trigexpand}.  Dessa forma, quando o comando @code{trigexpand} for usado ou o
comutador @code{trigexpand} escolhido para @code{true}, expansão de produtos (e.g. @code{sin(2*x)})
terão lugar somente se @code{trigexpandtimes} for @code{true}.

@end defvr

@defvr {Variável de opção} triginverses
Valor por omissão: @code{all}

@code{triginverses} controla a simplificação de
composições de funções trigonométricas e hiperbólicas com suas funções
inversas.

Se @code{all}, ambas e.g. @code{atan(tan(@var{x}))} 
e @code{tan(atan(@var{x}))} simplificarão para @var{x}.  

Se @code{true}, a simplificação  de @code{@var{arcfun}(@var{fun}(@var{x}))} 
é desabilitada.

Se @code{false}, ambas as simplificações  
@code{@var{arcfun}(@var{fun}(@var{x}))} e  
@code{@var{fun}(@var{arcfun}(@var{x}))}
são desabilitadas.

@end defvr

@deffn {Função} trigreduce (@var{expr}, @var{x})
@deffnx {Função} trigreduce (@var{expr})
Combina produtos e expoentes de senos e cossenso
trigonométricos e hiperbólicos de @var{x} dentro daqueles de múltiplos de @var{x}.
Também tenta eliminar essas funções quando elas ocorrerem em
denominadores.  Se @var{x} for omitido então todas as variáveis em @var{expr} são usadas.

Veja também @code{poissimp}.

@c ===beg===
@c trigreduce(-sin(x)^2+3*cos(x)^2+x);
@c ===end===
@example
(%i1) trigreduce(-sin(x)^2+3*cos(x)^2+x);
               cos(2 x)      cos(2 x)   1        1
(%o1)          -------- + 3 (-------- + -) + x - -
                  2             2       2        2

@end example

As rotinas de simplificação trigonométrica irão usar informações
declaradas em alguns casos simples.  Declarações sobre variáveis são
usadas como segue, e.g.

@c ===beg===
@c declare(j, integer, e, even, o, odd)$
@c sin(x + (e + 1/2)*%pi);
@c sin(x + (o + 1/2)*%pi);
@c ===end===
@example
(%i1) declare(j, integer, e, even, o, odd)$
(%i2) sin(x + (e + 1/2)*%pi);
(%o2)                        cos(x)
(%i3) sin(x + (o + 1/2)*%pi);
(%o3)                       - cos(x)

@end example

@end deffn

@defvr {Variável de opção} trigsign
Valor por omissão: @code{true}

Quando @code{trigsign} for @code{true}, permite simplificação de argumentos
negativos para funções trigonométricas. E.g., @code{sin(-x)} transformar-se-á em
@code{-sin(x)} somente se @code{trigsign} for @code{true}.

@end defvr

@deffn {Função} trigsimp (@var{expr})
Utiliza as identidades @math{sin(x)^2 + cos(x)^2 = 1} and
@math{cosh(x)^2 - sinh(x)^2 = 1} para simplificar expressões contendo @code{tan}, @code{sec},
etc., para @code{sin}, @code{cos}, @code{sinh}, @code{cosh}.

@code{trigreduce}, @code{ratsimp}, e @code{radcan} podem estar
habilitadas a adicionar simplificações ao resultado.

@code{demo ("trgsmp.dem")} mostra alguns exemplos de @code{trigsimp}.
@c MERGE EXAMPLES INTO THIS ITEM

@end deffn

@c NEEDS CLARIFICATION
@deffn {Função} trigrat (@var{expr})
Fornece uma forma quase-linear simplificada canónica de uma
expressão trigonométrica; @var{expr} é uma fração racional de muitos @code{sin},
@code{cos} ou @code{tan}, os argumentos delas são formas lineares em algumas variáveis (ou
kernels-núcleos) e @code{%pi/@var{n}} (@var{n} inteiro) com coeficientes inteiros. O resultado é uma
fração simplificada com numerador e denominador ambos lineares em @code{sin} e @code{cos}.
Dessa forma @code{trigrat} lineariza sempre quando isso for passível.

@c ===beg===
@c trigrat(sin(3*a)/sin(a+%pi/3));
@c ===end===
@example
(%i1) trigrat(sin(3*a)/sin(a+%pi/3));
(%o1)            sqrt(3) sin(2 a) + cos(2 a) - 1

@end example

O seguinte exemplo encontra-se em
Davenport, Siret, and Tournier, @i{Calcul Formel}, Masson (ou em inglês,
Addison-Wesley), secção 1.5.5, teorema de Morley.

@c ===beg===
@c c: %pi/3 - a - b;
@c bc: sin(a)*sin(3*c)/sin(a+b);
@c ba: bc, c=a, a=c$
@c ac2: ba^2 + bc^2 - 2*bc*ba*cos(b);
@c trigrat (ac2);
@c ===end===
@example
(%i1) c: %pi/3 - a - b;
                                    %pi
(%o1)                     - b - a + ---
                                     3
(%i2) bc: sin(a)*sin(3*c)/sin(a+b);
                      sin(a) sin(3 b + 3 a)
(%o2)                 ---------------------
                           sin(b + a)
(%i3) ba: bc, c=a, a=c$
(%i4) ac2: ba^2 + bc^2 - 2*bc*ba*cos(b);
         2       2
      sin (a) sin (3 b + 3 a)
(%o4) -----------------------
               2
            sin (b + a)

                                        %pi
   2 sin(a) sin(3 a) cos(b) sin(b + a - ---) sin(3 b + 3 a)
                                         3
 - --------------------------------------------------------
                           %pi
                   sin(a - ---) sin(b + a)
                            3

      2         2         %pi
   sin (3 a) sin (b + a - ---)
                           3
 + ---------------------------
             2     %pi
          sin (a - ---)
                    3
(%i5) trigrat (ac2);
(%o5) - (sqrt(3) sin(4 b + 4 a) - cos(4 b + 4 a)

 - 2 sqrt(3) sin(4 b + 2 a) + 2 cos(4 b + 2 a)

 - 2 sqrt(3) sin(2 b + 4 a) + 2 cos(2 b + 4 a)

 + 4 sqrt(3) sin(2 b + 2 a) - 8 cos(2 b + 2 a) - 4 cos(2 b - 2 a)

 + sqrt(3) sin(4 b) - cos(4 b) - 2 sqrt(3) sin(2 b) + 10 cos(2 b)

 + sqrt(3) sin(4 a) - cos(4 a) - 2 sqrt(3) sin(2 a) + 10 cos(2 a)

 - 9)/4

@end example

@end deffn


