Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Licence CC BY-NC-ND Thierry Parmentelat & Arnaud Legout Inria - UCA

remplir une matrice : m(i,j)=xixjm(i, j) = xi * xj

On vous demande d’écrire une fonction xixj qui

  1. accepte un nombre quelconque de paramètres, x1x_1, x2x_2, …, xnx_n, tous des flottants

  2. retourne une matrice carrée symétrique MM dont les termes valent

mij=xi.xjm_{ij} = x_i . x_j

Vous n’avez pas besoin de vérifier que l’appelant passe au moins un paramètre, ou dit autrement, les jeux de tests n’essaient pas d’appeler la fonction sans argument.

import numpy as np

# c'est ce qu'on voit sur cet exemple

from corrections.exo_xixj import exo_xixj

exo_xixj.example()
Loading...
# à vous de jouer
# n'oubliez pas de déclarer les paramètres de votre fonction
def xixj():
    ...
exo_xixj.correction(xixj)
Loading...

Indices

Vous trouverez dans les solutions 3 façons d’implémenter cette fonction; elles utilisent respectivement :
l’opérateur @, la méthode array.dot(), le broadcasting.
Souvenez vous que la transposée d’une matrice peut être obtenue en numpy avec l’attribut .T :

ligne = np.array([1, 2, 3])
ligne.reshape(3, 1)
array([[1], [2], [3]])
ligne.T
array([1, 2, 3])