Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

gauss-seidel



  1. #1
    os2

    gauss-seidel


    ------

    salut

    je dois coder l'algo de gauss-seidel sur une ti-92 plus...

    en paramètre il doit avoir (a, b, x0,k)

    a est une matrice carré, b un vecteur colonne, x0 une approximation inixiale (vecteur colonne), k un entier k>=1

    je doit retourner le résultat de la kieme itération de cette méthode...

    si me rappele bien, la formule de gauss-seidel est

    X^(k+1) = (D-L)^(-1) U * X^K + (D-L)^-1 *B

    c'est de la difficulté a associé les paramètre que je dois utiliser à ceux de la formule...

    merci

    -----

  2. #2
    indian58

    Re : gauss-seidel

    Je vais regarder ton problème. Mais va plutôt sur le forum de:
    http://tigen.org

  3. #3
    os2

    Re : gauss-seidel

    je joins l'algo que j'ai vue sur:

    http://www.unige.ch/ses/metri/gilli/.../MNE-Cours.pdf

    je comprends pas comment décomposé cela
    Images attachées Images attachées  

  4. #4
    os2

    Re : gauss-seidel

    je viens de trouver:

    http://phys.ucc.ie/~oll/AM2054/programs/Jacobi and gauss-Seidel.htm

    la fonction en c++

    au lieu de faire un do while pour savoir si on approche le taux d'erreur voulu, je ne fais que réitérer tant que la valeur n'est pas = à k....

    ça donne

    Code:
    gasei(a,b,x0,k)
      Prgm
      if coldim(a)  != rowdim(a) then
       disp "matrice non carree"
      return 0
      
      elseif coldim(b)!=1 then
       disp "nombre de colonne !=1
      return 0
      
      elseif coldim(x0)!=1 then
       disp "nombre de colonne !=1
      return 0
      
      elseif rowdim(a) != rowDim(b) then
       disp "le vecteur colonne b n'a pas le même ordre que a"
      return 0
      
      elseif rowdim(a) != rowDim(x0) then
       disp "le vecteur colonne x0 n'a pas le même ordre que a"
      return 0
      
      elseif k<1 then
       disp "k est inferieur a 1"
      return 0
      
      else
      
        local count, tmp
        for count,0, k
           for  i,0,rowdim(a)
             tmp=b[i]
             for j,0,i
               tmp=tmp-a[i][j]*x0[j]
             endfor
             x0[i]=tmp/a[i][i]
           endfor
         endfor
         for i,0, rowdim(x0)
           disp x0[i]
         endfor
     endif 
      endprgm
    à l'exécution

    [10,0,0;1,15,0;-1,1,20] -> a

    [2;12;17] -> b

    [0;0;0] -> x0

    1 -> k

    gasei(a,b,x0,k)

    il me retourne dimension et va à la ligne

    tmp=b[i]

    une idée?

  5. A voir en vidéo sur Futura

Discussions similaires

  1. canon de gauss
    Par Shiron dans le forum Physique
    Réponses: 3
    Dernier message: 04/04/2008, 23h53
  2. Courbe de gauss
    Par christ dans le forum Mathématiques du collège et du lycée
    Réponses: 4
    Dernier message: 06/08/2007, 15h48
  3. Paramètre de relaxation de Gauss Seidel?
    Par Ssk dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 09/04/2006, 15h01
  4. différence entre gauss et gauss-jordan...
    Par os2 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 02/08/2005, 19h26
  5. info méthode de Gauss-Seidel
    Par os2 dans le forum Mathématiques du supérieur
    Réponses: 10
    Dernier message: 10/07/2005, 10h27