Unidad 2 / 11

Cálculo y métodos numéricos con Python

Ganancias:

  • Capacidad de confiar en resultados deterministas, no en conjeturas verbales, al hacer que la IA traduzca un cálculo físico en código NumPy/SciPy y ejecute el código mismo.
  • Capacidad para verificar la fiabilidad de un código numérico probándolo con una situación sencilla cuya respuesta se conoce y comprobando su convergencia.
  • Capacidad de proporcionar físicamente la unidad y el nivel del resultado reflejando unidades variables en el código.

Muchos problemas de física no se pueden resolver a mano: una integral no tiene solución analítica, la raíz de un sistema de ecuaciones no se puede encontrar en forma cerrada o un cálculo debe repetirse miles de veces. Aquí es donde entran en juego los métodos numéricos: en lugar de una fórmula exacta, la computadora calcula paso a paso con una precisión aproximada pero controlada. En esta unidad, aprenderá cómo utilizar la inteligencia artificial (IA) como socio de código para cálculos de física computacional, cómo verificar el código que produce y en qué trampas debe evitar caer. Las herramientas estándar de los físicos serán el lenguaje Python y NumPy (biblioteca para matrices numéricas y matemáticas rápidas), así como SciPy (biblioteca para informática científica; incluye integración, búsqueda de radicales y optimización).

¿Por qué AI + Python, por qué no a mano?

Realizar cálculos numéricos a mano es lento y propenso a errores. La IA puede traducir su construcción física en un código Python en ejecución en unos segundos. Pero la regla de oro aquí es: la IA escribe el código, usted ejecuta el código y verifica el resultado con la física. Que la IA diga "este código da eso" es una predicción; En realidad, ejecutar el código y ver el resultado es un hecho determinista. Un LLM podría "calcular" el resultado del código que escribió en su cabeza y decir un número incorrecto; mientras que cuando se ejecuta el mismo código da el resultado correcto. Así que nunca confíes en el resultado numérico que la IA proporciona verbalmente: ejecuta el código.

Tareas computacionales básicas y el papel de la IA

Búsqueda

Método/herramienta

verificación física

integral definida

scipy.integrate.quad

Estados límite, análisis dimensional.

raíz de la ecuación

scipy.optimize.brentq

Coloque la raíz en su lugar y verifique si es cero.

Sistema de ecuaciones lineales.

numpy.linalg.solve

Devolver la solución al sistema

Derivada (numérica)

Diferencia central o numpy.gradient

Comparación con la derivación analítica.

Cálculo de vectores masivos

matrices numerosas

Control de unidades y rangos

La IA es muy buena para sugerir cuál de estas herramientas es apropiada y corregir la sintaxis (reglas de escritura de código). Pero tú decides qué método tiene sentido físico y la precisión del resultado.

Paso a paso: un cálculo numérico comprobable

1. Aclarar el problema y las unidades. Por ejemplo: "Calcule la integral e^(−x²) de 0 a infinito; el resultado debe ser √π/2 ≈ 0,8862". Reescribir el resultado esperado (si lo hay) facilita la verificación.

2. Pídele el código a la IA, pero ejecutas el resultado. Copie el bloque de código y ejecútelo en su propio entorno (Jupyter, Colab, Python nativo).

3. Pruebe con una situación conocida. Pruebe el código con una situación sencilla cuya respuesta ya conoce. Por ejemplo, pruebe un código integral con un ejemplo que conozca a mano, como ∫₀¹ x dx = 0,5. Si el código indica esto correctamente, su confianza aumenta.

4. Verifique la convergencia. En los métodos numéricos, cuando aumenta el número de pasos, el resultado debe acercarse a un valor constante. Si no se acerca, el método no es adecuado.

5. Verifique la unidad y el rango. Proporcione siempre el resultado numérico con la unidad física y el orden.

Consejo: cuando solicite código a la IA, diga "incluya también una línea de prueba que compare el resultado con un valor analítico conocido". Por lo tanto, el código realiza el cálculo y se prueba a sí mismo en una situación conocida. Esto hace que los errores sean inmediatamente visibles.

tres mini casos

Caso 1: Conclusión oral incorrecta. Un estudiante hizo que AI escribiera un código integral y AI dijo "este código da aproximadamente 1,77". El estudiante ejecutó el código: el resultado real fue 0,886. La IA había cometido un error al predecir la salida del código; El código era correcto. Lección: confíe en el código, no confíe en las conjeturas verbales.

Caso 2: Inestabilidad numérica. Un investigador buscó la raíz de una ecuación con un código de búsqueda de raíces escrito por IA. El código devolvió una raíz, pero cuando el investigador volvió a poner la raíz en la ecuación, el resultado no fue cero sino un número muy grande. El problema era que el rango inicial no contenía la raíz; La IA asumió el rango apropiado. El investigador corrigió el intervalo con información física y encontró la raíz correcta.

Caso 3: Confirmación obtenida. Un ingeniero quería un código que calculara numéricamente la deflexión de una viga bajo carga. El código funcionó, pero el resultado mostró metros de deflexión, algo imposible para una viga de acero. El ingeniero examinó las unidades: la IA había pretendido tener el módulo elástico en Pa en lugar de GPa, faltando un factor de 10⁹. Con la corrección unitaria, el resultado disminuyó a milímetros y fue razonable.

Cuatro plantillas copiables

1) Cálculo numérico con línea de validación:

Escriba código Python (NumPy/SciPy) que realice el siguiente cálculo físico: [problema]. Declare todas las variables en unidades SI y especifique la unidad con una línea de comentario. Agregue una línea de verificación (afirmar o imprimir) al final del código que compare el resultado con un valor analítico/simple conocido. Ejecutaré el código; no adivina el resultado, simplemente escribe el código y el rango esperado.

2) Consulta de selección de método:

Quiero resolver numéricamente el siguiente problema: [problema]. ¿Qué función SciPy/NumPy es apropiada y POR QUÉ? Sugiera 2 métodos alternativos y anote los pros y los contras de cada uno en términos de precisión y estabilidad. Indique cuál debería preferirse en cada situación física.

3) Verificación de convergencia:

Escriba código Python que muestre cómo converge el resultado al aumentar el número de pasos del siguiente cálculo numérico (por ejemplo, N=10, 100, 1000). Imprime los resultados en una tabla. Si no hay convergencia, explique la razón física/numérica de esto en una oración. Código: [aquí]

4) Control de la unidad:

En el código siguiente, comente la unidad SI de cada variable y verifique si la unidad del resultado final es consistente con la unidad esperada (por ejemplo, metro, julio). Si hay una inconsistencia, muestre en qué línea se encuentra. Código: [aquí]

Aviso débil / Aviso fuerte

Débil: "Diga el resultado de esta integral: ∫₀^∞ x²·e^(−x) dx"
Resultado: la IA escupe un número en su cabeza (tal vez correcto, tal vez incorrecto); nada ejecutable, nada verificable.
Fuerte: "Escriba código Python que calcule la integral ∫₀^∞ x²·e^(−x) dx con scipy.integrate.quad. Agregue una línea de afirmación que compare el resultado con el valor analítico de esta integral, 2! = 2. Ejecutaré el código".
Resultado: código ejecutable, validación incorporada (comparación con valor analítico) y resultado confiable.

Errores comunes

  • Apoyándose en el resultado numérico verbal de la IA. LLM puede predecir incorrectamente la salida del código en el encabezado. Ejecute siempre el código.
  • No realizando pruebas con una situación conocida. Código que no se prueba con un ejemplo sencillo del que sabes la respuesta puede contener errores ocultos.
  • No comprobar la convergencia. Cumplir con un solo recuento de pasos oscurece si el resultado es numéricamente confiable.
  • No reflejar las unidades en el código. No comentar la unidad de variables invita a errores silenciosos de 10ⁿ.
  • Ignorar la versión/suposiciones de la biblioteca. A veces, la IA puede producir un nombre de función inexistente o una sintaxis obsoleta; Se nota cuando lo ejecutas.
Precaución: antes de incluir un resultado numérico en una publicación, tarea o diseño, pruebe el código con un caso conocido independiente y proporcione el resultado en unidades/órdenes. Incluso el código funcional puede estar calculando la física incorrecta; Sólo porque el código funcione no significa que la física sea correcta.

En resumen

La IA es un socio poderoso para traducir cálculos físicos al código Python; Pero las cifras que da verbalmente son estimaciones, no hechos. El flujo de trabajo seguro es claro: define el problema con sus unidades, haz que la IA escriba el código pero tú ejecutas la salida, prueba el código con una situación conocida, verifica la convergencia y la unidad. Lo que es determinista es el código que se ejecuta; No es un LLM. En la siguiente unidad trasladaremos esta base numérica a la simulación de sistemas físicos que varían en el tiempo.

Tarea de aplicación

Elija un cálculo de física cuya solución analítica conozca (por ejemplo, la velocidad de un objeto en caída libre durante un período de tiempo o una integral definida simple). Haga que la IA escriba un código Python con la plantilla 1; ejecute el código usted mismo. Compara el resultado con el valor analítico que conoces. Luego observe cómo se comporta el resultado cambiando el número de pasos o un parámetro. Nota en 5 o 6 oraciones: ¿la salida del código coincidió con la predicción verbal? ¿Hubo un problema de unidad/orden?

lista de verificación

  • [] Aclaré el problema y la unidad de todas las variables.
  • [] Ejecuté el código escrito por la IA yo mismo, no confiaba en el resultado verbal.
  • [] Probé el código con una situación simple cuya respuesta conocía.
  • [] Verifiqué la convergencia o la sensibilidad de los parámetros.
  • [] Proporcioné físicamente la unidad y el orden del resultado.
  • [ ] He verificado que las funciones de la biblioteca que estoy usando son reales y están actualizadas.