J'écris un code pour trouver les racines d'un polynôme pour différentes valeurs d'un paramètre k et l. Ce code fonctionne bien à part quand le paramètre est égal à zéro.Éviter une erreur à zéro
Mon approche a été de décaler le zéro à un petit nombre (comme indiqué ci-dessous), mais cela présente des inconvénients.
xlist = np.linspace(-n_steps*step_size,near_0,n_steps+1)
xlist=np.append(xlist,np.linspace(step_size,n_steps*step_size,n_steps))
ylist = np.linspace(-n_steps*step_size,near_0,n_steps+1)
ylist=np.append(ylist,np.linspace(step_size,n_steps*step_size,n_steps))
for k_i,k in enumerate(xlist):
for l_i,l in enumerate(ylist):
p=[1,-1j*w*k,l**2/(k**2+l**2)*(1-1/R),-l**2/(k**2+l**2)*w*1j*k]
roots=np.roots(p)
Quels sont les avantages et les inconvénients de différentes façons d'éviter de calculer lorsque les paramètres sont nuls? La réponse à k = 0 ou l = 0 n'est pas importante. Je suppose que le meilleur moyen serait de ne pas exécuter le calcul lorsque k ou l est 0.
Merci pour toute aide que vous pouvez donner.
Hilbert roule dans sa tombe –
try-except avec 'ZeroDivisionError' semble raisonnable, non? –
Que suggérerait alors Hilbert @touchmyboomboom – Chogg