Resolva as seguintes equações diferenciais utilizando o método das diferenças finitas
\
\begin{gathered} \frac{d^{2} y}{d x^{2}}+y^{2}=0 \\ 0 \leq x \leq 1 \\ y^{\prime}(0)=0 \\ -y^{\prime}(1)=5(y(1)-2) \end{gathered}
\

Passo 1

O que o enunciado pede e o que nos é dado.
  • Pedido: resolver a EDO
\frac{d^{2}y}{dx^{2}} + y^{2} = 0,\qquad 0\le x\le 1,
com as condições de contorno
y^{\prime}(0)=0,\qquad -y^{\prime}(1)=5\bigl(y(1)-2\bigr).
  • Informações úteis (extraídas do enunciado):
    • O domínio é o intervalo [0,1].
    • Há uma condição de contorno do tipo Neumann em x=0: y'(0)=0.
    • Há uma condição de contorno do tipo mista/Robin em x=1: -y'(1)=5(y(1)-2).
    • A equação é não linear (presença de y^{2}), por isso o sistema discreto será não linear e precisaremos de um método iterativo (por exemplo Newton) para resolver o sistema algébrico resultante.

Passo 2

Definição da malha e aproximação das derivadas (diferenças finitas).
  • Escolha uma malha uniforme com N subintervalos (escolha do N fica a seu critério na prática; quanto maior N mais precisa a aproximação, mas o sistema cresce). Definimos
h=\frac{1-0}{N}=\frac{1}{N},\qquad x_i = i h,\quad i=0,1,\dots,N.
  • Vamos aproximar y(x_i) por y_i\approx y(x_i). A derivada segunda no ponto interno x_i é aproximada pela diferença central de segunda ordem:
\frac{d^{2}y}{dx^{2}}(x_i)\approx\frac{y_{i+1}-2y_i+y_{i-1}}{h^{2}},
que tem erro de ordem \mathcal{O}(h^{2}). Para os nós internos i=1,\dots,N-1 substituímos na EDO.
  • Para os nós internos i=1,\dots,N-1 obtemos as equações discretas:
\frac{y_{i+1}-2y_i+y_{i-1}}{h^{2}} + y_i^{2} = 0.
Explanação didática curta: essa fórmula vem da expansão em série de Taylor — é a aproximação mais usada porque é centrada (usa vizinho à esquerda e à direita) e tem boa precisão \sim h^2. Cada equação gera uma relação entre três valores desconhecidos consecutivos.

Passo 3

Tratamento da condição de contorno em x=0: y'(0)=0.
  • Uma maneira padrão de implementar uma condição de Neumann é introduzir um ponto “fantasma” y_{-1} e usar a aproximação central para a derivada:
y'(0)\approx\frac{y_1 - y_{-1}}{2h}=0 \quad\Rightarrow\quad y_{-1}=y_1.
  • Substituímos esse valor na fórmula da segunda derivada em x_0 (usando a mesma diferença central com ponto fantasma):
\frac{d^{2}y}{dx^{2}}(x_0)\approx\frac{y_1 -2y_0 + y_{-1}}{h^{2}} = \frac{y_1 -2y_0 + y_1}{h^{2}} = \frac{2(y_1 - y_0)}{h^{2}}.
  • Substituindo na EDO em x_0 obtemos a equação para o nó i=0:
\frac{2(y_1 - y_0)}{h^{2}} + y_0^{2} = 0.
Explicação didática: a condição y'(0)=0 diz que a tangente é horizontal no início; representamos isso refletindo o valor além da borda ( y_{-1}) igual ao vizinho interno y_1, o que força a diferença central da derivada a ser zero.

Passo 4

Tratamento da condição mista/Robin em x=1: -y'(1)=5(y(1)-2).
  • Primeiro reorganizamos:
y'(1) = -5\bigl(y_N - 2\bigr).
  • Aproximamos y'(1) por diferença central com um ponto fantasma y_{N+1}:
y'(1)\approx\frac{y_{N+1}-y_{N-1}}{2h} = -5\bigl(y_N - 2\bigr).
  • Isolando y_{N+1}:
y_{N+1} = y_{N-1} - 10 h \bigl(y_N - 2\bigr).
  • Agora usamos a diferença central da segunda derivada no nó i=N:
\frac{d^{2}y}{dx^{2}}(x_N)\approx\frac{y_{N+1}-2y_N+y_{N-1}}{h^{2}}.
  • Substituímos y_{N+1} acima:
\frac{y_{N-1} - 10h(y_N-2) -2y_N + y_{N-1}}{h^{2}} + y_N^{2} = 0.
  • Simplificando:
\frac{2(y_{N-1}-y_N)}{h^{2}} - \frac{10(y_N-2)}{h} + y_N^{2} = 0.
Explicação didática: a condição no extremo envolve a derivada e o valor de y; ao usar a aproximação central ela introduz o ponto fantasma y_{N+1}. Substituímos esse ponto fantasma usando a condição mista para eliminar incógnitas extras e obter uma equação somente em y_{N-1},y_N.

Passo 5

Escrevendo o sistema não linear completo (forma vetorial) e explicando a solução numérica.
  • Temos N+1 incógnitas \mathbf{y}=(y_0,y_1,\dots,y_N)^{T} e N+1 equações F_i(\mathbf{y})=0, i=0,\dots,N, onde:
Para i=0 (nó em x=0):
F_0(\mathbf{y}) \equiv \frac{2(y_1 - y_0)}{h^{2}} + y_0^{2}.
Para i=1,\dots,N-1 (nós internos):
F_i(\mathbf{y}) \equiv \frac{y_{i+1} - 2y_i + y_{i-1}}{h^{2}} + y_i^{2}.
Para i=N (nó em x=1):
F_N(\mathbf{y}) \equiv \frac{2(y_{N-1}-y_N)}{h^{2}} - \frac{10(y_N - 2)}{h} + y_N^{2}.
  • Esse é um sistema não linear em \mathbf{y}. Uma maneira eficiente e padrão de resolvê-lo é usar o método de Newton para sistemas:
    1. Escolher palpite inicial \mathbf{y}^{(0)} (por exemplo \mathbf{y}^{(0)}_i=2 ou \mathbf{y}^{(0)}_i=1; um palpite perto do comportamento esperado ajuda).
    2. Em cada iteração k montar o vetor \mathbf{F}(\mathbf{y}^{(k)}) e a matriz jacobiana J(\mathbf{y}^{(k)}) definida por J_{ij}=\partial F_i/\partial y_j e resolver
J(\mathbf{y}^{(k)})\,\delta^{(k)} = -\mathbf{F}(\mathbf{y}^{(k)}).
  1. Atualizar \mathbf{y}^{(k+1)}=\mathbf{y}^{(k)}+\delta^{(k)} (ou usar passo amortecido se necessário).
  2. Repetir até que \|\mathbf{F}(\mathbf{y}^{(k)})\| fique menor que uma tolerância desejada.
  • Fórmulas explícitas para o Jacobiano (úteis na implementação):
Para i=0:
\frac{\partial F_0}{\partial y_0} = -\frac{2}{h^{2}} + 2y_0,\qquad \frac{\partial F_0}{\partial y_1} = \frac{2}{h^{2}},\qquad \frac{\partial F_0}{\partial y_j}=0\\ \text{para }j\ge2.
Para i=1,\dots,N-1:
\frac{\partial F_i}{\partial y_{i-1}}=\frac{1}{h^{2}},\qquad \frac{\partial F_i}{\partial y_{i}}=-\frac{2}{h^{2}}+2y_i,\qquad \frac{\partial F_i}{\partial y_{i+1}}=\frac{1}{h^{2}},
e todas as outras derivadas nulas.
Para i=N:
\frac{\partial F_N}{\partial y_{N-1}}=\frac{2}{h^{2}},\qquad \frac{\partial F_N}{\partial y_N}=-\frac{2}{h^{2}} -\frac{10}{h} + 2y_N,
e \partial F_N/\partial y_j=0 para j\le N-2.
  • Observações práticas:
    • A matriz jacobiana é tridiagonal (estrutura esparsa) — muito vantajoso: o sistema linear em cada iteração de Newton pode ser resolvido com custo \mathcal{O}(N) usando algoritmo para triadiagonal (Thomas) adaptado a tridiagonal não singular.
    • Como a equação é não linear com termo quadrático y_i^2, é comum usar como chute inicial um vetor constante (por exemplo y_i^{(0)}=2 porque a BC direita envolve o valor 2) e, se Newton divergir, usar passo amortecido (damping) ou método de Newton-modificado.
    • Critério de parada prático: \|\delta^{(k)}\|_{\infty}<\text{tol} com \text{tol}=10^{-8} ou \|\mathbf{F}(\mathbf{y}^{(k)})\|_{\infty}<\text{tol}.

Passo 6

Exemplo ilustrativo de implementação (procedimento passo a passo que você faria na prova/implementação).
  1. Escolher N (por exemplo N=50 para solução razoavelmente refinada).
  2. Calcular h=1/N e montar função que computa \mathbf{F}(\mathbf{y}) conforme fórmulas do Passo 5.
  3. Montar função que monta J(\mathbf{y}) usando as fórmulas explícitas (tridiagonal).
  4. Inicializar \mathbf{y}^{(0)} (por exemplo \mathbf{y}^{(0)}_i=2 para todo i).
  5. Repetir:
    a) Montar \mathbf{F}(\mathbf{y}^{(k)}) e J(\mathbf{y}^{(k)}).
    b) Resolver J\,\delta = -\mathbf{F} por eliminação tridiagonal.
    c) Atualizar \mathbf{y}^{(k+1)}=\mathbf{y}^{(k)}+\delta. Se \|\delta\| explodir, usar passo \mathbf{y}^{(k)}+\lambda\delta com 0<\lambda<1.
    d) Checar convergência.
  6. Quando convergir, \mathbf{y}^{(k)} é a aproximação desejada y_i\approx y(x_i).
Dica didática: na prova, você normalmente precisa descrever o processo (como aqui) e, se pedirem, montar explicitamente as equações para um N pequeno (por exemplo N=4 ou N=2). Se pedirem valores numéricos, resolveria o sistema não linear com Newton (fazer poucas iterações para N pequeno é possível à mão, mas trabalhoso); para valores reais use uma calculadora ou computador.

Passo 7

Resumo final do método e observações sobre validade da aproximação.
  • Resultado prático: a equação contínua foi transformada no sistema discreto não linear dado por F_i(\mathbf{y})=0 com i=0,\dots,N (veja as fórmulas do Passo 5). Resolva esse sistema por Newton (ou outro método não linear) para obter os valores aproximados y_i.
  • Erro e convergência: a discretização por diferenças centrais dá erro global da ordem \mathcal{O}(h^{2}) desde que a solução seja suficientemente suave e a resolução do sistema seja precisa; portanto ao reduzir h (aumentar N) espera-se a convergência quadrática em h.

Resposta

Sistema discreto não linear para \mathbf{y}=(y_0,\dots,y_N) com h=1/N:
F_0(\mathbf{y})=\frac{2(y_1-y_0)}{h^{2}}+y_0^{2}=0,
F_i(\mathbf{y})=\frac{y_{i+1}-2y_i+y_{i-1}}{h^{2}}+y_i^{2}=0,\quad i=1,\dots,N-1,
F_N(\mathbf{y})=\frac{2(y_{N-1}-y_N)}{h^{2}}-\frac{10(y_N-2)}{h}+y_N^{2}=0.
Resolver numericamente \mathbf{F}(\mathbf{y})=\mathbf{0} (por exemplo por Newton com a Jacobiana tridiagonal indicada no Passo 5) para obter os valores aproximados y_i\approx y(x_i).

Exercícios relacionados