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

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