Nous voulons tracer la courbe, avec :
On prendra plus tard.
Pour une valeur de le calcul est x.T @ A @ x
, mais on veut faire ce calcul pour un ensemble de
On construit un maillage: un ensemble de point pour lesquels on calculera
On utilise np.meshgrid
Pour calculer , on commence par calculer pour tous points du maillage. On utilise la matrice identité pour vérifier nos calculs.
On retrouve 2*M
.
On peut vérifier sur un certain point:
Notez qu'on a écrit et non . Lorsqu'on a un vecteur, Numpy privilégie le produit matrice vecteur qui donne un vecteur. Ainsi: m[0,1] @ A == m[0,1].T @ A
Si on veut une différence entre un vecteur vertical et horizontal, il faut utiliser des arrays
2D de taille 1*n
ou n*1
Comme A est la matrice identité x2, on retrouve pour tout point sa norme au carré
np.tensordot
Un tensor est une matrice en N dimensions.
Comparons les temps de calcul.
On peut avoir un gain de temps 30% et plus ou un peu moins bien que einsum