[scilab] Problème sur une erreur d'index invalide
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

[scilab] Problème sur une erreur d'index invalide



  1. #1
    invite42f97068

    [scilab] Problème sur une erreur d'index invalide


    ------

    bonjour, j'ai déjà trouver une réponse sur ce forum à propos du même type d'erreur, mais cela ne pas beaucoup aider donc voilà je vous poste le passage ou il y a l'erreur + les constantes

    Code:
    a1=4;b1=1;c1=2;
    a2=3;b2=1;c2=3;
    k1=1;k2=2;
    h=0.05;
    N=100;
    dx=0.10;
    
    for k =1:N
      for i=1:10  
        u1(1,0)=3;
        u2(1,0)=5;
        u1(k+1,i)= u1(k,i)-(h/dx)*(u1(k,i)- u1(k,i-1))/(1 +h*(a1-b1-c1-k1));
        u2(k+1,i)= u2(k,i)-(h/dx)*(u2(k,i)- u2(k,i-1))/(1 +h*(a2-b2-c2-k2));
      end;
    end;
    l'erreur que j'obtiens est l'erreur 21 "index invalid" on pointant sur

    Code:
    u1(k+1,i)= u1(k,i)-(h/dx)*(u1(k,i)- u1(k,i-1))/(1 +h*(a1-b1-c1-k1));

    -----

  2. #2
    Romain-des-Bois

    Re : [scilab] Problème sur une erreur d'index invalide

    Bonjour,

    u1 et u2 sont des matrices ?

    Si c'est le cas, ceci pose problème dans Scilab :
    Code:
    u1(1,0)=3

  3. #3
    invite42f97068

    Re : [scilab] Problème sur une erreur d'index invalide

    merci, y a t-il un moyen pour ne pas passer par des matrices , ou suis-je obliger de faire :

    Code:
    u1(1,1)=3

  4. #4
    invite42f97068

    Re : [scilab] Problème sur une erreur d'index invalide

    A l'origine je souhaite faire uniquement varier u1 et u2 qui sont deux suites à deux variables, je n'ai pas voulu passer par les matrices donc je cherche la solution à ce problème

  5. A voir en vidéo sur Futura
  6. #5
    Romain-des-Bois

    Re : [scilab] Problème sur une erreur d'index invalide

    Re,

    dans Scilab, l'indexation des vecteurs et des matrices commence à 1. Ca te pose vraiment problème de faire un léger changement d'indice ? Il n'y a presque rien à changer...

  7. #6
    invite42f97068

    Re : [scilab] Problème sur une erreur d'index invalide

    Code:
    a1=4;b1=1;c1=2;
    a2=3;b2=1;c2=3;
    k1=1;k2=2;
    h=0.05;
    N=100;
    dx=0.10;
    
    for k =1:N
      for i=2:10  
        u1(1,1)=3;u2(1,1)=5;
        u1(1,2)=3;u2(1,2)=5;
        u1(k+1,i)= u1(k,i)-(h/dx)*(u1(k,i)- u1(k,i-1))/(1 +h*(a1-b1-c1-k1));
        u2(k+1,i)= u2(k,i)-(h/dx)*(u2(k,i)- u2(k,i-1))/(1 +h*(a2-b2-c2-k2));
      end;
    end;
    Si je fais par exemple ce genre de modification, j'ai toujours le même problème :s

  8. #7
    Fanch5629

    Re : [scilab] Problème sur une erreur d'index invalide

    Bonjour.

    Le problème vient de la référence à droite des égalités à des éléments des matrices u1 et u2 qui n'existent pas.

    Exemple, pour i = 3, le calcul de u1(k+1, 3) fait référence à u1(k,3), entre autres.

    Or, l'élément u1(k,3) n'existe pas et n'a pas été créé de façon dynamique car il n'a pas fait l'objet d'une affectation préalable du genre u1(k,3) = qlqchose.

    La soluce : déclarer les matrices u1 et u2 avant les boucles for :

    u1 = zeros(N+1,10); u2 = u1; (syntaxe à vérifier; ça, c'est du matlab)
    for k = ...

    Dernière chose : sortir les initialisations

    u1(1,1)=3;u2(1,1)=5;
    u1(1,2)=3;u2(1,2)=5;

    des boucles for ( b a ba de l'optimisation )

    Cordialement

  9. #8
    Romain-des-Bois

    Re : [scilab] Problème sur une erreur d'index invalide

    En initialisant les matrices, il n'y a plus de problème.

    Code:
    a1=4;b1=1;c1=2;
    a2=3;b2=1;c2=3;
    k1=1;k2=2;
    h=0.05;
    N=100;
    dx=0.10;
    
    u1=zeros(N+1,10); u2=u1;
    
    u1(1,1)=3;u2(1,1)=5;
    u1(1,2)=3;u2(1,2)=5;
    
    for k =1:N
      for i=2:10  
        u1(k+1,i)= u1(k,i)-(h/dx)*(u1(k,i)- u1(k,i-1))/(1 +h*(a1-b1-c1-k1));
        u2(k+1,i)= u2(k,i)-(h/dx)*(u2(k,i)- u2(k,i-1))/(1 +h*(a2-b2-c2-k2));
      end;
    end;
    EDIT : grillé !
    (mais j'ai testé, et c'est OK)

  10. #9
    Fanch5629

    Re : [scilab] Problème sur une erreur d'index invalide

    Good !

    @+

Discussions similaires

  1. Petit problème tout simple sur Scilab
    Par invite9b8114b6 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 06/04/2010, 20h45
  2. [scilab]Index invalide
    Par invite1cede1ba dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 29/11/2009, 11h13
  3. [Scilab] Détection d'une erreur et arrêt de boucle
    Par Romain-des-Bois dans le forum Mathématiques du supérieur
    Réponses: 7
    Dernier message: 05/06/2009, 21h25
  4. question sur une commande de scilab
    Par invitec7357dcf dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 17/12/2008, 16h15