G c. Sejam a=3 e b=2; faça gráficos de visões diferentes da solução.
Passo 1
O problema é resolver
u_{xx}+u_{yy}=0,\quad0<x<a,\;0<y<b,
com condições de contorno
u_x(0,y)=0,\quad u_x(a,y)=0,\quad 0<y<b,
u(x,0)=0,\quad u(x,b)=g(x),\quad0<x<a.
Isso é um problema de Laplace num retângulo com condição de Neumann em x=0,a e Dirichlet em y=0,b. Vamos usar separação de variáveis e séries de cossenos em x.
Passo 2
Procuramos solução da forma
u(x,y)=\sum_{n=0}^\infty A_n(y)\,X_n(x),
onde X_n\) satisfaz
\[X_n''+\lambda_n X_n=0,\quad X_n'(0)=X_n'(a)=0.
Para a=3, b=2 e truncando a série em N termos, um jeito simples de gerar gráficos é usar Python + NumPy + Matplotlib, por exemplo:
import numpy as np
import matplotlib.pyplot as plt
a, b \(=3\), \(2\)
def \(g_n\)(n):
k \(=\) n*np.pi/a
# calcular integral por quadratura:
x \(=\) np.linspace(\(0\),a,\(500\))
f \(=\) x**\(4\) - \(2\)*a*x**\(3+\) a*a*x**\(2\)
return (\(2\)/a)*np.trapz(f*np.cos(k*x), x)
defu(x,y,N):
s \(=\) (\(1+\)a**\(4\)/\(30\))*(y/b)
for n inrange(\(1\), N\(+1\)):
gn \(= g_n\)(n)
s \(+=\) gn * np.sinh(n*np.pi*y/a)/np.sinh(n*np.pi*b/a) * np.cos(n*np.pi*x/a)
return s
# malha
X \(=\) np.linspace(\(0\),a,\(100\))
Y \(=\) np.linspace(\(0\),b,\(100\))
Xg, Yg \(=\) np.meshgrid(X,Y)
Z \(=\) u(Xg, Yg, N\(=30\))
# superfície \(3\)D
fig \(=\) plt.figure()
ax \(=\) fig.\(add_subplot\)(\(111\), projection\(=\)'\(3\)d')
ax.\(plot_surface\)(Xg, Yg, Z, cmap\(=\)'viridis')
plt.title('Superfície u(x,y)')
# contorno no plano
plt.figure()
cs \(=\) plt.contourf(Xg, Yg, Z, \(20\), cmap\(=\)'viridis')
plt.colorbar(cs)
plt.title('Linhas de nível de u(x,y)')
plt.show()
Resposta
u(x,y) = \displaystyle\Bigl(1+\tfrac{a4}{30}\Bigr)\frac{y}{b}+\sum_{n=1}\infty!\Bigl[\tfrac{2}{a}!\int_{0}{a}!(x4-2a x3+a2x^2)\cos\left(\tfrac{n\pi x}{a}\right)dx\Bigr]!\frac{\operatorname{sinh}\left(\tfrac{n\pi y}{a}\right)}{\operatorname{sinh}\left(\tfrac{n\pi b}{a}\right)}\cos\left(\tfrac{n\pi x}{a}\right),
com a=3,b=2 e gráficos conforme o código acima.