[Matlab] convhulln

Tout ce qui concerne les différents logiciels mathématiques (Matlab, Maxima, Scilab, R, Maple, Mathematica, ...) et les calculatrices scientifiques.
Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.
> Préciser le nom du logiciel concerné dans le titre de votre message.

[Matlab] convhulln

Messagepar minnolina » Vendredi 21 Octobre 2005, 15:29

Bonjour,
je commence par vous demander pardon si le topic n'est pas totalment pertinent.
Mon probleme est le suivant :

J'ai une fonction z=f(x,y) de deux variables (x,y). In Matlab par exemple j'ecrit :

x=[ 1 :.1 : 10 ]'; % column vector, length 11
y=[10 : 1 : 100]'; % column vector, length 11
z=min(-log(x.*y^2),-log(x.*y^3)); % matrix, size 11*11

Maintenant je dois calculer l'enveloppe convexe de ces points i.e. les points (x_i,y_j,z_ij).
Maleureusement on peut pas passer à la function de matlab les points comme ca mais elle veut la liste de tous les points donc je fait comme ca :

X1=x;
for i=2:length(y)
X1=[X1;x];
end

X2=y;
for i=2:length(x)
X2=[X2;y];
end

X3=z(:,1);
for i=2:length(y)
X3=[X3;z(:,i)];
end

X=[X1;X2;X3];
k=convhulln(X);

Bien, en théorie j'ai mon enveloppe convexe mais maintenant j'ai besoin de connaitre les points qui appartient a l'enveloppe et les points qui sont plus en haut. Et de plus j'ai besoin de les connaitre dans la formulation original (i.e. avec 2 vectors et 1 matrix), et je ne m'en sort pas :(

Merci pour n'importe quelle suggestion,
Gloria
Gloria
minnolina
Déca-utilisateur
 
Messages: 21
Inscription: Mardi 31 Mai 2005, 08:26
Localisation: Toulon
Statut actuel: Actif et salarié | Maître de conférence

Publicité

Messagepar nirosis » Vendredi 21 Octobre 2005, 20:40

Sous quelle forme est retournée l'enveloppe convexe ?
Comme je n'ai jamais utilisé la fonction...
nirosis
Administrateur
 
Messages: 1806
Inscription: Samedi 28 Mai 2005, 13:48
Localisation: Orsay, France
Statut actuel: Actif et salarié | Maître de conférence

Messagepar minnolina » Lundi 24 Octobre 2005, 08:08

En fait, j'ai pas vraiment compris ce qu'il me renvoit. Il parle d'indices des points, avec trisurf on les dessin bien mais quand je les affiches je ne comprends pas comment il travail avec ses indices, je crois qu'il ne sont pas vraiment des points mais peut etre des triplettes de points pour les triangules avec lesquels il construit la surface du convex hull. Bref, je n'y comprends rien :(
Si quelqu'un a jamais utilisee cette fonction ou comprend comment sortir ces points je lui serai immensament "grata".
Merci
Gloria

PS Ici l'unique reference dans l'help:
http://www.mathworks.com/access/helpdes ... ulln.shtml
Gloria
minnolina
Déca-utilisateur
 
Messages: 21
Inscription: Mardi 31 Mai 2005, 08:26
Localisation: Toulon
Statut actuel: Actif et salarié | Maître de conférence

Messagepar MB » Lundi 24 Octobre 2005, 09:18

J'ai pas matlab sous l main pour tester, mais en regardant la documentation :

K = convhulln(X) returns the indices K of the points in X that comprise the facets of the convex hull of X. X is an m-by-n array representing m points in N-dimensional space. If the convex hull has p facets then K is p-by-n.


Il semble que K est contient bien les p coordonnées des points de l'enveloppe convexe non ? (par contre, c'est vrai qu'ils parlent d'indices, ...)
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6891
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Messagepar minnolina » Lundi 24 Octobre 2005, 12:22

Je n'ai pas encore resolu tous mes problemes mais j'ai trouvée cete description:

Convex Hulls

The convex hull of a data set in n-dimensional space is defined as the smallest convex region that contains the data set.

Computing a Convex Hull. The convhulln function returns the indices of the points in a data set that comprise the facets of the convex hull for the set. For example, suppose X is an 8-by-3 matrix that consists of the 8 vertices of a cube. The convex hull of X then consists of 12 facets.

d = [-1 1];
[x,y,z] = meshgrid(d,d,d);
X = [x(:),y(:),z(:)]; % 8 corner points of a cube
C = convhulln(X)

C =
3 1 5
1 2 5
2 1 3
7 3 5
8 7 5
7 8 3
6 8 5
2 6 5
6 2 8
8 4 3
4 2 3
2 4 8

Because the data is three-dimensional, the facets that make up the convex hull are triangles. The 12 rows of C represent 12 triangles. The elements of C are indices of points in X. For example, the first row, 3 1 5, means that the first triangle has X(3,:), X(1,:), and X(5,:) as its vertices.

For three-dimensional convex hulls, you can use trisurf to plot the output. However, using patch to plot the output gives you more control over the color of the facets. Note that you cannot plot convhulln output for n > 3.


Donc si j'ai bien compris il suffit de considerer une seule column de C pour avoir les indices des points qui appartient au convex hull.
Gloria
minnolina
Déca-utilisateur
 
Messages: 21
Inscription: Mardi 31 Mai 2005, 08:26
Localisation: Toulon
Statut actuel: Actif et salarié | Maître de conférence

Messagepar MB » Mardi 25 Octobre 2005, 10:33

minnolina a écrit:Donc si j'ai bien compris il suffit de considerer une seule column de C pour avoir les indices des points qui appartient au convex hull.


C'est quoi l'indice d'un point ?

Sinon, il semble que la fonction renvoie les 12 faces du cube dans cet exemple (et pas les sommets). Il semble que chaque ligne corresponde aux trois sommets permettant de décrire une face ... chaque nombre serait ainsi l'indice du point permettant de désigner le sommet (de 1 à 8 donc) ! Les points sont peut-être numérotés dans l'ordre d'apparition dans X. Ainsi pour retrouver leurs coordonnées il faut reparcourir X. C'est juste une idée ...
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6891
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant


Retourner vers Logiciels mathématiques

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités