[ << ] | [ < ] | [ Acima ] | [ > ] | [ >> ] | [Topo] | [Conteúdo] | [Índice] | [ ? ] |
As funções descritas nesse capítulo fornecem suporte aos números complexos. Os algoritmos procuram evitar underflows e overflows intermediários e desnecessários, permitindo que as funções sejam avaliadas sobre o plano complexo tanto quanto possível.
Para funções avaliadas de múltiplas formas o corte de ramo tem sido escolhido seguindo as convenções dos autores Abramowitz e Stegun no Handbook of Mathematical Functions (16). As funções retornam valores principais que são os mesmos valores retornados na calculadora GNU Calc, os quais por sua vez são os mesmos valores constantes em Common Lisp, The Language (Second Edition)(17) e nas calculadoras da série HP-28/48.
Os tipos complexos são definidos no arquivo de cabeçalho ‘gsl_complex.h’, enquanto que as correspondentes funções complexas e operações aritméticas são definidas em ‘gsl_complex_math.h’.
[ << ] | [ < ] | [ Acima ] | [ > ] | [ >> ] | [Topo] | [Conteúdo] | [Índice] | [ ? ] |
Números complexos são representados usando o tipo gsl_complex
. A
representação desse tipo pode variar conforme a plataforma e
não deve ser acessada diretamente. As funções e macros descritas
abaixo permitem que números complexos sejam tratados de uma forma portável.
Por referência, a forma padrão do tipo gsl_complex
é
fornecida através da seguinte estrutura,
typedef struct { double dat[2]; } gsl_complex;
A parte real e a parte imaginária são armazenadas em elementos vizinhos de um vetor
estático de dois elementos (18). Isso elimina qualquer insersão de dados entre a parte
real e a parte imaginária, dat[0]
e dat[1]
, permitindo que a estrutura
seja mapeada corretamente dentro de pacotes de vetores estáticos complexos.
Essa função usa as componentes cartesianas retangulares
(x,y) para retornar o número complexo z = x + i y. Uma versão modificada dessa função é usada quando HAVE_INLINE
for definida.
Essa função retorna o número complexo z = r \exp(i \theta) = r (\cos(\theta) + i \sin(\theta)) a partir da representação polar (r,theta).
Essas macros retorna as partes real e imaginárias do número complexo z.
Essa macro usa as componentes cartesianas (x,y) para ajustar as partes reais e imaginárias do número complexo apontado por zp. Por exemplo,
GSL_SET_COMPLEX(&z, 3, 4)
ajusta z para ser 3 + 4i.
Essas macros permitem que as partes real e imaginárias do número complexo apontado por zp sejam ajustados independentemente.
[ << ] | [ < ] | [ Acima ] | [ > ] | [ >> ] | [Topo] | [Conteúdo] | [Índice] | [ ? ] |
Essa função retorna o argumento do número complexo z, \arg(z), onde -\pi < \arg(z) <= \pi.
Essa função retorna o módulo (19) do número complexo z, |z|.
Essa função retorna o quadrado do módulo do número complexo z, |z|^2.
Essa função retorna o logaritmo natural do módulo do
número complexo z, \log|z|. A função gsl_complex_logabs permite uma avaliação
precisa de \log|z| quando |z| está próximo da unidade. A avaliação
direta de log(gsl_complex_abs(z))
pode conduzir a perda de
precisão nesse caso.
[ << ] | [ < ] | [ Acima ] | [ > ] | [ >> ] | [Topo] | [Conteúdo] | [Índice] | [ ? ] |
Essa função retorna a soma de dois números complexos a e b, z=a+b.
Essa função retorna a diferença de dois números complexos a e b, z=a-b.
Essa função retorna o produto dos números complexos a e b, z=ab.
Essa função retorna o quaciente dos números complexos a e b, z=a/b.
Essa função retorna a soma do número complexo a com o número real x, z=a+x.
Essa função retorna a diferença entre o número complexo a e o número real x, z=a-x.
Essa função retorna o produto do número complexo a e o número real x, z=ax.
Essa função retorna o quociente entre o número complexo a e o número real x, z=a/x.
Essa função retorna a soma do número complexo a e o número imaginário puro iy, z=a+iy.
Essa função retorna a diferença entre o número complexo a e o número imaginário puro iy, z=a-iy.
Essa função retorna o produto do número complexo a e o número imaginário puro iy, z=a*(iy).
Essa função retorna o quociente entre o número complexo a e o número imaginário puro iy, z=a/(iy).
Essa função retorna o conjugado do número complexo z, z^* = x - i y.
Essa função retorna o inverso, ou recíproco, do número complexo z, 1/z = (x - i y)/(x^2 + y^2).
Essa função inverte o sinal do número complexo z, -z = (-x) + i(-y).
[ << ] | [ < ] | [ Acima ] | [ > ] | [ >> ] | [Topo] | [Conteúdo] | [Índice] | [ ? ] |
Essa função retorna a raíz quadrada do número complexo z, \sqrt z. O corte do ramo é o eixo real negativo. O resultado sempre localiza-se na metade direita do plano complexo.
Essa função retorna a raíz quadrada complexa do número real x, onde x pode ser negativo.
A função retorna o resultado do número complexo z elevado ao expoente complexo a, z^a. O resultado de z^a é calculado como \exp(\log(z)*a) usando logaritmo complexo e exponencial complexa.
Essa função retorna o número complexo z elevado ao expoente real x, z^x.
Essa função retorna a exponencial complexa do número complexo z, \exp(z).
Essa função retorna o logaritmo natural complexo (base e) do número complexo z, \log(z). O corte de ramo é o eixo real negativo.
Essa função retorna o logaritmo complexo de base 10 do número complexo z, \log_10 (z).
Essa função retorna o logaritmo complexo de base b do número complexo z, \log_b(z). Essa quantidade é calculada como a razão \log(z)/\log(b).
[ << ] | [ < ] | [ Acima ] | [ > ] | [ >> ] | [Topo] | [Conteúdo] | [Índice] | [ ? ] |
Essa função retorna o seno complexo do número complexo z, \sin(z) = (\exp(iz) - \exp(-iz))/(2i).
Essa função retorna o cosseno complexo do número complexo z, \cos(z) = (\exp(iz) + \exp(-iz))/2.
Essa função retorna a tangente complexo do número complexo z, \tan(z) = \sin(z)/\cos(z).
Essa função retorna a secante complexa do número complexo z, \sec(z) = 1/\cos(z).
Essa função retorna a cossecante complexa do número complexo z, \csc(z) = 1/\sin(z).
Essa função retorna a cotangente complexa do número complexo z, \cot(z) = 1/\tan(z).
[ << ] | [ < ] | [ Acima ] | [ > ] | [ >> ] | [Topo] | [Conteúdo] | [Índice] | [ ? ] |
Essa função retorna o arco seno complexo do número complexo z, \arcsin(z). Os cortes de ramo estão sobre o eixo real, antes do -1 e após o 1.
Essa função retorna o arco seno complexo do número real z, \arcsin(z). Para z entre -1 e 1, a função retorna um valor real no intervalo [-\pi/2,\pi/2]. Para z menor que -1 o resultado tem uma parte real de -\pi/2 e uma parte imaginária positiva. Para z maior que 1 o resultado tem uma parte real de \pi/2 e a parte negativa imaginária.
Essa função retorna o arco cosseno complexo do número complexo z, \arccos(z). Os cortes de ramo estão sobre o eixo real, menor que -1 e maior que 1.
Essa função retorna o arco cosseno complexo do número real z, \arccos(z). Para z entre -1 e 1, a função retorna um valor real no intervalo [0,\pi]. Para z menor que -1 o resultado tem uma parte real de \pi e uma parte imaginária negativa. Para z maior que 1 o resultado é puramente imaginário e positivo.
Essa função retorna o arco tangente complexo do número complexo z, \arctan(z). Os cortes de ramo estão sobre o eixo imaginário, abaixo de -i e acima de i.
Essa função retorna o arco secante complexo do número complexo z, \arcsec(z) = \arccos(1/z).
Essa função retorna o arco secante complexo do número real z, \arcsec(z) = \arccos(1/z).
Essa função retorna o arco cossecante complexo do número complexo z, \arccsc(z) = \arcsin(1/z).
Essa função retorna o arco cossecante complexo do número real z, \arccsc(z) = \arcsin(1/z).
Essa função retorna arco cotangente complexo do número complexo z, \arccot(z) = \arctan(1/z).
[ << ] | [ < ] | [ Acima ] | [ > ] | [ >> ] | [Topo] | [Conteúdo] | [Índice] | [ ? ] |
Essa função retorna seno hiperbólico complexo do número complexo z, \sinh(z) = (\exp(z) - \exp(-z))/2.
Essa função retorna cosseno hiperbólico complexo do número complexo z, \cosh(z) = (\exp(z) + \exp(-z))/2.
Essa função retorna a tangente hiperbólica complexa do número complexo z, \tanh(z) = \sinh(z)/\cosh(z).
Essa função retorna a secante hiperbólica complexa do númer complexo z, \sech(z) = 1/\cosh(z).
Essa função retorna a cossecante hiperbólica complexa do número complexo z, \csch(z) = 1/\sinh(z).
Essa função retorna a cotangente hipérbólica complexa do número complexo z, \coth(z) = 1/\tanh(z).
[ << ] | [ < ] | [ Acima ] | [ > ] | [ >> ] | [Topo] | [Conteúdo] | [Índice] | [ ? ] |
Essa função retorna o arco seno hiperbólico complexo do número complexo z, \arcsinh(z). O corte de ramo está sobre o eixo imaginário, abaixo de -i e acima de i.
Essa função retorna o arco cosseno hiperbólico complexo do número complexo z, \arccosh(z). O ramo de corte está sobre o eixo real, menor que 1. Note que nesse caso usamo a raíz quadrada negativa na fórmula 4.6.21 de Abramowitz & Stegun fornecendo \arccosh(z)=\log(z-\sqrt{z^2-1}).
Essa função retorna arco cosseno hiperbólico complexo do número real z, \arccosh(z).
Essa função retorna o arco tangente hiperbólico complexo do número complexo z, \arctanh(z). O corte de ramo está sobre o eixo real, menor que -1 e maior que 1.
Essa função retorna o arco tangente hiperbólico complexo do número real z, \arctanh(z).
Essa função retorna o arco secante hiperbólico complexo do número complexo z, \arcsech(z) = \arccosh(1/z).
Essa função retorna o arco cossecante hiperbólico complexo do número complexo z, \arccsch(z) = \arcsin(1/z).
Essa função retorna o arco tangente hiperbólico do número complexo z, \arccoth(z) = \arctanh(1/z).
[ << ] | [ < ] | [ Acima ] | [ > ] | [ >> ] | [Topo] | [Conteúdo] | [Índice] | [ ? ] |
As implementações das funções elementares e das funções trigonométricas são baseadas nos seguintes artigos,
As fórmulas gerais e detalhes dos cortes de ramo podem ser encontrados nos seguinte livros,
[ << ] | [ >> ] | [Topo] | [Conteúdo] | [Índice] | [ ? ] |
Esse documento foi gerado em 23 de Julho de 2013 usando texi2html 5.0.