Considere uma corda vibrante de comprimento L=30 que satisfaz a equação da onda,
100 ux x=ut t 00
Suponha que as extremidades da corda estão fixas e que a corda é colocada em movimento sem velocidade inicial da posição inicia
u(x, 0)= x10 & 0 <= x <= 10 30-x20 & 10
Encontre o deslocamento u(x, t) da corda (não vale nada se não fizer os cálculos passo a passo, e o código em matlab/python para fazer os gráficos).
(a) Faça o gráfico de u vs x para os seguintes valores fixos de t:0 ; 4 ; 5 ; 7 ; 5 ; 10 ; 15 ; (b) Faça o gráfico de u vs t para os seguintes valores fixos de x:10 ; 15 ; 20;
© Faça o gráfico de u(x ; t) para os seguintes intervalos de 0 e 0.

Passo 1

Nesse exercício, temos uma corda vibrante de comprimento L=30 que satisfaz a equação da onda 100 u_{xx}=u_{tt}, com extremidades em x=0 e x=30 fixas (u(0,t)=u(30,t)=0). A condição inicial é u(x,0)=f(x), onde f(x)=x/10 para 0≤x≤10 e f(x)=(30−x)/20 para 10<x≤30, e velocidade inicial u_t(x,0)=0. Vamos resolver por separação de variáveis e séries de Fourier.

Passo 2

Começamos assumindo a solução por separação de variáveis na forma u(x,t)=X(x)T(t). Substituindo em u_{tt}=c^2u_{xx} com c^2=100, obtemos T’’/c^2T=X’’/X=−λ. As condições de contorno X(0)=X(30)=0 levam aos autovalores λ_n=(nπ/30)^2, n=1,2,3,…. A frequência angular é ω_n=c√{λ_n}=10·(nπ/30)=nπ/3.

Passo 3

A forma geral da série, atendendo às condições de contorno e velocidade inicial zero, é
u(x,t)=sumn=1^inftyAnsinl(tfracnpi x30r)cosl(tfracnpi t3r)
Para encontrar A_n, usamos a condição inicial u(x,0)=f(x)=\sum A_n\sin(nπx/30).

Passo 4

O coeficiente A_n vem da expansão em série de Fourier-seno:
An=2Lintegral0^Lf(x)sinl(tfracnpi xLr),dx=115l(integral0^10x10sin(kx)dx+integral10^3030-x20sin(kx)dxr),
onde k=nπ/30. Calculando e simplificando as integrais por partes, chega-se a
An=3n^2pi^2,sinl(tfracnpi3r)

Passo 5

Portanto a solução completa é
u(x,t)=sumn=1^infty3sinl(tfracnpi3r)n^2pi^2;sinl(tfracnpi x30r);cosl(tfracnpi t3r)

Passo 6

Para traçar os gráficos, podemos truncar a soma em n=1…N (por ex. N=100) e usar o seguinte script em Python (alternativa Matlab semelhante):
import numpy as np
import matplotlib.pyplot as plt
# parâmetros
i_max = 100
L = 30
c = 10
# funções
 def u(x,t):
     s = 0
     for n in range(1, i_max+1):
         A = 3*np.sin(n*np.pi/3)/(n**2*np.pi**2)
         s += A * np.sin(n*np.pi*x/L) * np.cos(n*np.pi*t/(L/c))
     return s
# (a) u vs x para t em [0,4,5,7,10,15]
t_list = [0,4,5,7,10,15]
x = np.linspace(0, L, 400)
plt.figure()
for t in t_list:
    plt.plot(x, u(x,t), label=f't={t}')
plt.legend(); plt.xlabel('x'); plt.ylabel('u(x,t)')

# (b) u vs t para x em [10,15,20]
t = np.linspace(0, 50, 500)
plt.figure()
for x0 in [10,15,20]:
    plt.plot(t, u(x0,t), label=f'x={x0}')
plt.legend(); plt.xlabel('t'); plt.ylabel('u(x,t)')

# (c) superfície u(x,t)
xv, tv = np.meshgrid(np.linspace(0,L,200), np.linspace(0,100,200))
uv = u(xv, tv)
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(); ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(xv, tv, uv, cmap='viridis')
ax.set_xlabel('x'); ax.set_ylabel('t'); ax.set_zlabel('u')
plt.show()
Com esse código você terá (a) gráficos de u versus x nos instantes pedidos, (b) u versus t nos pontos x fixos e © a superfície u(x,t) em 0<x<30, 0<t<100.

Resposta

u(x,t)=\displaystyle\sum_{n=1}{\infty}\frac{3,\sin\bigl(\tfrac{n\pi}{3}\bigr)}{n{2}\pi^{2}};\sin\Bigl(\tfrac{n\pi x}{30}\Bigr);\cos\Bigl(\tfrac{n\pi t}{3}\Bigr)

Exercícios relacionados