Can't multiply sequence by non-int of type 'float'

Fermé
Jonquille - 3 mars 2019 à 14:22
 evidemment - 8 avril 2019 à 16:08
Bonjour,
j'ai le message "can't multiply sequence by non-int of type 'float' " qui s'affiche pour la ligne 34 :
(U*cos(omega*t))/d)*test(x,d)



from math import *
import matplotlib . pyplot as plt # 2D


# Choix des paramètres
m=3.34*10**(-27)  #masse de l'ion H2+
e=1.6*10**(-19)   #charge élémentaire
B=1               # Champ magnétique 
U=2*10**3           # tension entre les deux dees
d=5*10**(-3)        #intervalle entre les dees
omega=1.02*e*B/m       # pulsaton cyclotron


tmax =2*10**-6            # Etude sur l'intervalle de temps [0, tmax]
dt = 1e-11                  # Pas de la discrétisation temporelle
n = int(tmax/dt) + 1            # nombre de points

#test de force electrique
def test(x,d):
    '''retourne 1 si x est compris entre -d et d
       sinon retourne 0
    '''

    if abs(x)<d :
        return 1
    else:
        return 0
    
t=[k*dt for k in range(n)]

def E(t):
    '''Norme du champ électrique en fonction de temps
    '''
    return ((U*cos(omega*t))/d)*test(x,d)


J'ai beau mettre float(1) float(0) et définir U=2.0*10**3 au lieu de U=2*10**3 ca ne marche pas :'(

Est ce que quelqu'un aurait la gentillesse de m'éclairer ?
Merci d'avance
Configuration: Windows / Firefox 60.0

1 réponse

Non, désolé. Je n'ai ni le temps ni la gentillesse
-2