Poids/Scilab 2778188 29483944 2008-05-11T23:05:58Z Jejecam 304402 cat. Le programme [[Scilab]] suivant a été utilisé pour l'article ''[[Poids]]'', pour déterminer les maximum et minimum de ''g'' et l'angle maximum de ''g'' avec la verticale. Il est donné à des fins de contrôle (rectification d'une possible erreur). On considère ici un modèle très simplifié de la Terre : * Terre sphérique de rayon constant ''R'' = {{unité|6380|km}} ; * vitesse de rotation de 2π radians par un jour, un jour faisant {{unité|24|h}} de {{unité|3600|s}} chacune ; * l'axe ''y'' est l'axe de rotation de la Terre, l'axe ''x'' est dans le plan de l'équateur. <source lang="matlab"> // ********** Constantes R = 6.38e6; // rayon de la Terre en m omega = 2*%pi/(24*3600); //vitesse de rotation de la Terre M = 5.98e24; // masse de la Terre en kg G = 6.67428e-11; // constante gravitationnelle en m3kg-1s-2 g1 = G*M/R^2; // partie constante de l'accélération de la gravité // ********** Fonctions // rayon du point par rapport à l'axe de rotation // à la latitude a function [y] = rayon(a) y = R*cos(a); endfunction // accélération centrifuge // à la latitude a function [y] = accelerationcentrifuge(a) y = omega^2*rayon(a); endfunction // ********** Programme principal alpha=0:0.0001:%pi/2; // latitude de 0 à 90° // initialisation des valeurs extrêmes anglemax=0; latitudeanglemax=0; gmin=10; latitudegmin=0; gmax=9; latitudegmax=0; for latitude=alpha g2=accelerationcentrifuge(latitude); g1x=-g1*cos(latitude); // accélération selon x due à l'attraction terrestre seule gx=g1x+g2; gy=-g1*sin(latitude); norme=sqrt(gx^2 + gy^2); // accélération de la gravité totale angle=acos((gx*g1x + gy^2)/(g1*norme)); // angle entre l'accélération de la gravité // et la verticale (à partir du produit scalaire) // détermination des extrema if angle>anglemax then anglemax=angle; // écart maximum à l'axe point-centre de la Terre latitudeanglemax=latitude; // latitude où l'on a cet angle maximal end if norme>gmax then gmax=norme; // norme maximale de g latitudegmax=latitude; // latitude où l'on a cette norme maximale end if norme<gmin then gmin=norme;// norme minimale de g latitudegmin=latitude; // latitude où l'on a cette norme minimale end end // affichage des résultats gmax latitudegmax*180/%pi gmin latitudegmin*180/%pi anglemax latitudeanglemax*180/%pi </source> Les résultats obtenus sont les suivants : gmax = 9.8053759 ans = 89.994481 gmin = 9.7716353 ans = 0. anglemax = 0.0017235 ans = 44.948539 On remarque que la gravité maximale est inférieure à la gravité mesurée aux pôles ({{unité|9.83|m⋅s<sup>-2</sup>}}), probablement en raison de l'hypothèse de rayon constant. [[Catégorie:Logiciel de statistiques]] [[Catégorie:Logiciel scientifique libre]] [[Catégorie:Logiciel de calcul numérique]] [[Catégorie:Physique]]