Unidade 2 / 11

Cálculo e métodos numéricos com Python

Ganhos:

  • Capacidade de confiar em resultados determinísticos, e não em suposições verbais, fazendo com que a IA traduza um cálculo físico em código NumPy/SciPy e execute o próprio código
  • Capacidade de verificar a fiabilidade de um código numérico testando-o numa situação simples cuja resposta é conhecida e verificando a sua convergência.
  • Capacidade de fornecer fisicamente a unidade e o nível do resultado refletindo unidades variáveis no código

Muitos problemas de física não podem ser resolvidos manualmente: uma integral não tem solução analítica, a raiz de um sistema de equações não pode ser encontrada na forma fechada ou um cálculo deve ser repetido milhares de vezes. É aqui que entram em jogo os métodos numéricos: em vez de uma fórmula exata, o computador calcula passo a passo com precisão aproximada, mas controlada. Nesta unidade, você aprenderá como usar a inteligência artificial (IA) como parceira de código para cálculos de física computacional, como verificar o código que ela produz e em quais armadilhas você deve evitar cair. As ferramentas padrão do físico aqui serão a linguagem Python e NumPy (biblioteca para matrizes numéricas e matemática rápida), bem como SciPy (biblioteca para computação científica; inclui integração, descoberta radical, otimização).

Por que AI + Python, por que não manualmente?

Realizar cálculos numéricos manualmente é lento e sujeito a erros. A IA pode traduzir sua construção física em um código Python em execução em poucos segundos. Mas a regra de ouro aqui é: a IA escreve o código, você executa o código e verifica o resultado com a física. A IA dizendo “este código dá aquilo” é uma previsão; Na verdade, executar o código e ver a saída é um fato determinístico. Um LLM pode “calcular” a saída do código que escreveu em sua cabeça e dizer um número errado; enquanto que quando o mesmo código é executado, ele fornece o resultado correto. Portanto, nunca confie no resultado numérico que a IA fornece verbalmente – execute o código.

Tarefas computacionais básicas e o papel da IA

Missão

Método/ferramenta

verificação física

integral definida

scipy.integrate.quad

Estados limites, análise dimensional

raiz da equação

scipy.optimize.brentq

Coloque a raiz no lugar e verifique se é zero.

Sistema de equações lineares

numpy.linalg.solve

Colocando a solução de volta no sistema

Derivado (numérico)

Diferença central ou numpy.gradient

Comparação com derivação analítica

Cálculo vetorial em massa

Matrizes NumPy

Controle de unidade e classificação

A IA é muito boa em sugerir quais dessas ferramentas são apropriadas e em corrigir a sintaxe (regras de escrita de código). Mas você decide qual método faz sentido físico e a precisão do resultado.

Passo a passo: um cálculo numérico verificável

1. Esclareça o problema e as unidades. Por exemplo: "Calcule a integral e^(−x²) de 0 ao infinito; o resultado deve ser √π/2 ≈ 0,8862." Reescrever o resultado esperado (se houver) facilita a verificação.

2. Peça o código à IA, mas você executa a saída. Copie o bloco de código e execute-o em seu próprio ambiente (Jupyter, Colab, Python nativo).

3. Teste com uma situação conhecida. Experimente o código com uma situação simples para a qual você já sabe a resposta. Por exemplo, teste um código integral com um exemplo que você conhece manualmente, como ∫₀¹ x dx = 0,5. Se o código fornecer isso corretamente, sua confiança aumentará.

4. Verifique a convergência. Nos métodos numéricos, ao aumentar o número de etapas, o resultado deve se aproximar de um valor constante. Se não se aproximar, o método não é adequado.

5. Verifique a unidade e a classificação. Forneça sempre o resultado numérico com a unidade física e a ordem.

Dica: ao solicitar código da IA, diga “inclua também uma linha de teste que compare o resultado com um valor analítico conhecido”. Assim, o código tanto realiza o cálculo quanto se testa em uma situação conhecida. Isso torna os erros imediatamente visíveis.

três mini cases

Caso 1 — Conclusão oral incorreta. Um aluno fez a IA escrever um código integral e a IA disse "este código dá cerca de 1,77". O aluno executou o código: o resultado real foi 0,886. A IA cometeu um erro ao prever a saída do código; O código estava correto. Lição: confie no código, não confie no palpite verbal.

Caso 2 — Instabilidade numérica. Um pesquisador procurou a raiz de uma equação com um código de localização de raiz escrito pela IA. O código retornou uma raiz, mas quando o pesquisador colocou a raiz de volta na equação, o resultado não foi zero, mas um número muito grande. O problema era que o intervalo inicial não continha a raiz; A IA assumiu o intervalo apropriado. O pesquisador corrigiu o intervalo com informações físicas e encontrou a raiz correta.

Caso 3 — Confirmação obtida. Um engenheiro queria um código que calculasse numericamente a deflexão de uma viga sob carga. O código funcionou, mas o resultado mostrou metros de deflexão – impossível para uma viga de aço. O engenheiro examinou as unidades: a IA fingiu ter o módulo de elasticidade em Pa em vez de GPa, faltando um fator de 10⁹. Com a correção unitária, o resultado diminuiu para milímetros e ficou razoável.

Quatro modelos copiáveis

1) Cálculo numérico com linha de validação:

Escreva o código Python (NumPy/SciPy) que executa o seguinte cálculo físico: [problema]. Declare todas as variáveis ​​em unidades SI e especifique a unidade com uma linha de comentário. Adicione uma linha de verificação (assert ou print) no final do código que compara o resultado a um valor analítico/simples conhecido. Vou executar o código; você não adivinha a saída, apenas escreve o código e a classificação esperada.

2) Consulta de seleção de método:

Quero resolver o seguinte problema numericamente: [problema].Qual função SciPy/NumPy é apropriada e POR QUÊ? Sugira 2 métodos alternativos, anote os prós/contras de cada um em termos de precisão e estabilidade. Indique qual deve ser preferido em qual situação física.

3) Verificação de convergência:

Escreva um código Python que mostre como o resultado converge aumentando o número de etapas do seguinte cálculo numérico (por exemplo, N = 10, 100, 1000). Imprima os resultados em uma tabela. Se não houver convergência, explique a razão física/numérica para isso em uma frase. Código: [aqui]

4) Controle da unidade:

No código abaixo, comente a unidade SI de cada variável e verifique se a unidade do resultado final é consistente com a unidade esperada (por exemplo, metro, joule). Se houver alguma inconsistência, mostre em qual linha ela está. Código: [aqui]

Alerta fraco / Alerta forte

Fraco: "Diga o resultado desta integral: ∫₀^∞ x²·e^(−x) dx"
Resultado: a IA cospe um número na sua cabeça (talvez certo, talvez errado); nada executável, nada verificável.
Strong: "Escreva o código Python que calcula a integral ∫₀^∞ x²·e^(−x) dx com scipy.integrate.quad. Adicione uma linha assert que compare o resultado com o valor analítico desta integral, 2! = 2. Vou executar o código."
Resultado: Código executável, validação integrada (comparação com valor analítico) e resultado confiável.

Erros comuns

  • Baseando-se no resultado numérico verbal da IA. O LLM pode prever incorretamente a saída do código no cabeçalho. Sempre execute o código.
  • Não testando com situação conhecida. Código que não é testado com um exemplo simples para o qual você sabe a resposta pode conter erros ocultos.
  • Não verificando convergência. Manter uma contagem de passos únicos obscurece se o resultado é numericamente confiável.
  • Não refletindo as unidades no código. Não comentar a unidade de variáveis ​​provoca erros silenciosos de 10ⁿ.
  • Ignorando a versão/suposições da biblioteca. Às vezes, a IA pode produzir um nome de função inexistente ou uma sintaxe obsoleta; É perceptível quando você o executa.
Cuidado: Antes de colocar um resultado numérico em uma publicação, tarefa ou design, teste o código com um caso conhecido independente e forneça o resultado em unidades/pedidos. Até mesmo o código funcional pode estar calculando a física errada; Só porque o código funciona não significa que a física esteja correta.

Resumindo

A IA é um parceiro poderoso na tradução de cálculos físicos em código Python; Mas os números que ele fornece verbalmente são estimativas e não fatos. O fluxo de trabalho seguro é claro: defina o problema com suas unidades, faça com que a IA escreva o código, mas você execute a saída, teste o código com uma situação conhecida, verifique a convergência e a unidade. O que é determinístico é o código executado; Não é um LLM. Na próxima unidade iremos mover esta base numérica para a simulação de sistemas físicos variantes no tempo.

Tarefa de aplicativo

Escolha um cálculo físico para o qual você conheça a solução analítica (por exemplo, a velocidade de um objeto em queda livre durante um período de tempo ou uma integral definida simples). Faça com que a IA escreva um código Python com o modelo 1; execute o código você mesmo. Compare o resultado com o valor analítico que você conhece. Em seguida, observe como o resultado se comporta alterando o número de etapas ou um parâmetro. Observe em 5 a 6 frases: a saída do código correspondeu à previsão verbal, houve um problema de unidade/ordem?

lista de verificação

  • [ ] Esclareci o problema e a unidade de todas as variáveis.
  • [] Eu mesmo executei o código escrito pela IA, não confiei no resultado verbal.
  • [] Testei o código com uma situação simples para a qual sabia a resposta.
  • [] Verifiquei a convergência ou a sensibilidade dos parâmetros.
  • [ ] Forneci fisicamente a unidade e a ordem do resultado.
  • [] Verifiquei que as funções da biblioteca que estou usando são reais e atualizadas.