Aplicando a lei da voltagem de Kirchhoff em um circuito RLC, obtém-se a equação diferencial
onde
é a carga elétrica (desconhecida) armazenada no capacitor em um instante
,
é a indutância,
é a resistência,
a capacitância e
é a força eletromotriz. Admitindo que a indutância
henrys, a resistência
ohms, a capacitância de 0,6 farad, a força eletromotriz
volts, a carga elétrica
e
.
(a) Calcular
utilizando o método das diferenças finitas, apresentando os desenvolvimentos teórico e de cálculo, assim como, os algoritmos elaborados.
(a) Calcular
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
onde
,
,
e
As condições de contorno são
e
.
O que vamos usar:
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
:
- Escolhe um
“grande” para aproximar infinito (por ex. ). - Divide o intervalo
em subintervalos iguais de passo . - Os nós são
, com . - Queremos a aproximação
, sabendo e .
Passo 3
Aproximamos as derivadas em cada nó interior
:
- Derivada segunda (diferença central)
- Derivada primeira (diferença central)
Substituindo em
,
a gente obtém, para cada :
a gente obtém, para cada
Passo 4
Reorganizando em forma de sistema tridiagonal
:
- Coeficiente de
: - Coeficiente de
: - 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):
- Forward sweep: define
e para: - 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.