(PROBLEMA COMPUTACIONAL) Um cano cilíndrico de 1 cm de espessura, centrado no eixo z, possui raio interno " a " e raio externo " b ". Sabendo que a densidade de fluxo elétrico se comporta da seguinte forma:
a. Escreva um programa que calcule de forma ITERATIVA o valor de " a " de tal forma que a densidade de fluxo elétrico máxima entre os raios " a " e " b " seja 10 \mathrm{C} / \mathrm{m}^{2}.
b. Construa o gráfico de como a densidade de fluxo elétrico varia desde a origem até uma distância radial de 20 cm .
Passo 1
O enunciado descreve um tubo cilíndrico com espessura de 1 cm, ou seja, raio interno a\) e externo
\[b = a + 0,01\quad(\text{em metros}).
A densidade de fluxo elétrico, em coordenadas cilíndricas, é dada por
Precisamos achar, de forma iterativa, o valor de a\] tal que a densidade máxima em \(\rho\in[a,b] seja 10\\ \mathrm{C/m^2}. Também vamos plotar D(\rho) de \rho=0 até 0,20 m.]
Calculamos a_{\rm mid}=(a_{\min}+a_{\max})/2 e g_{\rm mid}=g(a_{\rm mid}).
Se |g_{\rm mid}|<\varepsilon (por ex. \varepsilon=10^{-6}), paramos;
senão, substituímos o ponto de extremidade cujo valor de g tem mesmo sinal que g_{\rm mid}, mantendo o outro extremo fixo.
Repetimos até convergir.
Passo 5
Exemplo de implementação em Python:
import math
tol \(=1\)e-6
\[a_low =0.0 a_high =0.2\]
defg(a):
b = a \(+0.01\)
return3/(2*math.pi*b) - 10whileTrue:
\(a_mid =0.5\)*(\(a_low\) + \(a_high\))
\(g_mid\) = g(\(a_mid\))
ifabs(\(g_mid\)) < tol:
breakif g(\(a_low\))*\(g_mid\) < 0:
\(a_high\) = \(a_mid\)
else:
\(a_low\) = \(a_mid\)
a = \(a_mid\)
print("a =", a, "m")
Passo 6
Rodando esse código obtém-se
a \approx 0{,}03775\\ \mathrm{m}\quad(\approx 3{,}775\\ \mathrm{cm}).
Para a parte (b), grafique D(\rho) de \rho=0 até 0,20 m usando:
import numpy as np
import matplotlib.pyplot as plt
a \(=0.03775\)
b = a \(+0.01\)
rho = np.linspace(0, 0.2, 1000)
D = np.\(zeros_like\)(rho)
mask\(1=\) rho < a
mask\(2=\) (rho >= a) & (rho <= b)
mask\(3=\) rho > b
D[mask1] \(=0\)
D[mask2] = (3/(2*np.pi*rho[mask2])) * ((rho[mask2]**2 - a**2)/(b**2 - a**2))
D[mask3] \(=3\)/(2*np.pi*rho[mask3])
plt.plot(rho, D)
plt.xlabel('ρ (m)')
plt.ylabel('D (C/m²)')
plt.axvline(a, color='r', linestyle='--')
plt.axvline(b, color='r', linestyle='--')
plt.title('Variação de D(ρ) de 0 a 0,20 m')
plt.show()
Resposta
O raio interno que atende \max_{\rho\in[a,b]}D(\rho)=10\\ \mathrm{C/m^2} é
\boxed{a\approx0{,}03775\\ \mathrm{m}.}
O gráfico de D(\rho) de 0 a 0,20 m foi construído conforme o código acima.