Il y a quelques erreurs dans ton code, voilà le code corrigé:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
w = np.linspace(0,20,100)
def transfert(w):
return ((92.2)**2)/(np.sqrt((-w**2+(92.2)**2)**2+(2*0.21*w)**2))
plt.plot(w,transfert(w))
plt.grid(True)
plt.legend(['w','|Xm|'],loc='lower right')
plt.savefig('fonction de transfert.pdf')
plt.show()
Tu appelles la fonction sqrt() du module math alors que celle-ci
n'est pas callable directement. Il faut donc appeler math.sqrt().
Cela produit une erreur:
TypeError: only length-1 arrays can be converted to Python scalars
Le problème de ton approche est que la fonction math.sqrt() attend
un nombre unique comme entrée. Puisque tu souhaites utiliser un
array numpy avec plus d'un élément, il faut donc utiliser np.sqrt()
.
- Tu essayes de plot transfert(w), une fonction, mais tu appeles seulement transfert, comme ci celle-ci était une variable.