2020.4.28. Ajouté: Différencier la fonction scalaire avec le vecteur
Bonsoir, je suis un vieil ingénieur. Mon temps n'est pas encore terminé. Cependant, il semble que l'ère de Numpy en matière d'opérations matricielles soit révolue. Son nom est Sympy (je ne pense pas que ce soit un nouveau py)!
Pour le moment, vous pouvez faire quelque chose comme ça.
python
#%%
import sympy as sym
from IPython.display import Math, display
#Définir des variables
(x, y, p, q) = sym.symbols("x y p q")
#Définir une matrice
A = sym.Matrix([
[x,2*x,3*x],
[4*x,5*x,6*x]
])
display((Math(f"A={sym.latex(A)}")))
B = sym.Matrix([
[y,y],
[4*y,5*y],
[7*y,y]
])
display((Math(f"B={sym.latex(B)}")))
#Définir la fonction vectorielle
xy = sym.Matrix([
[x,y]
])
display((Math(f"xy={sym.latex(xy)}")))
pq = sym.Matrix([
[3*x*y,2*x+y]
])
display((Math(f"pq={sym.latex(pq)}")))
#Définir la fonction scalaire
f = x**2
#Multiplication entre matrices
C = A * B
display((Math(f"C=AB={sym.latex(C)}")))
#Matrice x,Remplacez y par un nombre
C1 = C.subs({x:10, y: 20})
display((Math(f"C(10,20)={sym.latex(C1)}")))
#Différencier partiellement la matrice par x
dCdx = sym.diff(C, x)
display((Math(r"\frac{\partial C}{\partial x}"f"={sym.latex(dCdx)}")))
#Différencier partiellement la matrice avec y
dCdy = sym.diff(C, y)
display((Math(r"\frac{\partial C}{\partial y}"f"={sym.latex(dCdy)}")))
#Différencier la fonction scalaire avec un vecteur
dfdxy = sym.diff(f, xy)
display((Math(r"\frac{df}{dxy}"f"={sym.latex(dfdxy)}")))
#Différencier la fonction vectorielle par vecteur
dpqdxy = sym.diff(pq, xy.T)
display((Math(r"\frac{dpq}{dxy}"f"={sym.latex(dpqdxy)}")))
#Différencier la fonction scalaire avec une matrice(J'obtiens une erreur)
# dfdA = sym.diff(f, A)
# display((Math(r"\frac{df}{dA}"f"={sym.latex(dfdA)}")))
Essayez de copier ou de copier à partir de # %% sur la première ligne avec Visual Studio Code.
Vous ne pouvez pas le faire normalement. Piquez la cellule Run dans la figure ci-dessous.
Ensuite, quelque chose comme ça sortira!
Bien entendu, les éléments de la matrice peuvent être des nombres, mais ils peuvent aussi être des lettres comme dans l'exemple ci-dessus. Le calcul se fait également avec des caractères. De plus, vous pouvez substituer une valeur numérique à ce caractère (variable), comme M. Tanaka qui met une formule. Il y a aussi un pervers ... La différenciation est également possible avec un vecteur, donc lors de l'enseignement de la loi de chaîne de propagation arrière Cela semble utilisable. Alors je vais déjeuner.
Recommended Posts