Download @syslin.procedur

Back to the list

   1 : * @SYSLIN   PROCEDUR  PV        09/12/23    21:15:08     6590           
   2 : *23456789123456789123456789123456789123456789123456789123456789123456789
   3 : ************************************************************************
   4 : *
   5 : * PROCEDURE POUUR LA RESOLUTION D'UN SYSTEME LINEAIRE
   6 : *
   7 : * L. GELEBART 24/09/08
   8 : *
   9 : ************************************************************************
  10 : ************************************************************************
  11 : DEBPROC @SYSLIN K1*TABLE F1*TABLE;
  12 : DIME0 = VALE DIME;
  13 : OPTI DIME 3;
  14 : *
  15 : IMAX = DIME K1;
  16 : P0 = MANU POI1 (0. 0. 0.);
  17 : *
  18 : * definition des noms des inconnues et de leurs duales
  19 : *-----------------------------------------------------
  20 : I0 = 0;
  21 : REPETE BOU0 IMAX;
  22 : I0 = I0+1;
  23 : SI (I0 EGA 1);
  24 : NOM_I = MOTS (CHAINE 'I' I0);
  25 : NOM_D = MOTS (CHAINE 'D' I0);
  26 : SINON;
  27 : NOM_I = NOM_I ET (MOTS (CHAINE 'I' I0));
  28 : NOM_D = NOM_D ET (MOTS (CHAINE 'D' I0));
  29 : FINSI;
  30 : FIN BOU0;
  31 : *
  32 : *                             definition de la matrice
  33 : *-----------------------------------------------------
  34 : I0 = 0;
  35 : REPETE BOUI0 IMAX;
  36 : I0=I0+1;
  37 : J0 = 0;
  38 : REPETE BOUJ0 IMAX;
  39 : J0 = J0 + 1;
  40 : SI ((I0 EGA 1) ET (J0 EGA 1));
  41 : KPROG0 = PROG (K1 . I0 . J0);
  42 : SINON;
  43 : KPROG0 = KPROG0 ET (PROG (K1 . I0 . J0));
  44 : FINSI;
  45 : FIN BOUJ0;
  46 : FIN BOUI0;
  47 : *
  48 : RIG0 = MANU RIGI P0 NOM_I DUAL NOM_D 'QUEL' KPROG0;
  49 : *
  50 : *                                definition du vecteur
  51 : *-----------------------------------------------------
  52 : I0 = 0;
  53 : REPETE BOUI0 IMAX;
  54 : I0=I0+1;
  55 : SI (I0 EGA 1);
  56 : V0 = MANU CHPO P0 (F1 . I0) (EXTR NOM_D I0);
  57 : SINON;
  58 : V0 = V0 + (MANU CHPO P0 (F1 . I0) (EXTR NOM_D I0));
  59 : FINSI;
  60 : FIN BOUI0;
  61 : *
  62 : *                                resolution du systeme
  63 : *-----------------------------------------------------
  64 : V1 = RESOU RIG0 V0; 
  65 : *
  66 : *         regroupement du resultat sous forme de table
  67 : *-----------------------------------------------------
  68 : U1 = TABLE;
  69 : I0 = 0;
  70 : REPETE BOUI0 IMAX;
  71 : I0=I0+1;
  72 : U1 . I0 = MAXI (EXCO (EXTR NOM_I I0) V1);
  73 : FIN BOUI0;
  74 : *
  75 : OPTI DIME DIME0;
  76 : FINPROC U1;
  77 : ************************************************************************
  78 : * FIN DE LA PROCEDURE @SYSLIN
  79 : ************************************************************************
  80 :  

© Cast3M 2003 - All rights reserved.
Disclaimer