IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scilab Discussion :

ne pas confondre 1 qui est different de 1 chez Scilab !


Sujet :

Scilab

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 40
    Points : 27
    Points
    27
    Par défaut ne pas confondre 1 qui est different de 1 chez Scilab !
    Bonjour
    voila un bug Scilab qui m'a fait perdre plusieure heures

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    p=3;
    x=poly(0,'x');
    pc=1+0*x;
    irreduciblePoly=1+x^2;
    p1=1 + x ;
    p2=2 + x ;
    p3=modulo( p1*p2,irreduciblePoly) ;
    p3=poly(modulo(coeff(p3),p),"x","coeff");
    p3=poly(modulo(p+coeff(p3),p),"x","coeff");
    disp(p3) ; 
    disp(pc) ; 
    if p3==pc then disp("p3 is equal to pc") else disp("However p3 is different of pc !!!") end
    Bon, on a la réponse a cette surprenante inégalité quand on compare coeff(pc) avec coeff(p3)
    Parfois Scilab donne le résultat d'un calcul de polynôme qui donne un scalaire sous une forme ou sous l'autre
    je pense que cela doit dépendre de la vitesse du vent.
    ca a l'air facile a trouver comme ca mais quand le pb est bien enfouis dans votre code, bonjour.

    j'ai oublié de préciser que c'est avec la version 6.0.0-beta-2 ! je vais essayer avec la version officielle

    bon ben c'est pareil avec la 5.5.2 officielle.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juin 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 40
    Points : 27
    Points
    27
    Par défaut
    Bonjour
    j'ai utilisé le code ci dessous comme contournement avant de comparer les resultats d'un calcul de polynome
    je redimensionne le plus petit a la taille du plus grand
    (c'est sans doute loin d'etre optimal, mais temps pis,
    de toute facon, j'ai signalé le bug sur Scilab's Bug Tracker bugzilla, je pense que le bug sera corrigé dans la nouvelle release de Scilab)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    // work around to polynomial comparison bug
    function [polyO1,polyO2]=polySameDim(poly1,poly2)
    	l1=length(coeff(poly1)) ;
    	l2=length(coeff(poly2)) ;
     
     
    	if l1> l2 then
    		polyO2=  poly([coeff(poly2) zeros(1,l1 - l2) ],'x',"coeff") ;
    	    polyO1=poly1 ;
    	elseif  l2> l1 then
    		polyO1=  poly([coeff(poly1) zeros(1,l2 - l1) ],'x',"coeff") ;
    	    polyO2=poly2 ;
    	else
    	polyO1=poly1 ;
    	polyO2=poly2 ;
    	end
     
    endfunction
    malgré ce bug Scilab est quand même genialissime !,
    on peut facilement faire des opérations mathématiques compliqués.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 40
    Points : 27
    Points
    27
    Par défaut
    un script pour visualiser les tables de GF(p^n) avec p + n < 12 , qui utilise la fonction polySameDim de contournement de ce bug.


    script GF(p^n)

Discussions similaires

  1. Mon XLS ne traite pas le XML qui est dans du php
    Par Marc22 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 28/05/2010, 09h48
  2. Réponses: 8
    Dernier message: 05/06/2007, 11h09
  3. Qui ne fait pas ce qu'elle est censée faire
    Par mikedavem dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 07/02/2007, 17h27
  4. Ne pas afficher un champs qui est vide dans ma BD
    Par yoda_style dans le forum ASP
    Réponses: 3
    Dernier message: 27/04/2004, 11h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo