Desenvolva um programa computacional que gere um gráfico 3D das componentes \mathrm{E}_{x} e \mathrm{H}_{y} de campos elétricos e magnéticos, associados a uma onda eletromagnética plana que se propaga na direção z, em função da direção de propagação. Para fins da validação, considere que campo \vec{E}=1 \cos (2 \pi \times 106 t-\beta z) \hat{\mathrm{a}}_{x} se propaga no vácuo, com velocidade da luz. Encontre todos os demais valores necessários para validar seu código.

Passo 1

O enunciado (do jeito que veio) pede que eu desenvolva um programa computacional que gere um gráfico 3D das componentes \mathrm{E}_{x} e \mathrm{H}_{y} de campos elétricos e magnéticos associados a uma onda eletromagnética plana que se propaga na direção z, e que eu encontre todos os demais valores necessários para validar o código. Foi dado explicitamente o campo elétrico
\vec{E}(z,t)=1\cos\bigl(2\pi\times10^{6}t-\beta z\bigr)\,\hat{\mathrm{a}}_{x}
que se propaga no vácuo com velocidade da luz.
O que precisa ser entregue (resumo claro das perguntas):
  • Gerar um programa (código) que plote em 3D as componentes \mathrm{E}_{x} e \mathrm{H}_{y} ao longo da direção de propagação (e no tempo), de forma que seja possível validar o comportamento físico da onda.
  • Encontrar todos os parâmetros numéricos ausentes necessários para validar o código: frequência, pulsação, número de onda \beta, comprimento de onda \lambda, impedância do vácuo \eta_{0}, amplitude de \mathrm{H}_y etc.
Informações relevantes fornecidas pelo enunciado:
  • Amplitude do campo elétrico: E_{0}=1 (unidade implícita: V/m).
  • Frequência dada no argumento do cosseno: f=10^{6}\\ \text{Hz} (pois aparece 2\pi\times10^{6}t).
  • O meio é vácuo (velocidade da luz no vácuo).
Não há outras informações adicionais no enunciado; portanto vou assumir os valores físicos padrões do vácuo ( \mu_{0}, \varepsilon_{0}, c) e que a onda é harmônica, plana e sem perda (onde \vec{E} e \vec{H} são em fase).

Passo 2

Conceitos físicos e fórmulas que vou usar (mini-aula, passo a passo, sem pular etapas).
  1. Onda eletromagnética plana no vácuo:
  • Uma onda plana harmônica com vetor de onda \vec{k} e frequência angular \omega tem dependência temporal e espacial \cos(\omega t-\vec{k}\cdot\vec{r}). Aqui \vec{k} tem módulo k=\beta e para propagação ao longo de +z tem \vec{k}=\beta\,\hat{\mathrm{a}}_{z}.
  1. Relação entre frequência linear f, pulsação \omega e período T:
\omega=2\pi f,\qquad T=\frac{1}{f}.
  1. Comprimento de onda \lambda e número de onda \beta:
\lambda=\frac{c}{f},\qquad \beta=\frac{2\pi}{\lambda}=\frac{\omega}{c}.
Aqui c é a velocidade da luz no vácuo.
  1. Relação entre \vec{E}, \vec{H} e a impedância característica do meio \eta. No vácuo:
\eta_{0}=\sqrt{\frac{\mu_{0}}{\varepsilon_{0}}}\quad(\text{unidade: }\Omega).
Para uma onda plana no vácuo, \vec{E}, \vec{H} e \vec{k} formam um sistema ortogonal com a regra da mão direita. Se \vec{E}=E_{0}\cos(\omega t-\beta z)\,\hat{\mathrm{a}}_{x} e \vec{k}=+\beta\hat{\mathrm{a}}_{z}, então o campo magnético é
\vec{H}(z,t)=H_{0}\cos(\omega t-\beta z)\,\hat{\mathrm{a}}_{y},
com a amplitude
H_{0}=\frac{E_{0}}{\eta_{0}}.
Obs.: os sinais e direções vêm de \vec{k}\times\vec{E}=\omega\mu_{0}\vec{H} ou da regra do produto vetorial que garante \hat{\mathrm{a}}_{z}\times\hat{\mathrm{a}}_{x}=\hat{\mathrm{a}}_{y} (atenção ao sentido).
  1. Valores físicos que usarei para validação:
  • \mu_{0}=4\pi\times10^{-7}\\ \text{H/m}.
  • \varepsilon_{0}=8,854187817\times10^{-12}\\ \text{F/m}.
  • c=2,99792458\times10^{8}\\ \text{m/s} (velocidade da luz no vácuo).
Vou aplicar essas fórmulas numericamente no próximo passo.

Passo 3

Cálculos numéricos passo a passo (cada fórmula com o valor substituído e calculado).
Dados iniciais:
E_{0}=1\quad(\text{V/m}),\qquad f=10^{6}\\ \text{Hz}.
Pulsação:
\omega=2\pi f=2\pi\times10^{6}.
Numericamente:
\omega=6,283185307\times10^{6}\\ \text{rad/s}.
Período:
T=\frac{1}{f}=10^{-6}\\ \text{s}.
Comprimento de onda:
\lambda=\frac{c}{f}=\frac{2,99792458\times10^{8}}{10^{6}}=299,792458\\ \text{m}.
Número de onda \beta:
\beta=\frac{2\pi}{\lambda}=\frac{\omega}{c}.
Numericamente:
\beta\approx0,0209439510\\ \text{rad/m}.
(checa rápida: \beta\lambda=2\pi).
Impedância do vácuo:
\eta_{0}=\sqrt{\frac{\mu_{0}}{\varepsilon_{0}}}\approx376,730313668\\ \Omega.
Amplitude do campo magnético:
H_{0}=\frac{E_{0}}{\eta_{0}}=\frac{1}{376,730313668}\approx0,00265441873\\ \text{A/m}.
Resumo numérico (a usar no código):
  • f=10^{6}\\ \text{Hz}.
  • \omega=6,283185307\times10^{6}\\ \text{rad/s}.
  • T=10^{-6}\\ \text{s}.
  • \lambda=299,792458\\ \text{m}.
  • \beta=0,0209439510\\ \text{rad/m}.
  • \eta_{0}=376,730313668\\ \Omega.
  • E_{0}=1\\ \text{V/m}.
  • H_{0}=0,00265441873\\ \text{A/m}.
Perceba: \vec{E} e \vec{H} estão em fase (mesmo argumento do cosseno) para um meio sem perdas.

Passo 4

Decisões de projeto do programa (como vou gerar o gráfico 3D):
  • Vou plotar superfícies 3D em que o eixo x do gráfico é a coordenada z (posição ao longo da direção de propagação), o eixo y é o tempo t e o eixo vertical (z do plot) é a amplitude do campo (separado para \mathrm{E}_{x} e para \mathrm{H}_{y}). Isso é conveniente para ver a dependência \cos(\omega t-\beta z) como uma onda que se desloca.
  • Escolhas de intervalo:
    • z de 0 até 3\lambda (três comprimentos de onda dão boa visualização do padrão espacial).
    • t de 0 até 2T (dois períodos suficientes para ver o movimento temporal).
  • Discretização: uma malha razoável, por exemplo N_{z}=200 e N_{t}=200 pontos (suficiente para plot bonito sem ser lento).
  • Fórmulas discretas usadas no código:
E_{x}(z,t)=E_{0}\cos(\omega t-\beta z), \qquad H_{y}(z,t)=H_{0}\cos(\omega t-\beta z).
  • O código vai gerar duas superfícies 3D lado a lado (uma para E_{x} e outra para H_{y}) e imprimir os parâmetros numéricos para validação.

Passo 5

Código Python completo (pronto para copiar, salvar como por exemplo onda_em_3d.py e executar). O código gera os gráficos 3D e imprime os parâmetros de validação.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# Parâmetros físicos
E0 = 1.0                      # V/m
f = 1e6                       # Hz (dado)
omega = 2*np.pi*f             # rad/s
c = 299792458.0               # m/s
lambda_ = c / f               # m
beta = omega / c              # rad/m
mu0 = 4*np.pi*1e-7            # H/m
eps0 = 8.854187817e-12        # F/m
eta0 = np.sqrt(mu0/eps0)      # Ohm
H0 = E0 / eta0                # A/m
T = 1.0 / f                   # s

# Impressão dos parâmetros para validação
print("Parâmetros para validação:")
print(f"f = {f:.6g} Hz")
print(f"omega = {omega:.12g} rad/s")
print(f"c = {c:.9g} m/s")
print(f"lambda = {lambda_:.9g} m")
print(f"beta = {beta:.12g} rad/m")
print(f"mu0 = {mu0:.12g} H/m")
print(f"eps0 = {eps0:.12g} F/m")
print(f"eta0 = {eta0:.9g} Ohm")
print(f"E0 = {E0:.6g} V/m")
print(f"H0 = {H0:.12g} A/m")
print(f"T = {T:.12g} s")

# Malha (espaço z e tempo t)
Nz = 200
Nt = 200
z_max = 3*lambda_
t_max = 2*T
z = np.linspace(0, z_max, Nz)
t = np.linspace(0, t_max, Nt)
Z, Tm = np.meshgrid(z, t)

# Campos na malha
Ex = E0 * np.cos(omega*Tm - beta*Z)
Hy = H0 * np.cos(omega*Tm - beta*Z)

# Plots 3D
fig = plt.figure(figsize=(14,6))

# Ex plot
ax1 = fig.add_subplot(1, 2, 1, projection='3d')
surf1 = ax1.plot_surface(Z, Tm*1e6, Ex, cmap='viridis', linewidth=0, antialiased=True)
ax1.set_title(r'\(E_x(z,t)\)')
ax1.set_xlabel('z (m)')
ax1.set_ylabel('t (µs)')
ax1.set_zlabel(r'\(E_x\) (V/m)')
fig.colorbar(surf1, ax=ax1, shrink=0.6, aspect=10)

# Hy plot
ax2 = fig.add_subplot(1, 2, 2, projection='3d')
surf2 = ax2.plot_surface(Z, Tm*1e6, Hy, cmap='plasma', linewidth=0, antialiased=True)
ax2.set_title(r'\(H_y(z,t)\)')
ax2.set_xlabel('z (m)')
ax2.set_ylabel('t (µs)')
ax2.set_zlabel(r'\(H_y\) (A/m)')
fig.colorbar(surf2, ax=ax2, shrink=0.6, aspect=10)

plt.suptitle('Ondas planas: \(E_x\) e \(H_y\) (propagação em +z)')
plt.tight_layout(rect=[0, 0.03, 1, 0.95])
plt.show()
Notas sobre o código:
  • No eixo de tempo eu multiplico por 10^{6} para exibir em microssegundos (rótulo ‘t (µs)’) porque T é pequeno; isso facilita leitura do gráfico.
  • O código imprime todos os parâmetros numéricos calculados para conferência.
  • Se quiser animação em vez de superfície, dá para fixar um t e atualizar uma linha que mostra \cos(\omega t-\beta z) deslocando-se em z.

Passo 6

Como validar o resultado (o que deve ser observado no gráfico e nos números impressos):
  • Conferir impressões: o programa imprime exatamente os valores de \omega, \lambda, \beta, \eta_{0} e H_{0}. Compare com os valores calculados manualmente no Passo 3.
  • No gráfico:
    • As superfícies de E_{x} e H_{y} devem ter exatamente o mesmo formato espacial/temporal (mesma fase), mas escaladas pela razão H_{0}/E_{0}=1/\eta_{0}.
    • A cada instante fixo, uma fatia do plano (E ou H versus z) deve mostrar uma função cosseno com comprimento de onda \lambda (verifique que a distância entre picos em z é \lambda).
    • A onda deve parecer deslocar-se no sentido de +z quando se varre o tempo (os máximos se movem em direção a maiores z para aumentar do argumento \omega t-\beta z com o tempo).
  • Check rápido: medir no gráfico a distância entre picos ao longo de z e confirmar que dá aproximadamente 299,79\\ \text{m}.

Passo 7

Dicas práticas e extensões rápidas (para a prova e para deixar o código mais útil)
  • Se quiser ver vetores (\vec{E},\vec{H}) no espaço 3D em vez de superfícies, use quiver em fatias de z e t fixos.
  • Para ondas que não estejam em fase (por exemplo com defasagem), substitua o cos por cos com um deslocamento de fase.
  • Para propagar em direção qualquer (não só +z), introduza um vetor unitário \hat{k}=(\sin\theta\cos\varphi,\sin\theta\sin\varphi,\cos\theta) e use \vec{k}\cdot\vec{r} no argumento; ajuste direções de \vec{E} e \vec{H} ortogonais a \hat{k}.
  • Mantenha sempre checagens físicas: |\vec{E}|/|\vec{H}| deve dar \eta local; \vec{E}\cdot\vec{k}=0 e \vec{H}\cdot\vec{k}=0 (ortogonalidade).
Força aí! Se estiver com preguiça de rodar agora, copie e cole o código, execute em um ambiente com Python, numpy e matplotlib e cheque os números impressos — isso vai te dar confiança para a prova.

Resposta

f=10^{6}\\ \text{Hz}
\omega=6,283185307\times10^{6}\\ \text{rad/s}
\lambda=299,792458\\ \text{m}
\beta=0,0209439510\\ \text{rad/m}
\eta_{0}=376,730313668\\ \Omega
E_{0}=1\\ \text{V/m}
H_{0}=0,00265441873\\ \text{A/m}

Exercícios relacionados