Função cos() bugada? [RESOLVIDO]

1. Função cos() bugada? [RESOLVIDO]

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 30/07/2014 - 14:55h

Eu usei a função cos() da math.h para calcular o cosseno e ela nunca retorna valor negativo. Por acaso isso é um bug? Ou eu estou esquecendo de alguma regra matemática básica. Eu acho estranho porque a função sin() retorna valores negativos. Eu pesquisei no google o cosseno de algum ângulo e ele me mostra um número positivo, até aí ok, só que quando pesquiso o seno ele só mostra números positivos.

Fiquei confuso e não sei qual é o certo, se é o seno que às vezes pode ser negativo ou se o cosseno é sempre positivo?


  


2. MELHOR RESPOSTA

Paulo
paulo1205

(usa Ubuntu)

Enviado em 30/07/2014 - 20:21h

Sam L. escreveu:

Pois é, mas acontece que estou trabalhando com vetores bidimensionais e a função cos() nunca retorna negativo para qualquer valor do vetor. Eu me deparei com esse erro quando tentava calcular o ângulo de dois vetores unitários, a cos() sempre retornava um valor não negativo e não entendi como a sin retorna os valores normais.

Mas vou continuar a estudar o erro, talvez esteja fazendo um cálculo errado e não reparei nisso ainda.


Se você está tentando calcular o ângulo entre dois vetores v1 e v2, então provavelmente você deve estar trabalhando com o triângulo formado por esses dois vetores mais o terceiro vetor v2-v1, e usando a lei dos cossenos, que enuncia

|v2-v1|²=|v1|²+|v2|²-2·|v1|·|v2|·cos(theta)


e que pode ser reduzida à forma

cos(theta)=v1·v2/(|v1|·|v2|)


(em outras palavras, o cosseno do ângulo theta, que fica entre v1 e v2, é igual ao produto escalar entre esses vetores dividido pelo produto dos seus respectivos módulos).

A expressão acima lhe dá o valor do cosseno do ângulo theta. Para chegar ao valor de theta propriamente, você deve usar a função arco-cosseno. Na biblioteca do C, ela se chama acos(), e recebe um argumento na faixa [-1; 1] (o contradomínio da função cosseno) e devolve um valor na faixa [0; pi] (lembrando que a função cosseno é periódica e ímpar, i.e. cos(x)=cos(-x)).

3. Re: Função cos() bugada? [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 30/07/2014 - 15:14h

Eu diria que você nunca tem que converter para graus. Todas as funções trigonométricas da biblioteca matemática só trabalham com radianos.

Você provavelmente só vai querer usar graus para exibir na tela (ou ler do teclado) valores de ângulo para usuários que sejam leigos em Matemática.


4. Re: Função cos() bugada? [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 30/07/2014 - 18:16h

Pode postar o codigo com erro ?

Que eu me lembro o cos nunca retorna valor negativo

T+


5. Re: Função cos() bugada? [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 30/07/2014 - 19:00h

Thihup escreveu:

Pode postar o codigo com erro ?

Que eu me lembro o cos nunca retorna valor negativo

T+


Errado. A função cosseno é periódica, com período igual a 2·pi. Se você fizer y=cos(x) é simétrica em relação ao eixo y, valendo 1 quando x==0, 0 quando x==pi/2, e -1 quando x==pi.


6. Re: Função cos() bugada? [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 30/07/2014 - 19:09h

paulo1205 escreveu:

Thihup escreveu:

Pode postar o codigo com erro ?

Que eu me lembro o cos nunca retorna valor negativo

T+


Errado. A função cosseno é periódica, com período igual a 2·pi. Se você fizer y=cos(x) é simétrica em relação ao eixo y, valendo 1 quando x==0, 0 quando x==pi/2, e -1 quando x==pi.





7. Re: Função cos() bugada? [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 30/07/2014 - 19:11h

paulo1205 escreveu:

Thihup escreveu:

Pode postar o codigo com erro ?

Que eu me lembro o cos nunca retorna valor negativo

T+


Errado. A função cosseno é periódica, com período igual a 2·pi. Se você fizer y=cos(x) é simétrica em relação ao eixo y, valendo 1 quando x==0, 0 quando x==pi/2, e -1 quando x==pi.


Eu Disse :
"Que eu me lembro o cos nunca retorna valor negativo"

Eu tinha visto acho que apenas 2 vezes o conteúdo de trigonometria,mas faz MUITO tempo

Ok ?

Vou (re)aprender no colégio Novamente

T+







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts