<jupyter_start><jupyter_text>Vérification de connaissance - Série 1 - SolutionVoici les solutions de la série 1 pour vous permettre de vérifier par vous même les solutions. **Solution 1**1. Quelle touche ou combinaison de touches devez-vous utiliser pour exécuter une cellule dans un notebook jupyter ?    - `Shift - Enter` permet d'éxécuter et de passer à la cellule suivante.     - `Ctrl - Enter` permet d'éxécuter la cellule suivante et de rester sur la cellule.        2. Quelle touche ou combinaison de touches devez-vous utiliser pour créer une cellule en dessous d'une cellule existante dans un notebook ?    - Il faut cliquer à gauche de la cellule courante pour la sélectionner et taper `b`        3. Quelle touche ou combinaison de touches devez-vous utiliser pour effacer une cellule dans un notebook ?    - Il faut cliquer à gauche de la cellule à effacer pour la sélectionner et taper `x`        4. Quelle est la commande magique permettant d'obtenir la liste des variables et objets actuellement stockés dans l'espace mémoire du notebook ?    - `%who` ou `%whos` **Solution 2** Créez un tableau numpy contenant les valeurs suivantes : $$ a = \left[ \begin{array}{ccc} 2 &  3  & 6 \\ 1 & 1 & 0 \\ 5 & 1 & 0 \end{array}  \right] $$$$ b = \left[ \begin{array}{ccc} 1 &  0  & -2 \\ -1 & 1 & 0 \\ 0 & 1 & 0 \end{array}  \right] $$Calculez le produit terme à terme de $a$ et $b$, puis le produit matriciel de $a$ et $b$<jupyter_code>import numpy as np

a = np.array([ [2,3,6], [1,1,0], [5,1,0] ])
b = np.array([ [1,0,-2], [-1,1,0], [0,1,0] ])

print("Le produit terme à terme de a et b est égal à :")
print( a * b )

print("Le produit matriciel de a et b est égal à :")
print( np.dot(a, b) )


print("On peut le calculer aussi avec @ :")
print( a @ b)<jupyter_output>Le produit terme à terme de a et b est égal à :
[[  2   0 -12]
 [ -1   1   0]
 [  0   1   0]]
Le produit matriciel de a et b est égal à :
[[ -1   9  -4]
 [  0   1  -2]
 [  4   1 -10]]
On peut le calculer aussi avec @ :
[[ -1   9  -4]
 [  0   1  -2]
 [  4   1 -10]]<jupyter_text>**Solution 3** Créez un tableau numpy contenant les valeurs suivantes :     $$ b = \left[ \begin{array}{ccccc}             1 & 1 & 2 & 3 & 1 \\             1 & 1 & 2 & 3 & 1 \\             1 & 1 & 2 & 3 & 1 \\             1 & 1 & 2 & 3 & 1 \\             1 & 1 & 2 & 3 & 1 \\             1 & 1 & 2 & 3 & 1 \\             0 & 0 & 0 & 0 & 0 \\                         \end{array}  \right] $$<jupyter_code>b = np.ones((7, 5))
b[:,2] = 2
b[:,3] = 3
b[-1,:] = 0
print( b )<jupyter_output>[[1. 1. 2. 3. 1.]
 [1. 1. 2. 3. 1.]
 [1. 1. 2. 3. 1.]
 [1. 1. 2. 3. 1.]
 [1. 1. 2. 3. 1.]
 [1. 1. 2. 3. 1.]
 [0. 0. 0. 0. 0.]]<jupyter_text>**Solution 4** La matrice $c$ est égale au produit entre la matrice transposée de $b$ et $b$. Faites le calcul, que vaut $c$ ?<jupyter_code>c = b.T @ b
print( c )<jupyter_output>[[ 6.  6. 12. 18.  6.]
 [ 6.  6. 12. 18.  6.]
 [12. 12. 24. 36. 12.]
 [18. 18. 36. 54. 18.]
 [ 6.  6. 12. 18.  6.]]<jupyter_text>**Solution 5**. Créez un tableau unidimensionnel $x$ qui contient exactement 20 valeurs commençant à 0.3 et se terminant à 4 $\pi$.<jupyter_code>x = np.linspace(0.3, 4*np.pi, 30)
print(x)<jupyter_output>[ 0.3         0.7229783   1.14595659  1.56893489  1.99191319  2.41489149
  2.83786978  3.26084808  3.68382638  4.10680467  4.52978297  4.95276127
  5.37573956  5.79871786  6.22169616  6.64467446  7.06765275  7.49063105
  7.91360935  8.33658764  8.75956594  9.18254424  9.60552254 10.02850083
 10.45147913 10.87445743 11.29743572 11.72041402 12.14339232 12.56637061]<jupyter_text>**Solution 6**. Créez un tableau bidimensionnel ou matrice $m$ qui contient :- dans sa première colonne les valeurs de $\cos(x)$ - dans sa deuxième colonne les valeurs de $\sin(x)$, - dans sa troisième colonne des 1avec $x$ le vecteur calculés dans la question précédente.<jupyter_code>m = np.ones( (len(x), 3) ) 
m[:,0] = np.cos( x )
m[:,1] = np.sin( x )
print( m )<jupyter_output>[[ 9.55336489e-01  2.95520207e-01  1.00000000e+00]
 [ 7.49838554e-01  6.61620845e-01  1.00000000e+00]
 [ 4.12174767e-01  9.11104803e-01  1.00000000e+00]
 [ 1.86143458e-03  9.99998268e-01  1.00000000e+00]
 [-4.08779992e-01  9.12632959e-01  1.00000000e+00]
 [-7.47370234e-01  6.64407806e-01  1.00000000e+00]
 [-9.54229688e-01  2.99074745e-01  1.00000000e+00]
 [-9.92897495e-01 -1.18972954e-01  1.00000000e+00]
 [-8.56558105e-01 -5.16050591e-01  1.00000000e+00]
 [-5.69242573e-01 -8.22169626e-01  1.00000000e+00]
 [-1.81592869e-01 -9.83373800e-01  1.00000000e+00]
 [ 2.38064227e-01 -9.71249414e-01  1.00000000e+00]
 [ 6.15760341e-01 -7.87933501e-01  1.00000000e+00]
 [ 8.84923105e-01 -4.65737156e-01  1.00000000e+00]
 [ 9.98110138e-01 -6.14504083e-02  1.00000000e+00]
 [ 9.35371198e-01  3.53667532e-01  1.00000000e+00]
 [ 7.07764592e-01  7.06448358e-01  1.00000000e+00]
 [ 3.55408051e-01  9.34711248e-01  1.00000000e+00]
 [-5.95923851e-02  9.98222795e-01  1.00000000e+00]
 [-4.64089122e-01  8.85788511e-[...]<jupyter_text>**Solution 7**. Faire un graphe de la fonction $$f(x) = \frac{x^3}{6}\cdot \cos\left[ \sin(x)\right] \cdot \exp(-x) + \left( \frac{1}{1+x}\right)^2 $$pour $x \in [1,20]$<jupyter_code>x = np.linspace(1,20,100)
fx = x**3 / 6 * np.cos( np.sin(x) ) * np.exp( -x ) + (1/(1+x))**2

import matplotlib.pyplot as plt
plt.plot(x,fx)
plt.xlabel('x')
plt.ylabel('f(x)')
plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.15827740492170023, 'fraction_numerical': 0.21383296047725578, 'mean_word_length': 2.759635599159075, 'pattern_counts': {'":': 0, '<': 20, '<?xml version=': 0, '>': 20, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 19, 'word_list_counts': {'cursed_substrings.json': 13, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '658067', 'license': 'MIT', 'n_tokens_mistral': 3018, 'n_tokens_neox': 2354, 'n_words': 665, 'path': 'series/serie01_solutions.ipynb', 'repo_name': 'randlab/amde', 'size': '5364'}