IA no curso: como usar sem terceirizar o aprendizado¶
Um assistente de IA escreve em segundos qualquer método deste curso: a bisseção, o Gauss-Seidel, o Simpson, a regressão. Fingir que ele não existe seria ingênuo, e proibi-lo fora das provas seria inútil. Esta página diz como usá-lo de um jeito que te deixa mais forte, e não mais dependente.
O problema não é o código que não roda¶
Código que dá erro se denuncia sozinho. Em métodos numéricos, o perigo é outro: o código que roda, dá um número plausível e está errado. É o mesmo aviso da introdução do curso: o programa não avisa, quem tem de perceber é você.
# Dois codigos "quase certos", do tipo que um assistente de IA devolve: rodam,
# nao dao erro e entregam um numero plausivel. E errado.
import numpy as np
# 1) O preco de uma corrida de taxi: bandeirada + preco por km.
km = np.array([2.0, 5.0, 8.0, 12.0, 15.0])
preco = np.array([10.5, 20.0, 29.4, 42.3, 51.9])
intercepto, inclinacao = np.polyfit(km, preco, 1) # a ordem esta trocada!
print(f"corrida de 10 km: R$ {intercepto + inclinacao * 10:.2f}")
# 2) A energia de um painel solar, com Simpson, pela potencia de hora em hora
# das 6 h as 17 h (12 medicoes, 11 intervalos).
def simpson_tabela(y, h):
soma = 0.0
for i in range(0, len(y) - 2, 2): # de 2 em 2 faixas
soma = soma + h / 3 * (y[i] + 4 * y[i + 1] + y[i + 2])
return soma
potencia = np.array([0, 80, 250, 420, 560, 640, 660, 600, 480, 320, 150, 40])
print(f"energia do dia: {simpson_tabela(potencia, 1):.0f} Wh")
As duas respostas parecem razoáveis, e as duas estão erradas:
- O táxi. O
np.polyfitdevolve os coeficientes do grau mais alto para o mais baixo: primeiro a inclinação, depois o intercepto (o apêndice de numpy avisa). Com os nomes trocados, a corrida de 10 km sai por R$ 43,80. O certo é R$ 35,92. - O painel solar. Simpson precisa de um número par de intervalos (capítulo 12). Com 11, o laço para antes e esquece a última hora, sem aviso: 4097 Wh, uns 2 % a menos. Numa conta de energia de um ano, isso é dinheiro.
A régua que não mente: um caso que você sabe a resposta¶
# O teste que pega os dois: casos em que VOCE sabe a resposta sem conta nenhuma.
import numpy as np
# 1) Dados exatos: bandeirada de 4 reais e 3 reais por km. A reta tem de devolver 4 e 3.
km = np.array([0.0, 1.0, 2.0])
intercepto, inclinacao = np.polyfit(km, 4 + 3 * km, 1)
print(f"intercepto = {intercepto:.2f} (devia ser 4), inclinacao = {inclinacao:.2f} (devia ser 3)")
# 2) A integral de uma constante 1 em 11 horas tem de dar 11.
def simpson_tabela(y, h):
soma = 0.0
for i in range(0, len(y) - 2, 2):
soma = soma + h / 3 * (y[i] + 4 * y[i + 1] + y[i + 2])
return soma
uns = np.zeros(12) + 1
print(f"integral de 1 em 11 intervalos: {simpson_tabela(uns, 1):.1f} (devia ser 11)")
intercepto = 3.00 (devia ser 4), inclinacao = 4.00 (devia ser 3)
integral de 1 em 11 intervalos: 10.0 (devia ser 11)
Repare no que esses testes exigem: não exigem saber programar melhor que o assistente. Exigem saber que uma reta por dados exatos devolve os números que geraram os dados, e que a integral de 1 em 11 horas é 11. É o que as seções "Confira" dos capítulos treinam desde o começo: comparar com a solução exata, diminuir o passo, olhar o gráfico, testar um caso simples.
Como usar IA nas listas e no projeto¶
As listas valem bônus. Colar a resposta nelas é rápido, e é trocar a única hora em que errar não custa nada. As avaliações cobram o que você sabe sem assistente: a parte em papel é à mão, e a parte no Colab libera o material, mas não a IA.
Um jeito de usar que funciona, em ordem:
- Tente sozinho primeiro, por dez minutos. O valor do exercício está aqui.
- Peça a explicação, não o código. "Por que o meu Gauss-Seidel diverge?" ensina; "escreva o Gauss-Seidel" não.
- Peça o caso que quebra. "Em que função o meu Newton entra em ciclo?" é o melhor uso que existe de um assistente, e é o 💥 de cada capítulo.
- Nunca aceite sem conferir. Rode num caso com resposta conhecida. Se você não consegue explicar cada linha, o código ainda não é seu.
- Desconfie de comando que o curso não usou. O vocabulário do curso é pequeno de propósito; um comando novo é um lugar novo para um erro se esconder.
No projeto final, o uso é livre e declarado, mas cada integrante responde por qualquer célula do caderno.
O resumo¶
A IA mudou a pergunta. Ela deixou de ser "você consegue escrever este método?" e passou a ser "você consegue olhar este resultado e dizer se ele está certo?". As duas exigem o mesmo conhecimento, e a segunda exige também que você já tenha errado o bastante para reconhecer o erro quando o vê.