A primeira lei de Kepler
A excentricidade dunha elipse defínese como o cociente entre a semidistancia focal, , e o semieixe maior, :
. Tendo en conta que , sendo o semieixe menor da elipse, a excentricidade pódese expresar como:
Ademais, o semieixe menor pódese calcular, en función da excentricidade da elipse e o semiexe maior , como .
En consecuencia, unha órbita cunha excentricidade cercana a 0 será practicamente unha circunferencia, e canto máis se achegue a 1 a excentricidade máis "achatada" será a elipse.
Exercicio
De acordo coa primeira lei de Kepler, os planetas describen órbitas elípticas arredor do Sol, estando este situado nun dos focos. Compara a forma das órbitas que describen os distintos planetas do Sistema Solar e a situación dos focos, utilizando para isto as súas excentricidades:
Corpo celeste | Excentricidade |
---|---|
Mercurio | 0.2056 |
Venus | 0.0068 |
Terra | 0.0167 |
Marte | 0.0934 |
Xúpiter | 0.0483 |
Saturno | 0.0560 |
Urano | 0.0461 |
Neptuno | 0.0097 |
Cometa Halley | 0.9680 |
Comezamos definindo a variable t:
var('t')
e creando unha lista cos valores da excentricidade para os planetas e o cometa Halley:
valores = [0.2056, 0.0068, 0.0167, 0.0934, 0.0483, 0.0560, 0.0461, 0.0097, 0.9680]
Como só queremos estudar a forma das traxectorias, e non o seu tamaño real, facemos en todas as elipses para poder comparalas:
a = 1
Creamos unha interacción para escoller o planeta:
@interact def _(planeta = selector(['Mercurio', 'Venus', 'Terra', 'Marte', 'Xupiter', 'Saturno', 'Urano', 'Neptuno', 'Cometa Halley'], label='Escolle un corpo celeste:')):
Según cal sexa o planeta elixido, asignamos á excentricidade o valor correspondente:
if planeta == 'Mercurio': excentricidade = valores[0] if planeta == 'Venus': excentricidade = valores[1] if planeta == 'Terra': excentricidade = valores[2] if planeta == 'Marte': excentricidade = valores[3] if planeta == 'Xupiter': excentricidade = valores[4] if planeta == 'Saturno': excentricidade = valores[5] if planeta == 'Urano': excentricidade = valores[6] if planeta == 'Neptuno': excentricidade = valores[7] if planeta == 'Cometa Halley': excentricidade = valores[8]
A continuación calculamos e :
b = a*(1 - excentricidade^2)^(1/2) c = a*excentricidade
e creamos a gráfica da elipse:
x(t) = a*cos(t) y(t) = b*sin(t) elipse = parametric_plot((x(t),y(t)), (t, 0, 2*pi), color='#556B2F') focos = point([(c,0), (-c,0)], color='brown', size='25', zorder=99)
Finalmente presentamos os resultados:
print "Excentricidade: " + str(n(excentricidade, digits=4)) show(elipse + focos, aspect_ratio=1, ymin=-1, ymax=1, gridlines='minor', ticks=[1,1])
Proba a interacción para ver como son as órbitas:
Solución b
Nesta outra versión do programa creamos un bucle que recorre todos os planetas e mostra as traxectorias por pantalla: