Exception en point flottant (core dumped)

Pour toute demande d'aide sur des exemples non finalisés, c'est ici.
Les exemples aboutis et intéressants seront ajoutés aux sous-forums qui suivent.

Règles du forum
Pour toute demande d'aide pour la conception (ou la confirmation d'un code) d'une figure Asymptote, c'est ici.

J'invite ceux qui ont régulièrement des questions à poser à aller dans leur panneau de l'utilisateur pour indiquer dans la signature de leurs messages :

  1. Nom du système d'exploitation (W7 ou Ubuntu 12.04 ou ...)
  2. Version d'Asymptote et éditeur utilisé pour les figures Asymptote
  3. Distribution LaTeX et éditeur utilisé pour les tex.


On va gagner du temps dans les réponses !
maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Exception en point flottant (core dumped)

Message non lu par maurice » lun. 28 juin 2010, 15:24

Bonjour,

lorsque je compile :

Code : Tout sélectionner

pair f(pair z) {return z^5-1;}
int i=0;
pair z=c;
do {
    ++i;
    z=z-((z^5+1)/(5*z^4));
} while ....


j'obtiens le message d'erreur suivant :

Code : Tout sélectionner

$ asy Newton.asy 
Newton.asy: 18.7: runtime: Exception en point flottant (core dumped)

Quelqu'un peut-il m'éclairer sur la signification (et la cause probable) de ce message.

Merci d'avance

Maurice
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1512
Enregistré le : dim. 7 mars 2010, 14:50

Re: Exception en point flottant (core dumped)

Message non lu par GM » lun. 28 juin 2010, 15:26

Code : Tout sélectionner

while ....


Comment veux-tu que l'on teste ???? :shock:
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

OG
V.I.P.
V.I.P.
Messages : 142
Enregistré le : dim. 7 mars 2010, 22:27

Re: Exception en point flottant (core dumped)

Message non lu par OG » lun. 28 juin 2010, 15:27

Il faudrait le code entier, la variable c n'est pas définie...

Sinon asymptote possède une fonction Newton-Raphson.

A+
O.G.

maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Re: Exception en point flottant (core dumped)

Message non lu par maurice » lun. 28 juin 2010, 15:30

GM a écrit :Comment veux-tu que l'on teste ???? :shock:


avec ca :

Code : Tout sélectionner

//Méthode de Newton avec Asymptote 1.98

//Fonction étudiée et ses zéros
pair f(pair z) {return z^5-1;}
pair[] racine;
       racine[0]=(-0.809,0.588);
       racine[1]=(0.309,0.951);
       racine[2]=(1,0);
       racine[3]=(0.309,-0.951);
       racine[4]=(-0.809,-0.588);

//Coloration des solutions
void newton(pair c, pair[] racine, pair f(pair z), real r, int count=50) {
   int i=0;
   pair z=c;
   do {
       ++i;
       z=z-((z^5+1)/(5*z^4));
   } while (length(z-racine[0])>r && length(z-racine[1])>r && length(z-racine[2])>r && length(z-racine[3])>r && length(z-racine[4])>r && i<count);
   pen p;
   real step=0.01;
   path sq=scale(step)*unitsquare;
   if (length(z-racine[0])<=r) {p=(i/count)*green;
                 filldraw(shift(c.x,c.y)*sq,p,p);}
   else {
      if (length(z-racine[1])<=r){p=(i/count)*red;
                    filldraw(shift(c.x,c.y)*sq,p,p);}
      else {
         if (length(z-racine[2])<=r) {p=(i/count)*blue;
                       filldraw(shift(c.x,c.y)*sq,p,p);}
         else {
            if (length(z-racine[3])<=r) {p=(i/count)*yellow;
                       filldraw(shift(c.x,c.y)*sq,p,p);}
            else {
               if (length(z-racine[4])<=r) {p=(i/count)*orange;
                    filldraw(shift(c.x,c.y)*sq,p,p);}
               else filldraw(shift(c.x,c.y)*sq,black,black);
            }
         }
      }
   }
}

//
real r=0.1;
real step=.05;
real xmin=-1, xmax=1;
real ymin=-1, ymax=1;

real x=xmin, y=ymin;
int xloop=round((xmax-xmin)/step);
int yloop=round((ymax-ymin)/step);

for(int i=0; i < xloop; ++i) {
  for(int j=0; j < yloop; ++j) {
    if((x,y)!=(0,0)) {
      newton((x,y),racine,f,r);}
    y += step;
  }
  x += step;
  y=ymin;
}


Brouillon de la méthode de Newton largement inspiré de Philippe Ivaldi : http://www.piprime.fr/821/Fractals-with-asymptote-fig0080/

maurice
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1512
Enregistré le : dim. 7 mars 2010, 14:50

Re: Exception en point flottant (core dumped)

Message non lu par GM » lun. 28 juin 2010, 15:37

maurice a écrit :avec ca :

... si c'est cela qui a produit l'erreur pour toi, je précise que moi, je n'ai pas d'erreur mais je ne comprends pas ce que je j'obtiens.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Re: Exception en point flottant (core dumped)

Message non lu par maurice » lun. 28 juin 2010, 15:48

Il y a une erreur dans le code (c'est un brouillon), il faut remplacer les :

Code : Tout sélectionner

filldraw(shift(c.x,c.y)*sq,p,p);}

par :

Code : Tout sélectionner

filldraw(shift(z.x,z.y)*sq,p,p);}


Cela ne marche toujours pas chez moi.

Maurice
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1512
Enregistré le : dim. 7 mars 2010, 14:50

Re: Exception en point flottant (core dumped)

Message non lu par GM » lun. 28 juin 2010, 16:02

J'obtiens cela (en ayant ajouté un size(5cm)) :

2010-06-28_170143.png
2010-06-28_170143.png (3.13 Kio) Vu 9247 fois


C'est ce qu'il faut ?

Pas d'erreur de compilation en tout cas.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Re: Exception en point flottant (core dumped)

Message non lu par maurice » lun. 28 juin 2010, 16:08

GM a écrit :J'obtiens cela (en ayant ajouté un size(5cm)) :

C'est ce qu'il faut ?

Pas d'erreur de compilation en tout cas.


Non, pas vraiment, je vais regarder de plus près.
Et toujours une erreur de compilation ici.

Maurice
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Re: Exception en point flottant (core dumped)

Message non lu par maurice » lun. 28 juin 2010, 18:58

J'ai modifié le script pour faire apparaitre les calculs :

Code : Tout sélectionner

//Fonction étudiée et ses zéros
pair f(pair z) {return z^5-1;}
pair fprime(pair z) {return 5*z^4;}
pair[] racine;
       racine[0]=(-0.809,0.588);
       racine[1]=(0.309,0.951);
       racine[2]=(1,0);
       racine[3]=(0.309,-0.951);
       racine[4]=(-0.809,-0.588);

//Coloration des solutions
void newton(pair c, pair[] racine, pair f(pair z), pair fprime(pair z), real r, int count=50) {
   int i=0;
   pair z=c;
   do {
       ++i;
       z=z-(f(z)/fprime(z));
       write("Re(z)"+string(z.x));
       write("Im(z)"+string(z.y));
   } while (length(z-racine[0])>r && length(z-racine[1])>r && length(z-racine[2])>r && length(z-racine[3])>r && length(z-racine[4])>r && i<count);
   pen p;
   real step=0.01;
   path sq=scale(step)*unitsquare;
   if (length(z-racine[0])<=r) {p=(i/count)*green;
                 //filldraw(shift(z.x,z.y)*sq,p,p);}
                 write("z0="+string(length(z)));}
   else {
      if (length(z-racine[1])<=r){p=(i/count)*red;
                    //filldraw(shift(z.x,z.y)*sq,p,p);}
                    write("z1="+string(length(z)));}
      else {
         if (length(z-racine[2])<=r) {p=(i/count)*blue;
                       //filldraw(shift(z.x,z.y)*sq,p,p);}
                       write("z2="+string(length(z)));}
         else {
            if (length(z-racine[3])<=r) {p=(i/count)*yellow;
                          //filldraw(shift(z.x,z.y)*sq,p,p);}
                          write("z3="+string(length(z)));}
            else {
               if (length(z-racine[4])<=r) {p=(i/count)*orange;
                    //filldraw(shift(z.x,z.y)*sq,p,p);}
                    write("z4 = "+string(length(z)));}
               else //filldraw(shift(z.x,z.y)*sq,black,black);
               write("aucun"+string(length(z)));
            }
         }
      }
   }
}

//
real r=0.1;
real step=.01;
real xmin=-1.5, xmax=1.5;
real ymin=-1, ymax=1;

real x=xmin, y=ymin;
int xloop=round((xmax-xmin)/step);
int yloop=round((ymax-ymin)/step);

for(int i=0; i < xloop; ++i) {
  for(int j=0; j < yloop; ++j) {
    if((x,y)!=(0,0)) {
      newton((x,y),racine,f,fprime,r,30);}
    y += step;
  }
  x += step;
  y=ymin;
}


J'obtiens :

Code : Tout sélectionner

$asy assai.asy
....
Im(z)-1.23942180300241e-05
aucun30948.5009821438
Re(z)-3.12614582236207e+58
Im(z)-3.90525278483203e+58
essai.asy: 17.7: runtime: Exception en point flottant (core dumped)


puis avec

Code : Tout sélectionner

$ asy
Welcome to Asymptote version 2.00 (to view the manual, type help)
> (-3.13e+58,-3.91e+58)-((-3.13e+58,-3.91e+58)^5-1)/(5*(-3.13e+58,-3.91e+58)^4)
(-nan,-nan)


C'est donc que les nombres sont trop grands ?!
Comment cela se fait-il que le code marche chez Gaétan ?

Maurice
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

Avatar du membre
chellier
Messages : 104
Enregistré le : jeu. 18 mars 2010, 17:30

Re: Exception en point flottant (core dumped)

Message non lu par chellier » lun. 28 juin 2010, 19:36

maurice a écrit :C'est donc que les nombres sont trop grands ?!
Comment cela se fait-il que le code marche chez Gaétan ?

Maurice


Chez moi ça fonctionne bien aussi, pas de problème de nombres trop grands (asymptote 2.00svn)

Christophe

Répondre