Vous êtes sur la page 1sur 2

% Projet de geodesie geometrique

% Problème direct sur une geodesique et visualisation de la geodesique sur


% la sphère auxilliaire

%Données d'entrées

a=input('Entrez le demi grand axe de l ellipsoide:');


e=input('Entrez l excentricite: ');
f=1-sqrt(1-e^2);% CAlcul de l'aplatissement
b=a*(1-f);
e1=e^2/(1-e^2); % c'est le caclul de la 2eme excentricité au carré
phi1=input('Entrez la latitude du point de depart:');
landa1=input('Entrez la longitude du point de depart ');
az1=input('Entrez azimut du point de depart');
s=input('Entrez la distance geodesique: ');
%1- Calcul de la latitude reduite du point de depart
b1=atan((1-f)*tan(phi1));
%2- Calcul de la latitude reduite du vertex à partir de la relation de
% clairaut
b0=acos(cos(b1)*sin(az1));
%3- Calcul de la constante w²
w2=e1^2*(sin(b0))^2;
%4- Calcul de la distance angulaire sur la sphere auxilliaire pour le point
% de depart
sigma1=atan(tan(b1)/cos(az1));
%5- Calcul de l' azimut de la geodesique a l'equateur
azE=asin(cos(b0));
%6- Calcul des constantes de Vincenty A et B
A=1+(w2/16384)*(4096+w2*(-768+w2*(320-175*w2)));
B=(w2/1024)*(256+w2*(-128+w2*(74-47*w2)));
%7- Calcul de la distangulaire sur le grand cercle de la sphere auxilliaire
sigma= s/(b*A);
sigmaM=(2*sigma1+sigma)/2;
Dsigma=B*sin(sigma)*(cos(2*sigmaM)+(B/4)*(cos(sigma)*(2*(cos(2*sigmaM))^2-1)-
(B/6)*cos(2*sigmaM)*(-3+4*(sin(sigma))^2)*(-3+4*(cos(2*sigmaM)^2))));
while Dsigma<10^-20;
sigma=sigma+Dsigma;
sigmaM=(2*sigma1+sigma)/2;
Dsigma=B*sin(sigma)*(cos(2*sigmaM)+(B/4)*(cos(sigma)*(2*(cos(2*sigmaM))^2-
1)-(B/6)*cos(2*sigmaM)*(-3+4*(sin(sigma))^2)*(-3+4*(cos(2*sigmaM)^2))));
end
%8-Calcul de la latitude reduite du point d'arrivé
b2=atan((sin(b1)*cos(sigma)+cos(b1)*sin(sigma)*cos(az1))/sqrt((sin(azE)^2)+
(sin(b1)*sin(sigma)-cos(b1)*cos(sigma)*cos(az1))^2));
%9 Calcul de la latitude du point d'arrivée
phi2=atan(tan(b2)/(1-f));
%10 Calcul de la différence de longitude sur la sphère auxiliaire
Du=atan((sin(sigma)*sin(az1))/(cos(b1)*cos(sigma)-
sin(b1)*sin(sigma)*cos(az1)));
%11 Calcul de la constante C de Vincenty
C=(f*(cos(azE)^2)/16)*(4+f*(4-3*(cos(azE)^2)));
%12 Calcul de la différence de longitude sur l'ellipsoide
Dlanda=Du-(1-C)*f*sin(azE)*(sigma+C*sin(sigma)*(cos(2*sigmaM)+C*cos(sigma)*(-
1+2*(cos(2*sigmaM)^2))));
%13 Calacul de l'azimut d'arrivée et de l'azimut inverse
az2=atan(sin(azE)/(cos(b1)*cos(sigma)*cos(az1)-sin(b1)*sin(sigma)));
if az2<pi
azinv=az2+pi;
else
azinv=az2-pi;
end
disp=(['l azimut d arrivée et son inverse sont:',
num2str(daz2),num2str(azinv)]);

Vous aimerez peut-être aussi