[Calcul scientifique / technique par Python] Dessin d'animation de mouvement parabolique avec locus, matplotlib

introduction

En utilisant la méthode ArtistAnimation de matplotlib, Le mouvement d'un objet qui effectue un mouvement parabolique est affiché avec une trajectoire. Ici, ** une méthode d'affichage de deux images de la partie de lieu et de la partie mobile de l'objet de manière superposée ** a été utilisée. ** C'est un moyen simple et facile de réfléchir pour tout le monde, mais cela peut être utile lorsque vous souhaitez une visualisation rapide. .. ** **


Contenu

** C'est un problème de projection verticale dans la direction du champ de gravité uniforme dans la direction $ y $ et la direction $ \ theta $. ** **

Lorsque le temps $ t = 0 $, la position du point de qualité est $ (x_0, y_0) $, et la grandeur de la vitesse initiale est $ V_0 $. ) $ Les coordonnées sont les suivantes. Le mouvement de ce point de qualité trace une ligne parabolique. x(t) = x_0 + V_0 \ cos(\theta) y(t)= y_0 + V_0 \ sin(\theta)-0.5\ \ g\ t^2

Dans ce problème, définissez $ V_0 = 100 $ m / s, $ (x_0, y_0) = (0, 0) $, $ \ theta = \ pi / 4 $ (= 45 degrés) pour dessiner le mouvement du point de qualité. ..


code

locus.py


"""
Mouvement parabolique animé avec une trajectoire
Animation with a locus
"""

import matplotlib.pyplot as plt
%matplotlib nbagg  # Jupyter-Ajouter lors de l'affichage de l'animation dans le notebook
from matplotlib.animation import ArtistAnimation #Importer des méthodes pour créer des animations
import numpy as np

fig = plt.figure()

anim = [] #Une liste pour stocker les données du diagramme para-para dessiné pour l'animation
tt = np.arange(0,15,0.5) #Réglage de l'heure pour le dessin: t=0 de 0 à 15.En 5 incréments.

x_all=[] #Liste de stockage des données à toutes les x positions
y_all=[] #Liste pour stocker les données de toutes les positions y

#Définition des conditions initiales
V0 =100 #L'amplitude de la vitesse initiale: 100 m/s
theta=np.pi/4
x0=0 #Position initiale: x=0
y0=0 #Position initiale: y = 0
g=9.8 #Constante de gravité[m/s^2]

for t in tt:
    x= [V0*np.cos(theta)*t+x0]  # x(t)Description de
    y = [-( g/2)*t**2+V0*np.sin(theta)*t+y0] # y(t)Description de
    x_all.append(x[0]) #Stocke les données à chaque instant de x
    y_all.append(y[0]) #Stockez vos données à chaque instant

    #Créez deux images, le point de qualité au temps t et le lieu du mouvement jusqu'au temps t, et enregistrez-les dans la liste pour l'animation.
    im=plt.plot(x,y,'o', x_all,y_all, '--', color='red',markersize=10, linewidth = 2, aa=True)
    anim.append(im)


anim = ArtistAnimation(fig, anim) #Création d'animation

#Dessiner la personnalisation
plt.xlabel('X',fontsize=18) # 
plt.ylabel('Y',fontsize=18)
plt.xlim(0, 1100)
plt.ylim(-10,300)
plt.hlines([0], 0, 2000, linestyles="-")  # y=Tracez une ligne à 0.

fig.show() 
anim.save("t.gif", writer='imagemagick')   #Animation.Enregistrez-le en tant que gif et créez un fichier d'animation gif.

résultat

t.gif

Une animation du mouvement du gage lorsqu'il est lancé à une vitesse initiale de 100 m / s dans une direction oblique de 45 degrés avec une trajectoire.


Journal des corrections / modifications:

3 août 2017: ** Masse supprimée m en y (t) **. Merci à T_Shinaji pour l'avoir signalé!

10 août 2017: Changement de anim.save ("t.gif") à ** anim.save ("t.gif", writer = 'imagemagick') **. Merci à yoddy pour l'avoir signalé!


Les références

Pour l'animation d'artiste, chez_sugi Animation avec matplotlib J'ai été autorisé à faire référence.

Recommended Posts

[Calcul scientifique / technique par Python] Dessin d'animation de mouvement parabolique avec locus, matplotlib
[Calcul scientifique / technique par Python] Dessin de surface courbe 3D, surface, fil de fer, visualisation, matplotlib
[Calcul scientifique / technique par Python] Dessin, visualisation, matplotlib de lignes de contour 2D (couleur), etc.
[Calcul scientifique / technique par Python] histogramme, visualisation, matplotlib
[Calcul scientifique / technique par Python] Graphique logistique, visualisation, matplotlib
[Calcul scientifique / technique par Python] Graphique de coordonnées polaires, visualisation, matplotlib
[Calcul scientifique / technique par Python] Tracer, visualiser, matplotlib des données 2D avec barre d'erreur
[Calcul scientifique / technique par Python] Fonctionnement de base du tableau, numpy
[Calcul scientifique / technique par Python] Tracé, visualisation, matplotlib de données 2D lues à partir d'un fichier
[Calcul scientifique / technique par Python] Calcul de somme, calcul numérique
[Calcul scientifique / technique par Python] Exemple de visualisation de champ vectoriel, champ magnétique électrostatique, matplotlib
[Calcul scientifique et technique par Python] Dessin de figures fractales [Triangle de Shelpinsky, fougère de Bernsley, arbre fractal]
Calcul scientifique / technique avec Python] Dessin et visualisation d'isoplans 3D et de leurs vues en coupe à l'aide de mayavi
[Calcul scientifique / technique par Python] Ajustement par fonction non linéaire, équation d'état, scipy
[Calcul scientifique / technique par Python] Calcul du produit de la matrice par l'opérateur @, python3.5 ou supérieur, numpy
[Calcul scientifique / technique par Python] Calcul de matrice inverse, numpy
[Calcul scientifique / technique par Python] Interpolation de Lagrange, calcul numérique
[Calcul scientifique / technique par Python] Calcul numérique pour trouver la valeur de la dérivée (différentielle)
[Calcul scientifique / technique par Python] Solution analytique sympa pour résoudre des équations
[Calcul scientifique / technique par Python] Intégration Monte Carlo, calcul numérique, numpy
[Calcul scientifique / technique par Python] Solution numérique d'une équation différentielle ordinaire du second ordre, problème de valeur initiale, calcul numérique
[Calcul scientifique / technique par Python] Liste des matrices qui apparaissent dans Hinpan en algèbre linéaire numérique
[Calcul scientifique / technique par Python] Liste des utilisations des fonctions (spéciales) utilisées en physique en utilisant scipy
[Calcul scientifique / technique par Python] Solution numérique d'un problème d'oscillateur harmonique unidimensionnel par vitesse Méthode de Berle
[Calcul scientifique / technique par Python] Solution numérique du problème des valeurs propres de la matrice par multiplication de puissance, algèbre linéaire numérique
Créer une animation de tracé avec Python + Matplotlib
[Calcul scientifique / technique par Python] Résolution d'équations linéaires simultanées, calcul numérique, numpy
[Calcul scientifique / technique par Python] Transformation de Fourier à grande vitesse discrète en 3D unidimensionnelle, scipy
[Calcul scientifique / technique par Python] Marche aléatoire 2D (problème de marche ivre), calcul numérique
[Calcul scientifique / technique par Python] Simulation de Monte Carlo par la méthode metropolis de la thermodynamique du système de spin ascendant 2D
[Calcul scientifique / technique par Python] Dérivation de solutions analytiques pour équations quadratiques et cubiques, formules, sympy
[Calcul scientifique / technique par Python] Solution numérique d'une équation de conduction thermique non stationnaire unidimensionnelle par méthode Crank-Nicholson (méthode implicite) et méthode FTCS (méthode de solution positive)
1. Statistiques apprises avec Python 1-3. Calcul de diverses statistiques (statistiques)
Dessin avec Matrix-Reinventor of Python Image Processing-
[Calcul scientifique / technique par Python] Résolution d'équations différentielles ordinaires, formules mathématiques, sympy
[Calcul scientifique / technique par Python] Résolution du problème de la valeur aux limites des équations différentielles ordinaires au format matriciel, calcul numérique
[Calcul scientifique / technique par Python] Résolution de problèmes de valeurs propres (généralisés) en utilisant numpy / scipy, en utilisant des bibliothèques
[Calcul scientifique / technique par Python] Résolution de l'équation différentielle ordinaire du second ordre par la méthode Numerov, calcul numérique
[Calcul scientifique / technique par Python] Résolution de l'équation de Newton unidimensionnelle par la méthode Runge-Kutta du 4ème ordre
[Python] axe limite du graphe 3D avec Matplotlib
1. Statistiques apprises avec Python 1-2. Calcul de diverses statistiques (Numpy)
Calcul des indicateurs techniques par TA-Lib et pandas
La base de la théorie des graphes avec l'animation matplotlib
[Python] Personnalisez la palette de couleurs lors du dessin de graphiques avec matplotlib
[Calcul scientifique / technique par Python] Solution numérique d'équations d'ondes unidimensionnelles et bidimensionnelles par méthode FTCS (méthode explicite), équations aux dérivées partielles bi-courbes
Animation avec matplotlib
Animation avec matplotlib
[Calcul scientifique / technique par Python] Génération de nombres aléatoires non uniformes donnant une fonction de densité de probabilité donnée, simulation Monte Carlo
Mémo de "Cython-Accélérer Python en fusionnant avec C"
[Calcul scientifique / technique par Python] Solution numérique d'équations différentielles ordinaires du premier ordre, problème de valeur initiale, calcul numérique
[Calcul scientifique / technique par Python] Vague "gémissement" et vitesse de groupe, superposition des vagues, visualisation, physique du lycée
Carte thermique par Python + matplotlib
Dessin en temps réel avec matplotlib
Dessiner avec Python Tinker
Installation de matplotlib (Python 3.3.2)
Calcul numérique avec Python
Effectuer une analyse isocurrent des canaux en eau libre avec Python et matplotlib
[Introduction à Data Scientist] Bases du calcul scientifique, du traitement des données et comment utiliser la bibliothèque de dessin de graphes ♬ Bases de Matplotlib
[Calcul scientifique / technique par Python] Solution numérique de l'équation de Laplace-Poisson bidimensionnelle pour la position électrostatique par la méthode Jacobi, équation aux dérivées partielles elliptiques, problème des valeurs aux limites