Apprendre Maple Index du Forum Apprendre Maple
Site dédié au logiciel de calcul formel Maple
 
  Page d'accueilPage d'accueil   FAQFAQ    RechercherRechercher    Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs 
S'enregistrerS'enregistrer    ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Pi et Analyse Combinatoire
Aller à la page 1, 2  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Séquences, listes, ensembles, tables ou tableaux...
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
Guimzo



Inscrit le: 02 Juin 2012
Messages: 209

MessagePosté le: 04 Juin 2012 17:18    Sujet du message: Pi et Analyse Combinatoire Répondre en citant

Bonjour ALS,





Je me permets de vous re-contacter afin que vous puissiez m'aider s'il vous plait pour ce projet.


Je voudrais monter une séquence qui me renverrait toutes les opérations possibles à partir d'une combinaison de 2 ensembles dont le résultat serait compris entre 3,14 et 3,15.

Les 2 ensembles :
E1 = { 1 ; 2 ; sqrt(2) ; 3 ; sqrt(3) ; 4 ; 5 ; sqrt(5) ; 6 ; sqrt(6) ; 7 ; sqrt(7) ; 8 ; sqrt( 8 ) ; 9 ; 10 ; sqrt(10) }

Et E2 l'ensemble des 4 signes d'opérations { + ; - ; * ; / }


Chaque opération devra être de la forme

[(a+a) + (a-b)] + [(d*a) + (e/a)]
__g1____g2_____g3_____g4

Les signes choisis ne sont qu'un exemple...
Une opération est composée donc de 4 groupes indépendants formés de 2 nombres et d'1 signe.
Ainsi l'ordre de calcul est de calculer g1 de calculer g2 de calculer g3 de calculer g4 et après de calculer le résultat de g1 combiné à g2 et de calculer le résultat de g3 combiné à g4.
Ensuite dernière opération qui est la combinaison de ces résultats.
En fait l'ordre des parenthèses et des crochets indiquent l'ordre des calculs...

Aussi le même nombre pourra être utilisé à volonté dans une opération et le même signe aussi.
Une opération utilise obligatoirement 8 chiffres et 7 signes.


La séquence devra donc fournir toutes les opérations dont les résultats finals sont compris entre 3,14 et 3,15......

Je vous remercie d'avance pour votre précieuse aide.

Cordialement,



P.S. J'ai posté dans 3 forums de Math de Lycée Terminale S pour avoir juste le nombre de possibilités en terme de dénombrement mais aucun résultat positif.. : (

Vous m'aviez déjà proposé cette séquence qui fonctionnait parfaitement bien mais pour un nombre moindre d'opérations.

nb:=[1,2,3,5,7,sqrt(2),sqrt(3),sqrt(5),sqrt(7)];
> ops:=[`+`,`-`,`*`,`/`];

> res:=NULL:
> for n1 in nb do
> for n2 in nb do
> for n3 in nb do
> if n1<>n2 and n2<>n3 then
> for k in ops do
> for l in ops do
> v:=l(k(n1,n2),n3) :
> if evalf(v>0) then
> res:=res,[n1,k,n2,l,n3,evalf(v)]
> end if
> od
> od
> fi
> od
> od
> od:
> [res];
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 05 Juin 2012 8:48    Sujet du message: Répondre en citant

Bonjour,

On peut écrire un code du même genre: il y aura ajout dans res de [a,b,d,e,op1,op2,op3,op4,op5,op6,op7,x=evalf(x)] lorsque le résultat numérique evalf(x) global est entre 3.14 et 3.15.
L'instruction try catch: end try permet de poursuivre le calcul même en cas d'erreur du style division par 0, etc...

Soyez patient, cela risque de prendre du temps de calcul.

Code:

nb:=[1 , 2 , sqrt(2) , 3 , sqrt(3) , 4 , 5 , sqrt(5) , 6 , sqrt(6) , 7 , sqrt(7) , 8 , sqrt( 8 ) , 9 , 10 , sqrt(10)];
> ops:=[`+`,`-`,`*`,`/`];
>
> res:=NULL:
> for a in nb do
>  for b in nb do
>  for d in nb do
>  for e in nb do 
>    if a<>b and a<>d and a<>e and b<>d and b<>e and d<>e then
>       for op1 in ops do
>         for op2 in ops do
>           for op3 in ops do
>             for op4 in ops do
>               for op5 in ops do
>                 for op6 in ops do
>                    for op7 in ops do
>                    try
>                      g1:=op1(a,a): g2:=op2(a,b): h1:=op3(g1,g2): g3:=op4(d,a): g4:=op5(e,a): h2:=op6(g3,g4): x:=op7(h1,h2):     
>                      if evalf(x)>3.14 and evalf(x)<3.15 then
>                         res:=res,[a,b,d,e,op1,op2,op3,op4,op5,op6,op7,x=evalf(x)]: print([a,b,d,e,op1,op2,op3,op4,op5,op6,op7,x=evalf(x)]);
>                      end if
>                    catch:
>                    end try 
>       od
>         od
>           od
>             od
>               od 
>                 od
>                   od
>    fi
>  od
>  od
>  od
> od:
> [res];


A bientôt.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Guimzo



Inscrit le: 02 Juin 2012
Messages: 209

MessagePosté le: 05 Juin 2012 14:28    Sujet du message: Analyse Combinatoire Répondre en citant

Bonjour : )



Merci beaucoup ALS !!
Je vais essayer la séquence et laisser la machine prendre tout son temps pour "réfléchir".... : )


Je vous tiens au courant.



P.S.: Vous êtes génial Merci..!!
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Guimzo



Inscrit le: 02 Juin 2012
Messages: 209

MessagePosté le: 05 Juin 2012 15:00    Sujet du message: Analyse Combinatoire Répondre en citant

Bonjour ALS : )




Votre séquence est plus que performante...!!
La machine est en train de tourner et j'ai déjà aperçu de très beaux résultats...!!

Le 22/7 a été trouvé entres autres.... : )
Rassurez moi que toutes les combinaisons possibles sont bien calculées...??


En tout cas mille fois Merci....!!

Cordialement,
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Guimzo



Inscrit le: 02 Juin 2012
Messages: 209

MessagePosté le: 05 Juin 2012 21:29    Sujet du message: Analyse Combinatoire Répondre en citant

Bonjour ALS,




La Machine a commencé les calculs à 15h00 il est pratiquement 22h00 elle tourne toujours...

Est-ce normal ou probléme de boucle...??
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Guimzo



Inscrit le: 02 Juin 2012
Messages: 209

MessagePosté le: 05 Juin 2012 21:49    Sujet du message: Analyse Combinatoire Répondre en citant

Bonjour ALS



Dans l'exemple

[(a+a) + (a-b)] + [(d*a) + (e/a)]

J'ai repris le "a" plusieurs fois juste pour montrer que le même nombre pouvait être repris.


Mais on peut aussi avoir par exemple :

[(a+b) + (c-d)] + [(e*f) + (g/h)]


Donc dans la chaîne

"" g1:=op1(a,a): g2:=op2(a,b): h1:=op3(g1,g2): g3:=op4(d,a): g4:=op5(e,a) ""

Est-ce qu'on calcule bien toutes les opérations possibles entres autres par exemple :

[(a+b) + (c-d)] + [(e*f) + (g/h)] ............?


N.B. : Les signes choisis aussi sont toujours des exemples donc on peut avoir toujours le même signe par exemple

[(a+b) + (c+d)] + [(e+f) + (g+h)]
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 06 Juin 2012 7:05    Sujet du message: Répondre en citant

Non, dans ce cas il faut rajouter des variables à a,b,d,e déjà utilisées es donc faire des boucles supplémentaires, ce qui va rallonger le temps de calcul.
On peut aussi passer par un arbre n-aire avec les opérateurs comme noeuds, mais je n'ai pas le temps en ce moment pour m'y consacrer.
A plus tard.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Guimzo



Inscrit le: 02 Juin 2012
Messages: 209

MessagePosté le: 06 Juin 2012 15:16    Sujet du message: Analyse Combinatoire Répondre en citant

Bonjour ALS,




Merci pour votre aide tout d'même.
J'ai pensé à rajouter des boucles de cette façon est-ce bon :



nb:=[1 , 2 , sqrt(2) , 3 , sqrt(3) , 4 , 5 , sqrt(5) , 6 , sqrt(6) , 7 , sqrt(7) , 8 , sqrt( 8 ) , 9 , 10 , sqrt(10)];
> ops:=[`+`,`-`,`*`,`/`];
>
> res:=NULL:
> for a in nb do
> for b in nb do
> for c in nb do
> for d in nb do
> for e in nb do
> for f in nb do
> for g in nb do
> for h in nb do
> if a<>b and a<>c and a<>d and a<>e and a<>f and a<>g and a<>h and b<>c and b<>d and b<>e and b<>f and b<>g and b<>h and c<>d and c<>e and c<>f and c<>g and c<>h and d<>e and d<>f and d<>g and d<>h and e<>f and e<>g and e<>h and f<>g and f<>h and g<>h then
> for op1 in ops do
> for op2 in ops do
> for op3 in ops do
> for op4 in ops do
> for op5 in ops do
> for op6 in ops do
> for op7 in ops do
> try
> g1:=op1(a,b): g2:=op2(c,d): h1:=op3(g1,g2): g3:=op4(e,f): g4:=op5(g,h): h2:=op6(g3,g4): x:=op7(h1,h2):
> if evalf(x)>3.14 and evalf(x)<3.15 then
> res:=res,[a,b,c,d,e,f,g,h,op1,op2,op3,op4,op5,op6,op7,x=evalf(x)]: print([a,b,c,d,e,f,g,h,op1,op2,op3,op4,op5,op6,op7,x=evalf(x)]);
> end if
> catch:
> end try
> od
> od
> od
> od
> od
> od
> od
> fi
> od
> od
> od
> od
> od
> od
> od
> od:
> [res];
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 06 Juin 2012 17:15    Sujet du message: Répondre en citant

Bonjour,
Cela m'a l'air correct en voulant les nombres a,b,...,h tous distincts.
Le temps d'exécution est très long en effet.
Où avez-vous vu cette méthode pour approcher Pi? Auriez-vous un lien
sur Internet?
ALS
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Guimzo



Inscrit le: 02 Juin 2012
Messages: 209

MessagePosté le: 06 Juin 2012 21:09    Sujet du message: Analyse Combinatoire Répondre en citant

Bonjour ALS,



Vous m'avez toujours énormément aidé pour tous les problémes que je vous ai soumis. Et merci encore d'ailleurs.

Pour tout vous dire cette histoire de Pi n'est simplement q'un projet que j'ai à cœur.
Cela part d'une constatation toute simple, dans la majorité des formules mathématiques et Physiques on retrouve toujours une grande simplicité, et des nombres élémentaires qui reviennent souvent (1 ou 2 ou 3 ou 5... )
Le corps humain lui-même en fait répond à cette simplicité : nous retrouvons le chiffres 5 le chiffre 1 et le chiffre 2 ...

Exemple le nombre d'or : (sqrt(5) - 1 ) / 2
Formule des Nombres parfaits : 2n − 1(2n − 1)

etc....

Ainsi les plus belles formules de la Nature sont des formules très simples et pourtant si performantes...!

Cela reste très intuitif mais mon opinion est que s'il existe une formule qui donnerait le nombre Pi ( je sais que l'impossibilité a été démontré par des mathématiciens ) cette formule doit certainement être très simple c'est à dire une combinaison simple à partir de chiffres élémentaires tels que 1 ; 5 ; 2 ; 3 ; etc...
et que cette formule doit certainement être de la forme :

[( a+b) / (c+d)]

avec a;b;c;d pris dans
{ 1 ; 2 ; sqrt(2) ; 3 ; sqrt(3) ; 4 ; 5 ; sqrt(5) ; 6 ; sqrt(6) ; 7 ; sqrt(7) ; 8 ; sqrt( 8 ) ; 9 ; 10 ; sqrt(10) }


Après il est possible de monter jusqu'à 10 groupes de calculs
[( a+b) / (c+d)] ........(n+p)]
__1_____2__...._____10

Mais il faudrait avoir malheureusement un Super ordinateur pour autant de calculs...


Alors pour l'instant je voudrais simplement partir de ces 2 groupes
[( a+b) / (c+d)]

avec a ; b ;c ; d pris dans

{ 1 ; 2 ; sqrt(2) ; 3 ; sqrt(3) ; 4 ; 5 ; sqrt(5) ; 6 ; sqrt(6) ; 7 ; sqrt(7) ; 8 ; sqrt( 8 ) ; 9 ; 10 ; sqrt(10) }

Mais par contre calculer toutes les possibilités... avec donc les cas où les 4 chiffres seraient identiques ou seulement 3 etc etc vraiment toutes les possibilités...



Et l'ultime option qui serait une séquence en géométrie mais cela est peut-être compliqué (??)


Monter une séquence qui tracerait en continu des cercles de même rayon dans un plan donné jusqu'à tomber sur une valeur donnée.

Ainsi on trace un premier cercle C1 de centre c1 et de rayon r.
Après on trace un 2 éme cercle C2 de rayon r ayant pour centre un point quelconque du 1er cercle.
Ainsi de suite on trace un 3 éme cercle C3 de rayon r ayant pour centre un point de C2 etc...

Et on répertorie toutes les intersections donc les points crées dans le plan et on calcule la distance entre tous les points les uns des autres.
Et quand on tomberait sur une valeur donnée ( CQFD ) on arrête de tracer les cercles.

Donc voilà voilà le projet un peu romanesque c'est vrai mais l'intuition mène parfois à l'erreur mais parfois à la vérité et puisqu'à partir du moment où on connait un nombre donné et qu'on sait que ce nombre est forcément le résultat d'une opération donnée afin de trouver cette opération on peut tout simplement se borner à calculer toutes les opérations possibles et sélectionner effectivement celle qui mène au résultat voulu...


Merci en tout cas pour toute votre aide.
Cordialement,
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Guimzo



Inscrit le: 02 Juin 2012
Messages: 209

MessagePosté le: 06 Juin 2012 21:38    Sujet du message: Analyse Combinatoire Répondre en citant

Bonjour ALS




Alors autrement je voulais me focaliser pour l'instant pour travailler avec des temps de calcul raisonnables sur un groupe de
4 nombres et de 3 signes selon cette structure :

[(a+b) + (c-d)]


Mais je voudrais vraiment que la séquence calcule toutes les opérations possibles... ( dans le cas où les nombres a ; b ;c ; d seraient identiques ou seulement 2 ou seulement 3 etc.... )


Avec les 4 nombres toujours différents une approximation de Pi de 4 chiffres :

[ (2/3) + ( 7/4 * sqrt(2) ) ]
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Guimzo



Inscrit le: 02 Juin 2012
Messages: 209

MessagePosté le: 13 Juin 2012 1:29    Sujet du message: Pi et Analyse Combinatoire Répondre en citant

Bonjour ALS,




Pour calculer toutes les opérations j'ai fait ces quelques modifications mais qui ne sont apparemment pas les bonnes..??



> nb:=[1,2,3,5,7,sqrt(2),sqrt(3),sqrt(5),sqrt(7)];
> ops:=[`+`,`-`,`*`,`/`];
>
> res:=NULL:
> for a in nb do
> for b in nb do
> for c in nb do
> for d in nb do
> if a<>b and a<>c and a<>d and b<>c and b<>d and c<>d then
> for op1 in ops do
> for op2 in ops do
> for op3 in ops do
> try
> g1:=op1(a,b)or op1(a,a) or op1(a,c) or op1(a,d) or op1(b,b) or op1(b,c) or op1(b,d)
> or op1(c,c) or op1(c,d) or op1(d,d): g2:=op2(a,b)or op2(a,a) or op2(a,c) or op2(a,d) or op2(b,b) or op2(b,c) or op2(b,d)
> or op2(c,c) or op2(c,d) or op2(d,d): x:=op3(g1,g2):
> if evalf(x)>3.1415 and evalf(x)<3.1416 then
> res:=res,[a,b,c,d,op1,op2,op3,x=evalf(x)]: print([a,b,c,d,op1,op2,op3,x=evalf(x)]);
> end if
> catch:
> end try
>
> od
> od
> od
> fi
> od
> od
> od
> od:
> [res];

1/2 1/2 1/2 1/2
nb := [1, 2, 3, 5, 7, 2 , 3 , 5 , 7 ]


ops := [+, -, *, /]


[]

>
>
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 13 Juin 2012 7:06    Sujet du message: Répondre en citant

Bonjour,
il n'était pas trop difficile pourtant de modifier le code précédent (supprimer quelques boucles et le test if a<>b and ... de façons à autoriser les répétitions de variables dans l'expression).
Voici le résultat obtenu:

Code:

> nb:=[1,2,3,5,7,sqrt(2),sqrt(3),sqrt(5),sqrt(7)];
> ops:=[`+`,`-`,`*`,`/`];
> res:=NULL:
> for a in nb do
>  for b in nb do
>  for c in nb do
>  for d in nb do
>   for op1 in ops do
>   for op2 in ops do
>   for op3 in ops do
>   try
>  g1:=op1(a,b): g2:=op2(c,d): x:=op3(g1,g2): 
> if evalf(x)>3.14 and evalf(x)<3.15 then
>  res:=res,[a,b,c,d,op1,op2,op3,x=evalf(x)]: print([a,b,c,d,op1,op2,op3,x=evalf(x)]);
>  end if
>  catch:
>  end try
>  od
>  od
>  od
>   
>  od
>  od
>  od
>  od:
> [res];


A plus tard.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Guimzo



Inscrit le: 02 Juin 2012
Messages: 209

MessagePosté le: 13 Juin 2012 22:49    Sujet du message: Répondre en citant

Bonjour ALS,




Merci pour la énième fois : )
Votre séquence fonctionne parfaitement..!!


J'ai ce lien à vous montrer qu'en pensez-vous de cette machine HighStation 5600 ...??

" http://www.carri.fr/html_gpu/produits.php?rubrique=GPU&sr=CFG "


Des calculs avec autant de couples de nombres que l'on voudrait :

(a+b)+(c+d)+(e+f)+(g+h)+(i+j)+(k+l)..........(n+p)


La somme des inverses des nombres parfaits :
(1/6)+(1/28 )+(1/496)+(1/8128).............

La somme des inverses des nombres impairs :
(1/3)+(1/5)+(1/7)+(1/9)+(1/11).........

La somme des inverses des nombres pairs :
(1/2)+(1/4)+(1/6)+(1/8 )+(1/10).........

La somme des inverses des nombres premiers :
(1/2)+(1/3)+(1/5)+(1/7)+(1/11)+(1/13).........


Il y à tellement de possibilités à exploiter : )



P.S.: y'à t-il une bonne machine sur le marché à votre avis pour avoir des possibilités de calcul plus grandes avec Maple...??
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Guimzo



Inscrit le: 02 Juin 2012
Messages: 209

MessagePosté le: 13 Juin 2012 22:56    Sujet du message: Répondre en citant

Bonjour,


Voici quelques résultats avec 3 couples de chiffres :
(a+b)+(c+d)+(e+f)


Approximation à 4 chiffres après la virgule :


[ sqrt(2) /12 ] + [ (8/7) *sqrt(7) ]



Approximation avec 5 chiffres après la virgule :

[ 1 - 2sqrt(7) ] * [ 1 - sqrt(3) ]
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Séquences, listes, ensembles, tables ou tableaux... Toutes les heures sont au format GMT + 2 Heures
Aller à la page 1, 2  Suivante
Page 1 sur 2

 
Sauter vers:  
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


phpBB

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.