Pivot de gauss matlab

Résolu/Fermé
question le retour - Modifié le 16 mai 2008 à 15:16
 van - 16 janv. 2018 à 23:40
Bonjour,
j'essaie de programmer la méthode du pivot de gauss en matlab
voilà ce que j'ai
function x = gauss( A,b ) 
[n,n]=size(A);
for j= 2 : n
for i= j: n
A(i,:)=A(i,:)-A(j-1,:)*A(i,j-1)/A(j-1,j-1);
end
end

mon probleme est que cette méthode ne marche pas avec ma matrice car cette méthode ne s'applique qu'avec les matrices triangulaires
or la mienne est simplement carrée

quelqu'un pourrait il maider ou me proposer un programme adequat?
merci
A voir également:

2 réponses

Princess-Sarah
Messages postés
78
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
13 septembre 2009
47
8 mai 2008 à 14:39
Bonjour question !
Ton pivot de Gauss, veux-tu l'utiliser pour calculer l'inverse d'une matrice ou pour calculer la solution d'un système ? Je pencherais pour le second choix d'après le début de ton programme. Dans ton autre sujet je t'écris le programme d'inversion d'un matrice par pivot de Gauss.
function x = solution_gauss(A,b)

n=size(A,1);

for p=1:n
    vec=[(1:p-1) n (p:n-1)];
    test=1;
    while A(p,p)==0
        if test==n
            error('La matrice n''est pas inversible')
        end
        A=A(vec,:);
        b=b(vec);
        test=test+1;
    end
    b(p)=b(p)/A(p,p);
    A(p,:)=A(p,:)/A(p,p);
    for q=p+1:n
        b(q)=b(q)-A(q,p)*b(p);
        A(q,:)=A(q,:)-A(q,p)*A(p,:);
    end
end
x=zeros(n,1);
x(n)=b(n);
for p=n-1:-1:1
    x(p)=b(p);
    for q=p+1:n
    x(p)=x(p)-A(p,q)*x(q);
    end
end

Tu me diras si tout va bien avec le programme.
Bon après midi question !
7
question3000
Messages postés
4
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
11 mai 2008

8 mai 2008 à 21:18
merci
dit moi tu les trouves d'où ces programmes?
0
question3000
Messages postés
4
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
11 mai 2008

11 mai 2008 à 13:18
ta recu mon messagE?
0
Princess-Sarah
Messages postés
78
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
13 septembre 2009
47 > question3000
Messages postés
4
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
11 mai 2008

12 mai 2008 à 20:04
Bonjour question3000 !

Je n'ai reçu aucun message. Ce qui est, je pense, tout à fait normal puisque j'ai configuré mon profil pour qu'on ne puisse pas m'écrire.

Où trouvé-je tous ces programmes, demandais-tu ? J'ai déjà répondu à cette question - ainsi qu'à celle où tu me demandais comment m'envoyer des messages - ici:
http://www.commentcamarche.net/forum/affich 6254366 methode alculant l inverse d une matrice#6
Si je trouvais ces programmes quelque part, ne crois-tu pas qu'il serait bien plus rapide que je te dise où, plutôt que de prendre la peine de les recopier ici ? Ces programmes, je les écris, cela ne prend que quelques minutes. Il n'y a pas à chercher midi à quatorze heures pour faire un petit programme avec deux boucles.

Bonne soirée !
0
je cherche un methode sans pivot de GAUSS
0
Mais alors c'est quoi l'algorithme qui permet de calculer n'importe quel système (sous forme de matrice) à n-équations à n-inconnues?
0
t'es vraiment surdoué Princess-Sarah !!!

un truc , tu pourrais Bien me dire c'est quoi les entrées de ta fonction ?? "vu que je suis debutant en matlab"
0
Mais alors c'est quoi l'algorithme qui permet de calculer la solution d'un système (sous forme de matrice) à n-équations à n-inconnues?
0
Salut Princess-Sarah pt tu m'explique ce syntaxe Stppp
vec=[(1:p-1) n (p:n-1)];
0