Ask Your Question
2

TypeError: unable to coerce to a real number

asked 2019-04-19 01:58:32 +0100

PierreArnoux gravatar image

updated 2019-04-19 10:41:15 +0100

vdelecroix gravatar image

Le programme suivant :

x=var('x')
y=var('y')
contour_plot(abs(x+y*i),(x,-3.1,3.1),(y,-3.1,3.1))

ne marche pas, et me renvoie:

TypeError: unable to coerce to a real number

Par contre, ça marche si on remplace abs par real ou imag, et ça marche si on met la fonction comme lambda-fonction; ça marche avec abs(x) ou abs (y*i), mais pas avec abs(x+i). Est-ce que quelqu'un comprend ce qui se passe? Est-ce un bug de SAGE? Y a-t-il une solution élégante?

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
1

answered 2019-04-19 10:53:22 +0100

vdelecroix gravatar image

updated 2019-04-19 10:56:39 +0100

Il y a bien un bug dans Sage. Le problème est dans la compilation de la fonction via

x,y = SR.var('x y')
fast_callable(abs(x + i*y), vars=[x,y], domain=RDF)

qui est une étape intermédiaire de l'exemple avec contour_plot. Je suppose que le problème vient du fait qu'il y a un calcul intermédiaire qui implique un nombre complexe. Mon hypothèse est supportée par le fait que l'appel suivant marche

fast_callable(abs(x + i*y), vars=[x,y], domain=CDF)

Ce problème semble similaire à trac ticket #8450.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2019-04-19 01:58:32 +0100

Seen: 224 times

Last updated: Apr 19 '19