graphe avec matlab

a marqué ce sujet comme résolu.

bonjour je n'ai pas l’habitude de programmer avec matlab mais la j'ai un devoir et je suis obligée de travailler avec alors on me demande écrire un programme qui permet de représenter numériquement un graphe non orienté. je ne sais même pas par ou commencer je sais juste comment écrire des fonction sur matlab je vous demande de bien vouloirs m'oriente et m'aider pour que je puisse démarrer merci

Merci pour votre remarque moi même je n'ai pas compris pourquoi numérique :( on m'a dit que mon programme doit contenir Une fonction permettant de créer une matrice d’adjacence MA vide, correspondant à un graphe ayant « n sommets et plein d'autre chose .Alors pour commencer j'ai essayé d’écrire cette première fonction et voila ce que j'ai fait function adj=matriceadjacense(N,M) %la taille de la matrice MN=MN adj=zeros(NM) %matrice vide for i=1:N for j=1:N A = M(i-1)+j;
if(j<N)
B = M
(i-1)+j+1;
adj(A,B) = 1; adj(B,A) = 1; end if(i<M) B = M*i+j;
adj(A,B) = 1;
adj(B,A) = 1; end
end end
end

Si tu veux que l'on puisse t'apporter de l'aide, il serait préférable que tu utilises les balises de code (dans la barre d'outils de l'éditeur) pour présenter du code. Il serait aussi bien que tu l'indentes pour améliorer la lisibilité. Par exemple :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
adj = matriceadjacense(N,M) % la taille de la matrice MN=M * N 
    adj = zeros(N * M) % matrice vide 
    for i=1:N 
        for j=1:N 
            A = M(i-1)+j;
            if(j<N)
                B = M(i-1)+j+1;
                adj(A,B) = 1; 
                adj(B,A) = 1; 
            end 
            if(i<M) 
                B = M*i+j;
                adj(A,B) = 1;
                adj(B,A) = 1; 
            end
        end 
    end
end

Le code que tu présentes est incomplet (par exemple : toutes les variables ne sont pas définies).

Et le plus important, qu'est ce que tu cherches à faire ? Pourrais-tu préciser les consignes ?

On dirait que tu utilises des tableaux. Sur Matlab tu peux définir des matrices : https://fr.mathworks.com/help/matlab/learn_matlab/matrices-and-arrays.html?s_tid=gn_loc_drop

Par exemple pour définir une matrice de zéros : zeros(N,M) (et non pas zeros(NM))

+1 -0

salut alors je vais vous dire ce qu'on me demande exactement . On me demande d’écrire un programme qui permet de représenter numériquement un graphe non orienté ce programme la doit contenir :

  1. Une fonction permettant de créer une matrice d’adjacence MA, vide, correspondant à un graphe ayant « n » sommets.

  2. Une fonction permettant d’ajouter une arête au graphe.

  3. Une fonction permettant de supprimer une arête du graphe

  4. Une fonction permettant d’ajouter un sommet au graphe.

  5. Une fonction permettant de supprimer un sommet du graphe.

  6. Une fonction permettant d’afficher la matrice d’adjacence.

  7. Une fonction permettant de calculer l’ordre du graphe

  8. Une fonction permettant de calculer les degrés des sommets du graphe.

  9. Une fonction permettant d’afficher le voisinage d’un sommet

  10. Une fonction permettant d’afficher l’existence d’un chemin de longueurs L.

  11. Une fonction permettant d’afficher un cycle et un chemin eulérien.

  12. Une interface graphique* englobant toutes les fonctions précédemment décrites.

voila ce qui est demandé alors moi j'ai commencé par écrire la 1 ere fonction :( MERCI

+0 -0

Merci pour ces précisions.

As-tu bien compris comment représenter un graphe à l'aide d'une matrice ? Des informations à ce sujet ici : http://www.mathematiquesfaciles.com/graphes-3-matrice-associee-test-bilan-sur-les-graphes-niveau-tes_2_45970.htm

Une matrice vide est une matrice qui ne contient que des 0.

N'hésites pas à piocher des informations la dedans https://fr.mathworks.com/help/matlab/learn_matlab/matrices-and-arrays.html?s_tid=gn_loc_drop ou sur internet pour manipuler des matrices.

Si tu rencontres d'autres problèmes, n'hésite pas à poster.

+0 -0

Et bien tu vas devoir apprendre mieux Matlab. Chaque question a une réponse en 4 lignes, dont une pour le nom de la fonction et une pour le end à la fin. Les trois dernières questions sont un peu plus compliquées.

Tout concerne des manipulations de matrices extrêmement simples.

Ce sujet est verrouillé.