CursosEmpresasBlogLiveConfPrecios

Modelado de Sistemas Dinámicos con Funciones Matemáticas y Python

Clase 2 de 12 • Taller de Aplicación de Modelos Numéricos

Contenido del curso

Modelos matemáticos

  • 1
    Modelos Matemáticos: Conceptos Básicos y Aplicaciones

    Modelos Matemáticos: Conceptos Básicos y Aplicaciones

    04:24 min
  • 2
    Modelado de Sistemas Dinámicos con Funciones Matemáticas y Python

    Modelado de Sistemas Dinámicos con Funciones Matemáticas y Python

    Viendo ahora
  • 3
    Ecuaciones Diferenciales Ordinarias: Modelos de Epidemias

    Ecuaciones Diferenciales Ordinarias: Modelos de Epidemias

    05:09 min
  • 4
    Resolución de EDOs para Modelar Epidemias con Python

    Resolución de EDOs para Modelar Epidemias con Python

    03:24 min
  • 5
    Convección y Sistemas Dinámicos: El Modelo de Lorenz

    Convección y Sistemas Dinámicos: El Modelo de Lorenz

    04:05 min

Modelos númericos

  • 6
    Método de Euler: Solución Numérica de Ecuaciones Diferenciales

    Método de Euler: Solución Numérica de Ecuaciones Diferenciales

    03:19 min
  • 7
    Solución Numérica y Exacta de Ecuaciones Diferenciales

    Solución Numérica y Exacta de Ecuaciones Diferenciales

    03:54 min

Sistemas caóticos

  • 8
    Comparación de Métodos: Runge-Kutta 4 vs Euler en Ecuaciones Diferenciales

    Comparación de Métodos: Runge-Kutta 4 vs Euler en Ecuaciones Diferenciales

    02:33 min
  • 9
    Resolución del Sistema de Lorenz con Método RK4

    Resolución del Sistema de Lorenz con Método RK4

    03:32 min

Modelos epidemiológicos

  • 10
    Modelo SIR: Simulación Numérica de Epidemias con RK4

    Modelo SIR: Simulación Numérica de Epidemias con RK4

    03:39 min
  • 11
    Modelos SIR y el Número Básico de Reproducción (R₀)

    Modelos SIR y el Número Básico de Reproducción (R₀)

    02:42 min
  • 12
    Modelado Epidemiológico con SIRD y Algoritmo de Evolución Diferencial

    Modelado Epidemiológico con SIRD y Algoritmo de Evolución Diferencial

    04:41 min
Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads

      Los sistemas dinámicos son sistemas que simplemente evolucionan en el tiempo. Vamos a profundizar en la formulación matemática necesaria para hacer modelos y veremos cómo las funciones matemáticas describen la realidad con un ejemplo sencillo de un péndulo en movimiento como el que ves a continuación:

      pendulum

      Ahora que entendemos que un modelo es una representación simplificada de la realidad, debes preguntarte: ¿Qué parte de la realidad quieres modelar ¿Con qué propósito? ¿Quieres predecir un evento o la ocurrencia de una situación particular? ¿Cuáles son las variables y sus relaciones? ¿Puedes obtener datos para validar el modelo?

      ¿Que es un sistema dinámico?

      Un sistema es la porción de realidad que vamos a modelar, si este cambia a medida que el tiempo avanza se le conoce como modelo dinámico. Tener un modelo de la realidad implica tener una o varias funciones que describe cómo evoluciona el fragmento de la realidad que elegí. Este fragmento es conocido como sistema dinámico.

      Primero, voy a tomar como caso particular un péndulo y quiero saber cuál será su posición en el futuro. Al decir esto, he identificado la parte de la realidad que quiero modelar: un objeto sólido que cuelga de una cuerda muy fina que puedo disponer para que efectúe oscilaciones alrededor de un punto fijo. Esta parte de la realidad que quiero modelar se denomina el sistema y cuando el sistema cambia a medida que el tiempo avanza, se le denomina sistema dinámico.

      Cómo identificar un sistema dinámico

      Una vez que tengo identificado el sistema, lo siguiente es determinar cuáles son las variables que son relevantes para el objetivo que quiero lograr. Aquí se dice que lo que quiero cuantificar es la posición del objeto, pero resulta que la posición del péndulo viene dada por la ubicación específica del peso que cuelga de la cuerda, y dependiendo de qué tanto quiera simplificar el sistema, necesitaré dos o tres coordenadas en el espacio. Supongamos que etiqueto estas coordenadas como

      Ahora, como el objeto en general estará en movimiento, decimos que estas coordenadas (que ahora son nuestras variables del modelo) dependen del instante de tiempo en el cual observamos el objeto (aquí la relación del modelo es entre el tiempo y las coordenadas) y escribimos:

      x = x(t)

      y = y(t)

      z = z(t)

      ¿Cuál es la importancia de las funciones en los sistemas dinámicos?

      En matemáticas existen muchos tipos de relaciones entre variables, así que nos vamos a enfocar en el único tipo de relación que nos interesa: las relaciones que denominamos funciones. No vamos a profundizar en los detalles de lo que una función matemática es pero vamos a dejar claro que las funciones son el tipo de relación que necesitamos porque permiten crear modelos donde, por ejemplo, un objeto no puede estar en dos lugares al mismo tiempo, ya que eso va contra la lógica de nuestra realidad observable.

      Para profundizar sobre el concepto de función matemática te recomiendo tomar Curso de Funciones Matemáticas para Data Science e Inteligencia Artificial.

      Dicho esto, las funciones serán la base para construir nuestros modelos matemáticos ya que nos permiten hacer descripciones exactas de las variables que caracterizan el sistema (o trozo de realidad) del cual queremos hacer predicciones. En este curso vamos a trabajar con estas funciones usando Python, así que vamos a comenzar escribiendo un código en este lenguaje que te permitirá hacer una simulación de este sistema dinámico.

      Ejemplo de función para describir un péndulo

      Antes conviene que definamos cuáles son las funciones que describen el movimiento del péndulo. Por simplicidad, tomaremos un péndulo que se mueve en un plano bidimensional así:

      https://static.platzi.com/media/user_upload/modelos-numericos-1-259820d6-676a-4d62-b218-fc2a5fd7a6a2.jpg

      Aquí, θ₀ y ω son el ángulo inicial de apertura y la frecuencia de oscilación del péndulo, respectivamente, y la función θ(t) describe cómo varía el ángulo de oscilación del péndulo según el tiempo t. Estos valores son constantes y se toman como condiciones iniciales del problema, es decir, definen el estado inicial del péndulo (qué tanto va a oscilar y qué tan rápido). Escribir estas ecuaciones en Python no requiere muchas líneas de código, y para este ejercicio primero vamos a usar las siguientes librerías:

      https://static.platzi.com/media/user_upload/code_1%20%281%29-c735ffc9-a547-46e5-be9b-accd3822e0d1.jpg

      Luego definimos las posiciones en las coordenadas x e y definidas previamente, así:

      https://static.platzi.com/media/user_upload/code_2%20%281%29-19953fcd-9681-4607-9d91-ba9709af6059.jpg

      Donde tenemos un ángulo inicial θ₀ de π/4 radianes y la frecuencia ω con un valor de π radianes por segundo. Veamos ahora cómo se ve el movimiento de un péndulo descrito por estas funciones, para ello vamos a definir una función que dibuja la posición del péndulo dependiendo del valor de tiempo que quieras ver:

      https://static.platzi.com/media/user_upload/Screenshot%202020-05-06%20at%205.59.47%20PM-0358827c-fd5a-4af8-b324-9fd93d086bef.jpg

      En este caso, i representa el valor de tiempo para el cual nuestra función dibuja la posición del péndulo. Los valores tmax y dt representan el máximo tiempo (en segundos) que puede dibujar la función y el intervalo de tiempo que separa instantes sucesivos en el proceso de simular el movimiento del péndulo, respectivamente. Ahora puedes ejecutar la función para un valor particular de tiempo así:

      https://static.platzi.com/media/user_upload/unnamed%20%281%29-61108fd3-a8c6-4c1f-83d3-9b4b809285a1.jpg
      https://static.platzi.com/media/user_upload/unnamed-d9f36c3e-815b-4ace-9aeb-e534928a5eed.jpg

      De aquí ves cómo diferentes tiempos en las ecuaciones, reflejan los diferentes estados de posición del objeto y por lo tanto se evidencia que estas ecuaciones describen un movimiento pendular. Así, vemos cómo las funciones nos ayudan en la descripción de sistemas dinámicos. En el notebook de esta clase está el código completo para que puedas generar un gif animado del péndulo en movimiento a partir de lo que viste aquí.

      De este ejercicio debemos tener en cuenta dos puntos muy importantes:

      1. En general, no es usual tener el conocimiento de cuáles son las funciones que describen un sistema dinámico particular, ya que eso implicaría tener conocimiento del futuro de cualquier situación que veamos en la realidad. Así que las ecuaciones, que viste y que codificaste en Python, no me las inventé sino que son una consecuencia de un principio fundamental (o lo que en ciencia se llama una ley fundamental) que está basado en un conocimiento o intuición que yo tengo de la realidad. Normalmente este conocimiento se traduce en algo que en matemáticas llamamos: una ecuación diferencial ordinaria o EDO. En próximas clases veremos cómo a partir de una EDO puedo obtener la función o funciones que permiten modelar mi sistema dinámico.
      2. Tener un modelo de la realidad, implica tener una o varias funciones que describen cómo evoluciona ese fragmento de realidad que estoy modelando. A ese fragmento lo denominamos sistema dinámico.

      Comentarios

        Lorena Mondragón

        Lorena Mondragón

        student•
        hace 5 años
        210479246_547821393330957_4954407716091961139_n.jpg
          Javier Armando Choque Sansuste

          Javier Armando Choque Sansuste

          student•
          hace un año

          Esta bueno tu resumen, pero la calidad de la imagen, no posibilita leerlo facilmente. Gracias por el aporte

        Samuel Enrique Iglesias Diaz

        Samuel Enrique Iglesias Diaz

        student•
        hace 5 años

        Este sistema visto como una ecuación diferencial se escribiría como una ecuación diferencial de primer orden, sin embargo el modelo que muchos conocemos solo es preciso para valores de theta pequeños.

          Samuel Enrique Iglesias Diaz

          Samuel Enrique Iglesias Diaz

          student•
          hace 5 años

          explicación de modelo del péndulo simple

          Andrés Cardona

          Andrés Cardona

          student•
          hace 5 años

          Gracias Samuel por el video

        Luis Raúl González Romo

        Luis Raúl González Romo

        student•
        hace 6 años

        Yo andaba pasando todo a Colab hasta que leí casi a final lo del notebook

          Andrés Cardona

          Andrés Cardona

          student•
          hace 5 años

          Se aprende más escribiendo el código :)

          Eduardo Monzón

          Eduardo Monzón

          student•
          hace 3 años

          Ajajaja, me pasó igual.

        Daniel Pérez Martínez

        Daniel Pérez Martínez

        student•
        hace 6 años

        No se aún usar python, Ya me asusté, así que lo estudiaré y volveré con toda la furia para pasar este curso.

          Jesus Gabriel Nizama Guevara

          Jesus Gabriel Nizama Guevara

          student•
          hace 6 años

          Esperamos tenerte de regreso pronto! :3

          Ricardo Posada

          Ricardo Posada

          student•
          hace 2 años

          demasiado código para un péndulo simple

        Alan Vazquez

        Alan Vazquez

        student•
        hace 6 años

        Les comparto el codigo con alguna optimizaciones rapidas para crear el gif, lo puden correr como un script desde consola

        import numpy as np import scipy as sp import imageio import matplotlib.pyplot as plt import os import shutil from matplotlib.patches import Circle from matplotlib.animation import FuncAnimation os.mkdir('pendulum') theta0 = np.pi / 4 w = sp.pi def theta(t): return theta0 * np.cos(w*t) def x(t): return np.sin(theta(t)) def y(t): return -np.cos(theta(t)) tmax, dt = 10, .1 t = np.arange(0, tmax, dt) filenames = [] def make_plot(i): r = 0.05 n = int(i / dt) fig = plt.figure(dpi=72) ax = fig.add_subplot(111) ax.plot([0, x(i)], [0, y(i)], lw=2, c='k') c0 = Circle((0, 0), r/2, fc='k', zorder=10) c1 = Circle((x(i), y(i)), r, fc='b', ec='b', zorder=10) ax.add_patch(c0) ax.add_patch(c1) ax.set_xlim(-1.1, 1.1) ax.set_ylim(-1.1, 0) ax.set_aspect('equal', adjustable='box') plt.grid(True) filenames.append('pendulum/frames_img{:04d}.png'.format(n)) plt.savefig('pendulum/frames_img{:04d}.png'.format(n)) for i in t: make_plot(i) images = [] for filename in filenames: images.append(imageio.imread(filename)) imageio.mimsave('pendulum.gif', images) shutil.rmtree('pendulum')
          omar fernando granados vergara

          omar fernando granados vergara

          student•
          hace 3 años

          gracias por la información

        Juan Carlos Valencia López

        Juan Carlos Valencia López

        student•
        hace 6 años

        No puedo crear el gif :'(

          Alan Vazquez

          Alan Vazquez

          student•
          hace 6 años

          Cuanto tiempo esperaste a que este se creara? Es que con la configuracion del codigo, este crea demasiadas imagenes para que el gif se vea fluido, puedes cambiar la variable dt para configurar el numero de imagenes mientras menos imagenes el gif se va ha ver mas salteado con dt=.15 se ve descente

          n_imgs = tmax / dt
        Josue Noha Valdivia

        Josue Noha Valdivia

        student•
        hace 5 años

        Sistema: Es la porción de realidad que vamos a modelar, su este cambia a medida que el tiempo avanza se le conoce como modelo dinámico. Una vez elegido el sistema es necesario elegir las variables del modelo, las cuales relacionaremos por medio de funciones, en muchos casos conocemos estas funciones a través de lo que conocemos en ciencia como leyes, basadas en el conocimiento obtenido anteriormente. Por lo general este conocimiento se traduce en una Ecuación Diferencial Ordinaria (EDO).

        Nota: Tener un modelo de la realidad implica tener una o varias funciones que describe como evoluciona el fragmento de la realidad que elegí. Este fragmento es conocido como sistema dinámico

        Leidy Catherine Benavides Muñoz

        Leidy Catherine Benavides Muñoz

        student•
        hace 6 años

        Hola, es recomendable recomendable trabajar en anaconda-spyder para este taller o en jupyter)?

          Miguel Granados

          Miguel Granados

          student•
          hace 4 años

          Te recomendaría utilizar Google Colab inicialmente para darle fluidez al entendimiento de los temas. Posteriormente, si llegaras a requerir un entorno local lo mejor sería, por términos prácticos, Anaconda con JupyterLab. Ya si te vas a adentrar más a la implementación de estos modelos a nivel de software (básico, intermedio o avanzado), sería mejor que utilizaras Visual Studio Code

        Roger Christian Cansaya Olazabal

        Roger Christian Cansaya Olazabal

        student•
        hace 5 años

        Falta cambiar el grafico dentro del mismo cuadro de la figura.

        import numpy as np import scipy as sp import matplotlib.pyplot as plt from matplotlib.patches import Circle from matplotlib.animation import FuncAnimation import imageio import shutil theta0 = np.pi/4 w = np.pi def theta(t): return theta0*np.cos(w*t) def x(t): return np.sin(theta(t)) def y(t): return-np.cos(theta(t)) tmax, dt = 10, 0.05 t = np.arange(0,tmax,dt) filenames=[] def make_plot(i): r = 0.05 n = int(i/dt) fig = plt.figure(dpi = 72) ax = fig.add_subplot(111) ax.plot([0,x(i)], [0,y(i)], lw = 2, c = 'k') c0 = Circle((0,0), r/2, fc = 'k', zorder = 10) c1 = Circle((x(i), y(i)), r, fc = 'b', ec = 'b', zorder = 10) ax.add_patch(c0) ax.add_patch(c1) ax.set_xlim(-1.1, 1.1) ax.set_ylim(-1.1, 0) ax.set_aspect('equal', adjustable = 'box') plt.grid(True) filenames.append('frames_img{:04d}.png'.format(n)) plt.savefig('frames_img{:04d}.png'.format(n)) plt.show() if __name__=='__main__': tmax, dt = 10, 0.01 t = np.arange(0, tmax, dt) filenames = [] for i in t: make_plot(i)
        FRANCISCO JAVIER HENRIQUEZ HUEZO

        FRANCISCO JAVIER HENRIQUEZ HUEZO

        student•
        hace 8 días

        Francisco, that sounds like a classic case of the code running, but the visualization window closing before you can even blink. Python scripts often finish their execution and kill the plot window immediately unless you explicitly tell them to stay open.

        Are you using plt.show() at the end of your plotting commands, or are you perhaps running this in a way that requires an interactive backend?

        Ricardo Posada

        Ricardo Posada

        student•
        hace 2 años

        el código propuesto es demasiado complejo para el

        problema tan simple que esta abordando, no son necesarias ni tantas lineas ni tantas librerias.

        propongo uno mas eficaz con comentarios

        import numpy

        import matplotlib.pyplot as plt

        # Parámetros del péndulo g = 9.81 # Aceleración debida a la gravedad (m/s^2) L = 1.0 # Longitud del péndulo (metros) theta0 = np.pi / 4 # Ángulo inicial (en radianes) omega0 = 0.0 # Velocidad angular inicial (rad/s)

        # Tiempo de simulación t_max = 10.0 # Duración de la simulación (segundos) dt = 0.01 # Paso de tiempo (segundos)

        # Listas para almacenar resultados t_values = [0] theta_values = [theta0] omega_values = [omega0]

        # Simulación del péndulo t = 0 theta = theta0 omega = omega0

        while t < t_max: alpha = -g / L * np.sin(theta) # Aceleración angular omega += alpha * dt theta += omega * dt t += dt

        t_values.append(t) theta_values.append(theta) omega_values.append(omega)

        # Visualización de la oscilación del péndulo plt.plot(t_values, theta_values) plt.xlabel("Tiempo (s)") plt.ylabel("Ángulo (radianes)") plt.title("Péndulo Simple") plt.grid() plt.show()

        Alexander Florez

        Alexander Florez

        student•
        hace 4 años

        Les dejo el codigo de mi simulacion con animacion en matplotlib, la primera linea es necesaria porque la simule en Jupyter.

        Modificando, el parametro "interval" en la funcion "FuncAnimation" pueden hacer la animacion mas rapida o mas lenta

        %matplotlib notebook import numpy as np import scipy as sp import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation theta0 = np.pi/4 w = sp.pi def theta(t): return theta0*np.cos(w*t) def x(t): return np.sin(theta(t)) def y(t): return -np.cos(theta(t)) tmax, dt = 10, 0.01 t = np.arange(0, tmax, dt) fig, ax = plt.subplots() xdata, ydata = [], [] ln, = ax.plot([], [], 'ro') line, = ax.plot([], [], 'o-', lw=2) def init(): ax.set_xlim(-1.1, 1.1) ax.set_ylim(-1.1, 0) return ln, def update(frame): xdata.append(x(frame)) ydata.append(y(frame)) line.set_data([0,x(frame)], [0, y(frame)]) ln.set_data(xdata, ydata) return ln, ani = FuncAnimation(fig, update, frames=t, interval=100, init_func=init, blit=True) plt.show()
        winnie  najat garcia molero

        winnie najat garcia molero

        student•
        hace 6 años

        SE PUEDE CREAR ESTO EN LA VERSION LIBRE DE PYTHON?

          Alan Vazquez

          Alan Vazquez

          student•
          hace 6 años

          A que te refieres con 'Libre'? Ya que puedes descargar python de manera gratuita, no se si a eso se referia tu pregunta