 |
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
boirac
Inscrit le: 12 Sep 2006 Messages: 10 Localisation: Londres, Royaume Uni
|
Posté le: 14 Mai 2007 20:54 Sujet du message: Trouver les points d'une hyper-surface |
|
|
Bonjour a tous,
Je voudrais trouver un certain nombres de points, disons 50, qui soient distribués sur une hypersphère de rayon donné.
Donc le problème peut s'énoncer tel que:
trouver [x,y,z,t] tels que x^2+y^2+z^2+t^2+ = 4 par exemple.
J'ai pensé a generer des points aléatoires dans la 4-boule en question, quelque chose de la sorte de:
Code: |
points:=[]:
for i from 1 to 10000 while nops(points)<50 do
L:=evalf(1/15*Generate(list(integer(range=0..10),4)),3);
if evalf(L[1]^2+L[2]^2+L[3]^2+L[4]^2,4)=evalf(2,3) then
points:=[op(points),L];
else
fi:
od:
|
Mais c'est loin d'être éficace.
Meci pour toute suggestion ou conseil,
Alvaro |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 15 Mai 2007 14:17 Sujet du message: |
|
|
Bonjour Alvaro,
Je pense en effet qu'en paramétrant la 4-sphère (S), et en choisissant des valeurs aléatoires pour chacun des 3 paramètres, on peut construire très rapidement une suite de 50 points de (S).
Code: |
> S:=(R,alpha,theta,phi)->[R*cos(alpha)*cos(phi)*cos(theta),R*cos(alpha)*cos(phi)*sin(theta),R*cos(alpha)*sin(phi),R*sin(alpha)];
> R:=2: points:=[]:
> for k to 50 do
> alpha:=evalf(2*Pi/100*rand(1..100)()):
> theta:=evalf(2*Pi/100*rand(1..100)()):
> phi:=evalf(2*Pi/100*rand(1..100)()):
> points:=[op(points),S(R,alpha,theta,phi)]
> end do:
> points;
|
Est-ce que cela convient?
A bientôt. |
|
Revenir en haut de page |
|
 |
boirac
Inscrit le: 12 Sep 2006 Messages: 10 Localisation: Londres, Royaume Uni
|
Posté le: 15 Mai 2007 16:02 Sujet du message: Parametriser la 4 sphere |
|
|
Bonjour ALS,
Merci pour votre suggestion. Bien sûr la parametrisation fonctionne.
J'ai trouvé un peu plus d'information sur arXiv:quant-ph/0012101.
Il arrive qu' une distribution aléatoire des angles ne resulte pas en une distribution aléatoire des points sur la sphère. Pour avoir une distribution uniforme, si on emploie la parametrisation de Hurwitz,
Code: |
(R,alpha,theta,phi)->[cos(theta[3]), sin(theta[3])*cos(theta[2]), sin(theta[3])*sin(theta[2])*cos(theta[1]), sin(theta[3])*sin(theta[2])*sin(theta[1])];
|
il faut transformer des variables aléatoires
distribuées uniforméments sur 0..1
en
Code: |
theta[i]:=arcsin(eta^(1/(2*i)));
|
pour obtenir nos [x,y,z,t] distribuées uniformément sur la 4-sphère.
Merci de vôtre réponse!
à bientôt. |
|
Revenir en haut de page |
|
 |
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com
Apprendre Maple - ©
- Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.
|