Aplicando a lei da voltagem de Kirchhoff em um circuito RLC, obtém-se a equação diferencial
L(t) Q^prime prime(t)+R(t) Q^prime(t)+1C Q(t)=E(t)
onde Q(t) é a carga elétrica (desconhecida) armazenada no capacitor em um instante t, L(t) é a indutância, R(t) é a resistência, C a capacitância e E(t) é a força eletromotriz. Admitindo que a indutância L(t)=2 t^2 henrys, a resistência R(t)=3 t ohms, a capacitância de 0,6 farad, a força eletromotriz E(t)=6 e^-2 t+1t^4+1 volts, a carga elétrica Q(0)=1 e Q(infty)=0.
(a) Calcular Q(t) utilizando o método das diferenças finitas, apresentando os desenvolvimentos teórico e de cálculo, assim como, os algoritmos elaborados.

Passo 1

Beleza, olha só o que o exercício pede: a gente tem uma EDO de 2ª ordem com coeficientes que dependem de t
L(t),Q''(t)+R(t),Q'(t)+1C,Q(t)=E(t),
onde E(t)=6e^-2t+1t^4+1 , , e
As condições de contorno são e .
O que vamos usar:
  • O método das diferenças finitas (discretização em ).
  • Aproximações de derivadas por diferenças centrais.
  • Montagem de um sistema linear tridiagonal e solução por algoritmo de Thomas.

Passo 2

Definindo a malha em :
  1. Escolhe um “grande” para aproximar infinito (por ex. ).
  2. Divide o intervalo em subintervalos iguais de passo .
  3. Os nós são , com .
  4. Queremos a aproximação , sabendo e .

Passo 3

Aproximamos as derivadas em cada nó interior Q''(tj)approx Qj+1-2Qj+Qj-1De:
  • Derivada segunda (diferença central) Q'(tj)approx Qj+1-Qj-12,De
  • Derivada primeira (diferença central) 2tj^2Qj+1-2Qj+Qj-1De
Substituindo em
,
a gente obtém, para cada :

Passo 4

Reorganizando em forma de sistema tridiagonal Aj = 2tj^2De:
  • Coeficiente de Bj = -,4tj^2De: Cj = 2tj^2De
  • Coeficiente de Dj = E(tj) = 6e^-2tj + 1tj^4+1 : Q0 = 1, QN=0
  • Coeficiente de :
  • Lado direito:
E as condições nas fronteiras ficam embutidas em

Passo 5

Para resolver o sistema tridiagonal a gente usa o algoritmo de Thomas (eliminações pra cima e retro-substiuição):
  1. Forward sweep: define
    mj = Bj - Aj,c'j-1, c'j = Cjmj, d'j = Dj - Aj,d'j-1mj
    e para Qj = d'j - c'j,Qj+1 :
  2. Back substitution:
    , e pra :

Passo 6

Pseudo-código (Python-style) resumido:
T = 10; N = 1000
dt = T/N
t = [j*dt for j in range(N+1)]
Q = zeros(N+1)
Q[0]=1; Q[N]=0

# Monta coeficientes A, B, C, D nos nós 1..N-1
for j in 1..N-1:
  Aj = 2*t[j]**2/dt**2 - 3*t[j]/(2*dt)
  Bj = -4*t[j]**2/dt**2 + 5/3
  Cj = 2*t[j]**2/dt**2 + 3*t[j]/(2*dt)
  Dj = 6*exp(-2*t[j]) + 1/(t[j]**4+1)
  # guarda em vetores A[j],B[j],C[j],D[j]

# Thomas forward
cprime = zeros(N)
dprime = zeros(N)
cprime[1] = C[1]/B[1]
dprime[1] = (D[1] - A[1]*Q[0]) / B[1]
for j in 2..N-1:
  m = B[j] - A[j]*cprime[j-1]
  cprime[j] = C[j]/m
  dprime[j] = (D[j] - A[j]*dprime[j-1]) / m

# Thomas back
Q[N-1] = dprime[N-1]
for j in N-2 down to 1:
  Q[j] = dprime[j] - cprime[j]*Q[j+1]

Resposta

Seguindo esses passos, você obtém a solução aproximada para . Esse vetor é a resposta numérica do exercício usando diferenças finitas.

Exercícios relacionados