Cosinus en Python
Excuses si c'est normal, mais je n'ai pas trouvé de l'aide dans le python manuel ou google.
Je suis en train d'essayer de trouver le cosinus d'une valeur à l'aide de python.
c'est à dire cos-1(x)
Personne ne sait comment faire cela?
Grâce
Vous devez vous connecter pour publier un commentaire.
Nous avons le
acos
function, qui renvoie l'angle en radians.math.degrees
de la fonction. Par exemple,math.degrees(math.acos(0))
sera de retour90.0
.Pour augmenter les réponses correctes à utiliser
math.acos
, il est également utile de savoir qu'il existe des fonctions mathématiques adapté pour les nombres complexes danscmath
:Bâton avec
math.acos
si vous n'êtes intéressé que par des nombres réels,cmath
. J'ai écrit ma propre classe pour les nombres complexes et dominante des opérateurs.Vous êtes à la recherche pour le
math.acos()
fonction.En réponse à l'aide de cosinus pour trouver retour angles par les mathématiques.acos, il est très facile tant que l'angle est <=90* une fois que vous allez passé, python n'ont aucun moyen de se différencier de son angle voulu.
Observer.
Ci-dessus, j'ai demandé à python me récupérer le cosinus d'un 5 radian de l'angle, et il m'a donné .28~ Grande, ci-dessous je vais demander à python pour me donner le radian qui a un .28~ cosinus. Doit être de 5, à droite? Littéralement m'a juste dit qu'il était.
Mal! Python renvoie 1.28~ radians. La raison en est évidente lorsque tracées visuellement, 1.28 rad a le même cosinus comme 5rad, ils sont inverse angles. Chaque angle de partage la même condition sine avec un autre angle (et -sinusoïdale avec les deux autres).
c'est à dire 5/175* partager équivalent d'un sinus. Ils partagent inversement proportionnelle cosinus .99~/-.99 respectivement. Leur -sine cousins serait 185 et 355. La relation mème ici, c'est que tous ces angles de partager la même déviation angulaire de l'axe horizontal. 5*.
La raison python renvoie 1.28 et pas 5, c'est que tous les ordinateurs et les calculatrices sont basées sur un abaque de données de type table d'un angle en radian, sa condition sine, cos, tan, etc etc. Alors, quand je mathématiques.acos(x), python demande le kernel de regarder à travers les données de la table pour quel que soit l'angle a un cosinus de x, et quand il le trouve, il retourne à la première entrée, il apparaît avec. et puis python donne à l'angle de moi.
En raison de ce partage, proportionnelle symétrie, sin/cos ratios de répéter fréquemment. Et vous êtes susceptible de voir la même figure, à de multiples reprises. Il n'y a aucun moyen pour python, ou de l'OS, afin de déterminer la différence entre les deux angles vous avez réellement besoin, sans faire de la logique supplémentaire qui tient compte de l' -/+ de la valeur de l'angle, la condition sine. Ou, à l'angle de la tangente.
ou, vu Cartesianly,
Donc, si, pour quelque raison que ce soit, j'ai besoin de 5 radians être choisi (pour un vecteur de dessin ou de jeu pour déterminer les différents vecteurs ennemis du joueur), je dois faire un peu de type de si/alors la logique de la comparaison de la sines/tangentes.
math.atan2
en Python). Il reprend exactement les soins de la lyre-le choix logique pour vous, probablement plus vite et mieux que la plupart ne le pourrait.Vous pouvez également utiliser
arccos
à partir du modulenumpy
AVERTISSEMENT: Pour les scalaires de la
numpy.arccos()
fonction est beaucoup plus lent (~ 10x) quemath.acos
. Voir le post iciNéanmoins, la
numpy.arccos()
est adapté pour les séquences, tout enmath.acos
ne l'est pas. 🙂mais
ou il suffit d'écrire une fonction de votre propre pour la développement de taylor de cos^{ -1}
ce serait plus de temps (et peut-être plus lent), mais est l'approche plus générale