Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 1229
Réponses : 4
Type : discussion
Etat : réponses autorisées

Géodésie

ld le 15/02/2015 à 19:55
EDIT
Bonsoir les filles !
Voilà de quoi calculer la distance entre deux points de latitude/longitude connues sur notre planète.
Code
:Degré
:Disp "LATITUDE°
:Prompt A,B
:Disp "LONGITUDE°
:Prompt C,D
:Disp 6378arccos(sin(A)sin(B)+cos(A)cos(B)cos(D-C))pi/180,"KM"

Mes sources :
http://web.archive.org/web/202[...]de_latitude.pdf
https://integraledesmaths.page[...]eoAEDistSph.htm
https://www.dcode.fr/distance-geographique
Et Linkakro évidemment ;D
linkakro le 15/02/2015 à 23:02
Citation
6378000arccos(sin(phiA)sin(phiB)+cos(phiA)cos(phiB)cos(lamdaB-lamdaA))

edit: le message précédent mentionnait des problèmes de calculs, mais cela a été résolu plus tard et le message modifié

Le produit rayon*angle nécessite les radians. Les calculs intermédiaires peuvent utiliser autant degré que radian pourvu qu'on soit cohérent.
Tu peux forcer les unités indépendamment du mode avec les symboles du menu angle en suffixes.

J'ai saisi dans une ti84plus le calcul du cas particulier du demi équateur et le résultat est cohérent (à moins d'1% près) : 20_037_077 mètres.
Ta saisie doit être erronée.
Je songe que arccos() en français est nommée cos^-1() en anglais dans les TI. Phi est la latitude, lamda la longitude.
ld le 15/02/2015 à 23:30
Ok c'est bon je viens de comprendre tout seul.
Il fallait mettre PI au lieu de 180.
En fait faut d'abord convertir la latitude et la longitude en radian.
Dsl, j'suis nul on m'a donner mon bac S avec 4/20 en maths, c'est pas une blague ! cry.gif
Pitié enterez ce post moodforlove.gif
linkakro le 15/02/2015 à 23:41
menu angle 2nde+matrice.
^r et ° représentent radian et degrés. Les coefficients 180/pi et pi/180 sont appliqués selon le mode.
^r applique 180/pi pour (convertir radian en degré) si le mode est degré, applique 1 en mode radian.
° applique pi/180 (pour convertir degré en radian) si le mode est radian, applique 1 en mode degré.

On peut donc écrire une formule comme celle-ci pour l'opération directe.
Code
 // variables A,B,C,D en degrés !
 // expression qui s'adapte au mode de la calculatrice
sin(A°)sin(B°)+ cos(A°)cos(B°)cos((C-D)°)

-- Problème :
On ne peut pas simplement convertir à volonté, mais cela tient bien compte du mode de la calculatrice.
On peut facilement adapter à l'antécédent des fonction ainsi, mais c'est plus compliqué pour l'image des réciproques.
Exemple dans notre cas : avec des entrées en degrés et le mode degré, arccos produira des degrés, alors que le produit rayon*angle nécessite des radians. Puisque les opérateurs ne permettent pas dans ce mode degré de convertir en radian, il faut le faire nous-même, et on perd la possibilité d'utiliser le mode radian avec la même formule. Ainsi j'impose le mode degré.

Code
Disp "°LAT
Prompt A,B
Disp "°LONG
Prompt C,D
Degree // mode degré impératif pour cette expression !
 // c'est impératif à cause de l'image du arccos
Disp 6378000*arccos( sin(A)sin(B)+ cos(A)cos(B)cos(D-C) ) *pi/180
edit : corrigé C-D en D-C (signalé message suivant)
ld le 16/02/2015 à 00:41
J'aime l'idée, je prends !
Par contre c'est (D-C) et pas (C-D).