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

Langage Pascal Discussion :

[LG]Matrice et pivot de Gauss


Sujet :

Langage Pascal

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [LG]Matrice et pivot de Gauss
    matrice et pivot de gauss en pascal:HELP

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Bonjour et bienvenue sur le forum.

    Je t'invite à consulter les règles du forum : http://club.developpez.com/regles

    Sache que chaque membre est bénévole et que personne n'est là pour effectuer le travail à ta place.
    Par conséquent effectue un minimum de recherches avant de poser une question dans cette rubrique.

    En ce qui concerne les matrices, tu peux les représenter, en pascal, comme des tableaux à deux dimensions définis de la façon suivante:

    Une matrice carrée 2x2 :
    tMatriceDim2 = array[1..2,1..2] of real;

    Une matrice rectangulaire de dimension n,p
    tMatriceDimNP = array[1..n,1..p] of real;
    En ce qui concerne le pivot de gauss entre deux lignes d'une matrice

    entre ces deux lignes d'une matrice
    a1 b1 c1 ...
    a2 b2 c2 ...

    la seconde ligne (a2 ; b2 ; c2 ...) sera remplacée par

    (a2*a1-a1*a2 ; a2*b1-a1*b2 ; a2*c1-a1*c2 ....)
    Cordialement
    Pensez à utiliser les tags dans le titre.
    Avant de poser une question reportez-vous à la FAQ Delphi
    Respectez les règles du forum.

  3. #3
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut Re: Matrice et pivot de Gauss
    Citation Envoyé par Loopingus
    matrice et pivot de gauss en pascal:HELP
    Connais tu au moins l'algorithme ?
    En supposant que tu as une matrice carrée m*m, le principe est de remplir par des zéros les (m-j) lignes (les j premières lignes sont modifiées par suite de combinaison linéaire) de la colonne j (j=1..m). Ainsi, on aura une seule variable à la dernière ligne et en remontant on résoud l'équation.

    Il existe plusieurs versions de cet algorithme par exemple la variante de Gauss-Jordan mais dans tous les cas, le problème se résume à la triangularisation de la matrice initiale et la solution devient triviale.

    Cherche d'abord l'algorithme (en utilisant google par exemple) puis si tu as des problèmes pour l'implémenter en Pascal, revient ici

    A+

  4. #4
    Débutant
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 268
    Points : 139
    Points
    139
    Par défaut
    juste une petite question , Le pivot de Gauss permet seulement de résoudre des systèmes de n équations à n inconnues indépendantes?

    Moi je l'ai codé en pascal pour mon tpe qui concerne l'interpolation polynomiale.
    On donne des couples de points et il nous résoud la fonction de degré n-1 qui passe par tous ces points.

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
     
    procedure saisie_pts(var Tx,Ty:vecteur;dim:integer);
    var i : integer;
    begin
     
     
    {saisie des points}
     
    for i:=1 to dim do
        begin
        writeln('absisse et ordonnée du point ',i);
        readln(Tx[i]);
        readln(Ty[i]);
        end;
    end;
     
    procedure creer_matrice(tx:vecteur;var ty:vecteur;var matt:matrice ;dim:integer);
    var i,j,k:integer;
     
     
    begin
     
     
     
     
         for i:=1 to dim do
         begin
     
     
     
     
                         for j:=1 to dim do begin
                         matt[i,j]:=1;
     
                                         for k:=dim downto j+1  do begin
                                         matt[i,j]:=     matt[i,j] *   Tx[i];
     
                                         end;
     
                          end;
     
          end;
     
    end;
     
     
    procedure pivot(var mat1:matrice;var v1 :vecteur;dim:integer);
    var i,j,k:integer;
     
    begin
     
    for k:=1 to dim-1 do
      begin
     
          for i:=k to dim-1 do
     
     
          begin
     
            v1[i+1] :=   mat1[i+1,k]* v1[k] -     v1[i+1] * mat1[k,k]   ;
     
                 for j:=k to dim-1 do
                 begin
                 mat1[i+1,1+j]:=   mat1[i+1,k]* mat1[k,j+1] - mat1[i+1,j+1] * mat1[k,k] ;
     
                 end;
                  mat1[i+1,k]:=0;
     
     
    end;
    end;
     
     
    end;
     
     
    procedure resultats(mat1:matrice;v1:vecteur;var v2 : vecteur;dim:integer);
    var i,j,k:integer;
     
    begin
     
    for i:=1 to dim+1 do
    begin
    v2[i] :=0;
    end;
     
    j:=dim ;
    i:=1;
     
     
    for i:=1 to dim do
    begin
     
    for k:=1 to i-1   do
    begin
    v2[j]:= v2[j] - v2[j+k] *  mat1[j,j+k];
    end;
    v2[j]:= (v2[j]+v1[j])  / mat1[j,j] ;
    j:=j-1;
    end;
     
    end;
     
     
    procedure afficher_vecteur(v1:vecteur;dim:integer);
    var i:integer;
     
    begin
    for i:=1 to dim do
    begin
    write('|'); write(v1[i]:3:3);   writeln('|');
    end;
    end;

Discussions similaires

  1. Matrice et élimination de Gauss-Jordan
    Par Imazer dans le forum Calcul scientifique
    Réponses: 7
    Dernier message: 08/12/2010, 22h19
  2. programme pivot de Gauss
    Par azertysq123 dans le forum MATLAB
    Réponses: 7
    Dernier message: 17/11/2010, 18h39
  3. Résolution pivot de Gauss
    Par haraigo dans le forum C
    Réponses: 7
    Dernier message: 16/05/2008, 23h08
  4. Explication de pivot de gauss
    Par bilou_2007 dans le forum Mathématiques
    Réponses: 6
    Dernier message: 01/03/2007, 22h33
  5. [Pivot de Gauss] probleme si pivot nul
    Par jmjmjm dans le forum Mathématiques
    Réponses: 33
    Dernier message: 02/02/2007, 15h47

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