Graphes et matrices associées
2 participants
Page 1 sur 1
Graphes et matrices associées
Bonjour,
Je me suis penché sur un problème aujourd'hui qui est le suivant :
il existe un certain nombre de logiciel (celui que j'utilise est Pst+) qui permettent de construire des graphes mais je voudrais le faire avec TeXgraph.
Je me suis renseigné sur l'ancien forum pour y trouver des choses intéressantes sur les matrices (en fait sur une liste de nombre) en autres le code de la macro coeff(M,i,j) permettant de renvoyer l'élément $M_{ij}$ d'une matrice.
Mais ce que j'imagine est un peu plus complexe a mettre en oeuvre, je me restreint pour l'instant aux graphes non orientés :
je souhaiterais qu'en rentrant une liste de nombre correspondant à une matrice n $\times$ n, on puisse :
(1) connaître la dimension de la matrice afin de pouvoir nommer les sommets A_1; A_2; ... A_n;
(2) le reste serait :
Est-ce réalisable ?
Merci, bonne soirée.
Je me suis penché sur un problème aujourd'hui qui est le suivant :
il existe un certain nombre de logiciel (celui que j'utilise est Pst+) qui permettent de construire des graphes mais je voudrais le faire avec TeXgraph.
Je me suis renseigné sur l'ancien forum pour y trouver des choses intéressantes sur les matrices (en fait sur une liste de nombre) en autres le code de la macro coeff(M,i,j) permettant de renvoyer l'élément $M_{ij}$ d'une matrice.
- Code:
Copy( %1, (%2-1)*Copy(%1,2,1)+%3+2, 1)
Mais ce que j'imagine est un peu plus complexe a mettre en oeuvre, je me restreint pour l'instant aux graphes non orientés :
je souhaiterais qu'en rentrant une liste de nombre correspondant à une matrice n $\times$ n, on puisse :
(1) connaître la dimension de la matrice afin de pouvoir nommer les sommets A_1; A_2; ... A_n;
(2) le reste serait :
- Code:
if coeff(M,i,j)=1 then Seg(A_i,A_j) fi,
Est-ce réalisable ?
Merci, bonne soirée.
Re: Graphes et matrices associées
Joffrey a écrit:
Mais ce que j'imagine est un peu plus complexe a mettre en oeuvre, je me restreint pour l'instant aux graphes non orientés :
je souhaiterais qu'en rentrant une liste de nombre correspondant à une matrice n $\times$ n, on puisse :
(1) connaître la dimension de la matrice afin de pouvoir nommer les sommets A_1; A_2; ... A_n;
(2) le reste serait :
- Code:
if coeff(M,i,j)=1 then Seg(A_i,A_j) fi,
Est-ce réalisable ?
Bonjour Joffrey et
BON ANNIVERSAIRE!!!
Est-ce que tu pourrais donner un petit exemple simple? Si la liste A des sommets est donnée alors on connait la dimension de la matrice M d'incidence, c'est le nombre de sommets! Et en principe la matrice doit être donnée aussi! Et si tu utilises le fichier matrice.teg de l'ancien forum, alors cette matrice doit être de la forme:
M:=[n, m, a11, ..., a1m, a21, ..., a2m, ..., an1, ..., anm]
où n est le nombre de lignes et m le nombre de colonnes, puis viennent les n lignes à la suite les unes des autres. Si la liste des sommets s'appelle A, alors on peut envisager une instruction du genre (i est réservé dans TeXgraph):
- Code:
if coeff(M,k,l)=1 then Seg(A[k],A[l]) fi,
- Code:
Ligne(
for K from 1 to M[1] do
for L from 1 to M[2] do
if coeff(M,K,L) then A[k], A[L], jump fi
od
od, 0)
Re: Graphes et matrices associées
Bonsoir, et merci pour le message d'hier!!!!
Je vais essayer d'être le plus clair possible, je souhaiterai qu'en rentrant par exemple
j'obtienne, 3 sommets, peu importe leurs noms, disons A_1; A_2; A_3, placé dans le plan par exemple aux affixes respectives exp(i*pi/3); exp(2*i*pi/3) et exp(3*i*pi/3)
Puis enfin que pour chaque valeur 1 de la matrice, le segment correspondant soit tracé; ici par exemple : [A_1A_2] ,[A_1A_3], [A_2A_3] et une boucle sur le sommet A_3.
Merci pour ton aide
Bonne soirée
Joffrey
Je vais essayer d'être le plus clair possible, je souhaiterai qu'en rentrant par exemple
- Code:
M:=[0,1,1, 1,0,1, 1,1,1]
j'obtienne, 3 sommets, peu importe leurs noms, disons A_1; A_2; A_3, placé dans le plan par exemple aux affixes respectives exp(i*pi/3); exp(2*i*pi/3) et exp(3*i*pi/3)
Puis enfin que pour chaque valeur 1 de la matrice, le segment correspondant soit tracé; ici par exemple : [A_1A_2] ,[A_1A_3], [A_2A_3] et une boucle sur le sommet A_3.
Merci pour ton aide
Bonne soirée
Joffrey
Re: Graphes et matrices associées
Bonsoir jeoffrey,
Je te propose ce code dans un élément graphique Utilisateur:
Ce qui nous donne:
En principe il devrait suffire simplement de changer la matrice M pour d'autres exemples.
Je te propose ce code dans un élément graphique Utilisateur:
- Code:
[
M:=[0,1,1, 1,0,1, 1,1,1] , {matrice d'incidence}
$N:=sqrt(Nops(M)), {nombre de sommets}
$alpha:=2*i*pi/N, $R:=3, {ecart angulaire et rayon}
{tracer des relations}
Width:=8, Color:=blue, $k:=0, {compteur}
Ligne(
for $z in M do {on parcourt les coef de M}
Inc(k,1), $I:=1+div(k-1,N), {numero de ligne}
$J:=1+mod(k-1,N), {numero de colonne}
if z=1 then {on a une relation entre A_I et A_J}
if I=J
then Cercle((R+0.75)*exp(I*alpha), 0.75) {A_I en relation avec lui-meme}
else R*exp(I*alpha),R*exp(J*alpha),jump
fi
fi
od, 0),
{tracer des bulles et labels}
Color:=black, FillStyle:=full, FillColor:=white,
for k from 1 to N do
Cercle( R*exp(k*alpha),0.5),
Label( R*exp(k*alpha), ["$A_",k,"$"])
od
]
Ce qui nous donne:
En principe il devrait suffire simplement de changer la matrice M pour d'autres exemples.
Re: Graphes et matrices associées
Et pour des graphes orientés je peux te proposer ceci:
- Code:
[
M:=[0,1,1,0, 1,1,1,1, 0,1,0,1, 1,1,0,1] , {matrice d'incidence}
$N:=sqrt(Nops(M)), {nombre de sommets}
$alpha:=2*i*pi/N, $R:=3, {ecart angulaire et rayon}
{tracer des relations}
Width:=8, Color:=blue, $k:=0,
for $z in M do {on parcourt les coef de M}
Inc(k,1), $I:=1+div(k-1,N), {numero de ligne}
$J:=1+mod(k-1,N), {numero de colonne}
if z=1 then {on a une relation entre A_I et A_J}
if I=J
then Cercle((R+0.75)*exp(I*alpha), 0.75), {A_I en relation avec lui-meme}
flecher( Get(Cercle((R+0.75)*exp(I*alpha), 0.75)), 0.25)
else $A:=R*exp(I*alpha),$B:=R*exp(J*alpha), $C:=(A+B)/2-i*(B-A)/abs(B-A)/4,
Spline(0,A,C,B,0),
flecher(Get(Spline(0,A,C,B,0)),0.5)
fi
fi
od,
{tracer des bulles et labels}
Color:=black,
FillStyle:=full, FillColor:=white,
for k from 1 to N do
Cercle( R*exp(k*alpha),0.5),
Label( R*exp(k*alpha), ["$A_",k,"$"])
od
]
Re: Graphes et matrices associées
Bonjour,
Je ne peux qu'applaudir des mains.
Encore un sujet bouclé en un temps record, il ne me reste plus qu'à étudier le code.
Merci
Joffrey
Je ne peux qu'applaudir des mains.
Encore un sujet bouclé en un temps record, il ne me reste plus qu'à étudier le code.
Merci
Joffrey
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|