Na mecânica clássica, o problema de Kepler é um caso especial do problema de dois corpos, no qual os dois corpos interagem por uma força central que varia em intensidade com o inverso do quadrado da distância r entre eles. O problema consiste em encontrar a posição dos dois corpos ao longo do tempo, dadas suas massas, posições e velocidades.
Vamos considerar o caso em que a posição de uma das massas coincide com a do centro de massa (como no sistema sol+planeta). Por se tratar um problema de força central, o movimento é confinado em um plano. Isso nos permite descrevê-lo em coordenadas polares.
O potencial e a energia cinética são dados respectivamente por V(r)=−GMmreT=12m(˙r2+r2˙ϕ2).
%display latex
reset()
Variáveis dinâmicas
var('t m G M', domain='positive')
phi(t) = function('phi')(t)
r(t) = function('r')(t)
assume(r(t)>0)
assumptions()
Vetor posição
R = vector([r(t)*cos(phi(t)),r(t)*sin(phi(t))]);R
R.norm().simplify_trig().canonicalize_radical()
Potencial
V = -G*M*m/(r(t));V
Energia cinética
T = m/2*diff(R,t)*diff(R,t);T
T = T.simplify_trig();T
Lagrangiana
L = T-V;L
Equações de Euler-Lagrange ∂L∂qi(t,q(t),˙q(t))−ddt∂L∂˙qi(t,q(t),˙q(t))=0
Usaremos as quantidades conservadas no lugar das equações de Euler-Lagrange
Variáveis simbólicas para energia e momento angular
var('E', domain='real')
var('l', latex_name=r'\ell', domain='positive')
Energia conservada
eq_E = E == T+V;eq_E
def formal_derivative(f, x):
r"""
The formal derivative of `f` with respect to the symbolic function `x`.
"""
tempX = SR.symbol()
return f.subs({x: tempX}).diff(tempX).subs({tempX: x})
formal_derivative(L,phi)
Momento angular conservado
eq_phi = formal_derivative(L,diff(phi,t)) ==l;eq_phi
eq_phi1 = solve(eq_phi,diff(phi(t),t))[0];eq_phi1
Substituindo o momento angular na energia conservada
eq_E1 = eq_E.subs(eq_phi1);eq_E1
eq_r = solve(eq_E1,diff(r(t),t))[1];eq_r
Pela regra da cadeia, dϕdr=dϕdtdrdt
Usaremos a variável simbólica φ no lugar da função ϕ e uma variável simbólica para a função r(t).
vr = var('vr', latex_name='r', domain='positive')
vp = var('vp', latex_name=r'\varphi')
vr
phrt = integral((eq_phi1.rhs()/eq_r.rhs()).subs({r(t):vr}),vr, hold=True);phrt
Calculando a integral
assume(G^2*M^2*m^3+2*E*l^2>0)
phrt.unhold()
Solução em termos de φ
eq_vp = vp ==phrt.unhold();eq_vp
sol_vp = sin(eq_vp.lhs()) == sin(eq_vp.rhs());sol_vp
sol_vp = sol_vp.trig_simplify();sol_vp
Isolando o r
sol_r = solve(sol_vp,vr)[0];sol_r
Solução de livro texto em termos da excentricidade ϵ da órbita
ep = var('epsilon', domain='real');ep
eq_ep = ep == sqrt(1+2*l^2*E/(m*(G*m*M)^2));eq_ep
Para incluir a excentricidade na solução, isolamos E na expressão da excentricidade
assume(ep>0)
sub_E = solve(eq_ep,E)[0]
forget(ep>0)
sub_E
e substituimos na solução
sol_r = sol_r.subs(sub_E).canonicalize_radical().factor();sol_r
Faremos φ→φ−π/2 pra deixar com a cara mais usual nos livros texto.
sol_r = sol_r.subs(vp=vp-pi/2).expand_trig();sol_r
Deixando os dois lados sem dimensão
sol_r = sol_r*G*M*m^2/l^2;sol_r
Vejamos os gráficos das órbitas em coordenadas polares (polar=True)
orbita_0 = plot(sol_r.rhs().subs(ep==0),(vp,0,2*pi),polar=True,aspect_ratio=1, color='red', axes=False, frame=True, title=r'Órbita circular ($\epsilon=0$)')
orbita_0
centro = circle((0,0),.01, fill=True, color='black', axes=False)
centro+orbita_0
orbita_1 = plot(sol_r.rhs().subs(ep==1),(vp,-.07*pi,.07*pi), polar=True, color='red', axes=False, frame=True, title=r'Órbita parabólica ($\epsilon=1$)')
orbita_1
orbita_m = plot(sol_r.rhs().subs(ep==.8),(vp,-pi,pi),aspect_ratio=1, polar=True, color='red', axes=False, frame=True, title=r'Órbita elíptica ($\epsilon<1$)')
centro + orbita_m
orbita_M = plot(sol_r.rhs().subs(ep==2),(vp,-sqrt(2)/3,sqrt(2)/3), polar=True, color='red', axes=False, frame=True, title=r'Órbita hiperbólica ($\epsilon<1$)')
orbita_M
orbita_0+centro+orbita_m+orbita_M+orbita_1
A lei do deslocamento de Wien é a lei da física que relaciona o comprimento de onda do pico de emissão de radiação eletromagnética de corpo negro e sua temperatura: λmax=bT
λmax é o comprimento de onda do pico de intensidade da radiação eletromagnética;
T é a temperatura absoluta do corpo negro;
b é a constante de proporcionalidade, chamada constante de dispersão de Wien.
Vamos calcular a constante b usando a lei de Planck para a radiação de um corpo negro u(λ,T)=2hc2λ51ehc/λkT−1.
Constantes | Unidade | |
---|---|---|
h | constante de Planck | J⋅s |
c | velocidade da luz no vácuo | m⋅s−1 |
e | número de Euler | sem dimensão |
k | constante de Boltzmann | J⋅K−1 |
var('h c k', domain='positive')
la = var('la', latex_name = r'\lambda', domain='positive')
lam = var('lam', latex_name = r'\lambda_{\text{max}}', domain='positive')
u(la ,T) = 2*h*c^2/(la^5)*1/(e^(h*c/(k*la*T))-1)
u(la,T)
u0 = diff(u(lam,T),lam)==0;u0
solve(u0,lam)
u1 = (u0*lam^6).expand();u1
eqx = x == c*h/(lam*T*k);eqx
eql = solve(eqx,lam)[0];eql
u2 = u1.subs(eql);u2
eqx2 = solve(u2,x)[0];eqx2
Encontre uma solução numérica para a equação x=5(ex−1)e(−x)
** find_root(equação, min, max)
plot(eqx2,x,(x,0,10))
eqx3 = x == find_root(eqx2,4,6);eqx3
eql2 = (eql*T).subs(eqx3);eql2
from scipy.constants import c as nc
from scipy.constants import h as nh
from scipy.constants import k as nk
constantes = {c:nc, k:nk, h:nh}
constantes
eql2.subs(constantes)
Logo, b≈2,89777mm⋅K
u(500/(10^9),4500).subs(constantes)
plot(u(la/(10^9),4500).subs(constantes),0,3000, frame=True, axes=False)
plot(u(la/(10^9),4500).subs(constantes),0,3000, color=colors.darkgreen,axes=False, frame=True, gridlines=True, axes_labels=[r'$\lambda\, (nm)$',r'$u(\lambda)$'], legend_label='$T=4500$')
lista_u = [u(la/(10^9),k).subs(constantes) for k in [3500, 4000, 4500, 5000, 5500]]
lista_u
plot(lista_u,0,3000, axes=False, frame=True, gridlines=True, axes_labels=[r'$\lambda\, (nm)$',r'$u(\lambda)$'])