Lorsque vous effectuez des calculs algébriques à l'aide de Sympy, vous voudrez peut-être jeter un coup d'œil à ce à quoi ressemble le graphique de cette formule. En parlant de graphes en Python, je pense que la première chose qui me vient à l'esprit est matplotlib, mais quand $ y = f (x) $, $ x $ doit être assigné en utilisant l'arrangement de numpy, ce qui est gênant. .. Le module Plotting de Sympy peut être utilisé dans de tels cas. Cela non seulement trace la formule telle quelle, mais fait également quelque chose d'assez compliqué.
Tout d'abord, importez les modules requis. Dans Sympy, il semble que "from sympy import ~" soit souvent utilisé. En plus du var qui définit les variables, cette fois j'utiliserai la "fonction plot_implicit" qui vous permet de découvrir la génialité du module Plotting. De plus, en fait, le graphique de Sympy a matplotlib fonctionnant dans les coulisses, alors importez-le également.
Importez les modules nécessaires, etc.
from sympy import var
from sympy.plotting import plot_implicit
import matplotlib.pyplot as plt
Tout d'abord, dessinons un cercle ($ x ^ 2 + y ^ 2 = 1 $).
Importez les modules nécessaires, etc.
#Dessiner une ellipse
var('x,y')
size = 1.1
f = x**2 + y**2 - 1
plot_implicit(f, (x, -size, size), (y, -size, size),
xlim=(-size*1.1, size*1.1), ylim=(-size*1.1, size*1.1))
plt.rcParams['figure.figsize'] = (5, 5)
Avec plot_implicit, vous pouvez représenter graphiquement la formule sans avoir à la faire ressembler à $ y = f (x) $. Vous pouvez créer un graphique simplement en entrant une formule et en spécifiant la plage de $ x, y $ avec plot_implicit. Après cela, dans plt.rcParams de matplotloib, spécifiez la taille du graphique, etc. et c'est terminé. Le résultat est le suivant:
Ensuite, dessinons une double courbe. La formule est $ x ^ 2- y ^ 2 = 1 $. Le programme et le graphique sont les suivants.
Importez les modules nécessaires, etc.
#Dessinez une double courbe
var('x,y')
size = 5
f= x**2 - y**2 - 1
plot_implicit(f, (x, -size, size), (y, -size, size),
xlim=(-size*1.1, size*1.1), ylim=(-size*1.1, size*1.1))
plt.rcParams['figure.figsize'] = (5, 5)
Dessinons les deux dernières lignes droites qui se croisent. La formule est $ f = x ^ 2 --y ^ 2 --0 $. Le programme et le graphique sont les suivants.
Importez les modules nécessaires, etc.
#Dessin de courbes qui se croisent
var('x,y')
size = 5
f= x**2 - y**2 - 0
plot_implicit(f, (x, -size, size), (y, -size, size),
xlim=(-size*1.1, size*1.1), ylim=(-size*1.1, size*1.1))
plt.rcParams['figure.figsize'] = (5, 5)
Du coup j'ai utilisé une fonction spéciale, mais je pense que c'est très pratique. Cependant, il semble que plot_implicit ne puisse pas être utilisé en 3D, vous devez donc utiliser un autre module. Je fais un peu plus de recherches à ce sujet.
Recommended Posts